Paso 2: Código de Arduino
Una queja típica sobre Sensores ultrasónicos es que tarda si le falta un pulso. El valor por defecto Arduino PulseIn comando esperará hasta un segundo. Afortunadamente la función tiene un segundo argumento: tiempo de espera.
Observando el diagrama de tiempo, podemos establecer que sólo tenemos que esperar... 60ms! Si no WAN ' t es la gama completa y sabe que no va a sondear más a menudo que, entonces usted puede reducir ese tiempo (et usted puede sondear hacia fuera a 40cm en solo 6 ms, pero todavía no puede obtener valores de más de 16 veces por segundo.
Porque estamos usando este dispositivo en el modo de 3 hilos (para ahorrar pines), el código para activar tiene una línea adicional.
Para convertir de microsegundos a tiempo, dividimos por 29 (microsegundos por centímetro) y otra vez por 2 (es un viaje de regreso). El multiplicar por 10 es convertir en mm.
#define ULTRASONIC_PIN 16<br> void setup(){ Serial.begin(9600); } void loop(){ Serial.println(readUltrasonic(ULTRASONIC_PIN)); delay(10); } int readUltrasonic(int pin){ //Returns distance in mm pinMode(pin, OUTPUT); digitalWrite(pin, HIGH); delayMicroseconds(10); digitalWrite(pin, LOW); pinMode(pin, INPUT); return pulseIn(pin, HIGH, (unsigned long)60000) * 10 / 29 / 2; }