Sei sulla pagina 1di 13

Curso de Robótica

con Arduino
Sensor Ultrasónico
 El HC-SR04 es un sensor de distancias por ultrasonidos capaz de detectar
objetos y calcular la distancia a la que se encuentra en un rango de 2 a 450
cm.
 Posee un emisor y un receptor, con los cuales obtiene los datos de distancia
 Su voltaje de entrada es de 5V
 El funcionamiento se
da de la siguiente
manera mandamos
un pequeño pulso
con el Trigger, si hay
un objeto la onda
rebotara hasta llegar
al Echo. Con el
tiempo que se tarda
en volver la onda al
sensor calcularemos
la distancia
La velocidad del sonido es aproximadamente 340 m/s o 0.034 cm/µs, este será
el valor que se usara en la formula
Comandos y conexión con Arduino
 delayMicroseconds()
 pulseIn(PinEcho, HIGH)
Antes de empezar a mandar pulsos se debe enserar el pin Trigger para que no
haya datos parásitos, es decir datos anteriores guardados en el sensor.
Proyecto 1 Calcular distancia
const int trigPin = 9;
const int echoPin = 10;

long duration;
int distance;

void setup() {
pinMode(trigPin, OUTPUT); // Ponemos al pin Trigger como salida
pinMode(echoPin, INPUT); // Ponemos al pin Echo como entrada
Serial.begin(9600); // Starts the serial communication
}

void loop() {
// Enceramos el Pin Trigger
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Ponemos el Trigger en HIGH por 10 us
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

//Leemos el tiempo que demora la onda en volver hacia el pin Echo


duration = pulseIn(echoPin, HIGH);

// calculamos la distancia
distance= duration*0.034/2;
// Mostramos la distancia en el monitor serial
Serial.print("Distance: ");
Serial.println(distance);
delay(1000);
}
Alarma de distancia
const int trigPin = 9;
const int echoPin = 10;
const int buzzer = 11;
const int ledPin = 13;

long duration;
int distance;
int dangerDistance;

void setup() {
pinMode(trigPin, OUTPUT); // Ponemos al pin Trigger como salida
pinMode(echoPin, INPUT); // Ponemos al pin Echo como entrada
pinMode(buzzer, OUTPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600); // Starts the serial communication
}
void loop() {
// Enceramos el Pin Trigger
digitalWrite(trigPin, LOW);
delayMicroseconds(2);

// Ponemos el Trigger en HIGH por 10 us


digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

//Leemos el tiempo que demora la onda en volver hacia el pin Echo


duration = pulseIn(echoPin, HIGH);

// calculamos la distancia
distance= duration*0.034/2;
dangerDistance = distance;
if (dangerDistance <= 5){
digitalWrite(buzzer, HIGH);
digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(buzzer, LOW);
digitalWrite(ledPin, LOW);
}

// Mostramos la distancia en el monitor serial


Serial.print("Distance: ");
Serial.println(distance);
delay(1000);
}
Reto 1 Indicador de parqueo
 Si la distancia es menor que 30 pero mayor que 20, se encendera el led verde,
y la alarma sonara con un tono agudo por 200 ms
 Si la distancia es menor que 20 pero mayor que 7, se encendera led verde y
Amarillo, ademas sonara la alarma con un tono medio grave por 200 ms
 Si la distancia es menor que 7, se encederan los led verde, Amarillo y rojo,
ademas sonara la alarma con un tono grave por 200ms
Reto 2 Contador de objetos

Si la distancia es menor
que 7 se detectara el
objeto, se prendera el led
rojo y el buzzer sonara por
500ms y luego se apagara

Potrebbero piacerti anche