El sensor de distancia ultrasónico HC-SR04 es una excelente opción si estás buscando un módulo ultrasónico potente pero barato y que sea compatible con Arduino y otras plataformas de microcontroladores. Éste es uno de los módulos ultrasónicos más económicos en el mercado, ¡pero sigue siendo uno de los mejores! Su rendimiento estable es incomparable: la resolución es tan baja como de 3mm, tiene una alta precisión, funciona con 5V (DC), es altamente compatible con las tarjetas Arduino, etc.
Características:
Voltaje de funcionamiento: 5V (DC)
Corriente estática: <2 mA
Trabajo actual: 15mA
Frecuencia de trabajo: 40KHz
Señal de salida: frecuencia de la señal eléctrica, 5V de alto nivel, bajo nivel de 0V
Ángulo Eficaz: <15 º
Distancia de detección: 2 cm - 450 cm
Resolución: 0,3 cm
Medición de ángulo: 30 º
Disparo de la señal de entrada: TTL pulso 10μs
Echo señal de salida: señal PWL de TTL
VCC = +5VDC
Trig = Entrada de Trigger de sensor
Echo = Salida de Echo de sensor
GND = GND
La salida de "velocidad" es solo una muestre como aproximadamente debería ser
Código del sensor de distancia con un LED como muestro en la foto
//sensor de distancia
int ecoPin= 12; // cabe amarillo
int trigPin= 13; // cable blanco
//led
int ledPin= 8;
long duracion, distancia; //distancia
void setup(){
Serial.begin(9600);
pinMode(trigPin, OUTPUT); //envia la señal de ultrasonido
pinMode(ecoPin, INPUT); //reciba la señal de ultrasonido
pinMode(ledPin, OUTPUT); //prende el LED
}
void loop(){
//funcionamento del sensor envia y recibe la señal
digitalWrite(trigPin, LOW); delayMicroseconds(2);
digitalWrite(trigPin, HIGH); delayMicroseconds(5);
digitalWrite(trigPin, LOW);
//fin
duracion = pulseIn(ecoPin, HIGH);
//HIGH Si alto, comienza a contar
//LOW se detiene el tiempo
//http://arduino.cc/en/pmwiki.php?n=Reference/PulseIn
//retorna el pulso en microsegundos
distancia = microsecondsToCentimeters(duracion);
//transformo los microsegundos en centimetros
Serial.print ("Tiempo en microsegundos: "); Serial.print(duracion);
Serial.print(" Distancia estimada: "); Serial.print(distancia);
Serial.print(" cm");
Serial.println(" ");
delay(1000);
if(distancia>70){
digitalWrite(ledPin, HIGH);
delay(20);}
if(distancia<70){
digitalWrite(ledPin, LOW);
delay(20);}
}
long microsecondsToCentimeters(long microseconds){
// La velocidad del sonido a 20º de temperatura es 340 m/s o
// 29 microsegundos por centrimetro.
// La señal tiene que ir y volver por lo que la distancia a
// la que se encuentra el objeto es la mitad de la recorrida.
return microseconds / 29 / 2;
}
Como se vería si trabajamos con un Arduino NANO
diagrma¡
ResponderEliminarzona gamers jajaja ladron de pads jaja
ResponderEliminar