Paso 2: Código de Arduino
Código de Arduino
/ * Este proyecto utiliza un sensor de ultrasonidos HC-SR04 y un arduino para detectar obstáculos frente al usuario y sonará una alarma. El intervalo en que suena la alarma en proporcional a la distancia entre el usuario y la alarma.
creado el 01 de marzo de 2016 por Isaac Sesi corriente ciudad * /
#include / / esta biblioteca ayuda hace nuestras lecturas más precisas
const int TRIGGER_PIN = 5; const int ECHO_PIN = 6; const int ledPin = 9; const int motor = 10; const int zumbador = 11;
const int MAX_DISTANCE = 300; Establecer la distancia máxima que puede medirse en cm 300 const int SAMPLE_INTERVAL = 25; Tomar una muestra de lectura cada 25milliseconds const int PING_ITERATIONS = 3; Tomar 3 lecturas antes de regresar a la media del sonar NewPing 3 (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); //Create una nueva instancia del objeto
systemState int = bajo; Asegúrese de que todo es de mucho previousMillis = 0; largo intervalo de tiempo;
void setup() {Serial.begin(9600); pinMode (ledPin, salida); pinMode (zumbador, salida); pinMode (motor, salida);} void loop() {float d1 = getDistance(); / / llamar a la función que mide la distancia
/ * Mapa de la distancia medida en el número de milisegundos que LED, zumbador y el motor deben estar encendido o apagado. ¡ MUY IMPORTANTE! * / intervalo = mapa (d1, 0, 0, 250, 2000); Si (d1 > 0 & & d1 < = 250) //Only hacer algo si la distancia medida cae dentro de esta gama {changeStateWithoutDelay(interval); //Call función de giro LED, zumbador u on/off del motor} else {digitalWrite (ledPin, LOW); digitalWrite (zumbador, LOW); digitalWrite (motor, LOW);}
Serial.Print(D1); Serial.Print ("cm \t"); Delay(100); Descomentar esta linea para que el monitor Serial imprima cosas más poco a poco Serial.print(interval); Serial.Print ("\t\n milisegundos"); Serial.println(); }
Función que mide la distancia flotador getDistance() {float t = sonar.ping_median(PING_ITERATIONS); / / microsegundos flotan d = sonar.convert_cm(t); / / centímetros regreso d;}
Función que convierte a LED, zumbador y el motor encendido o apagado basado en sensor cuanto es desde el obstáculo void changeStateWithoutDelay (int intervalo) {unsigned currentMillis largo = millis(); si (currentMillis - previousMillis > intervalo) {/ / guardar la última vez que volvió todo de previousMillis = currentMillis;
Si el LED, el zumbador y el motor está de vuelta en y viceversa: Si (systemState == LOW) systemState = alta; otro systemState = bajo;
configurar el LED, el zumbador y el motor con el systemState de la variable: digitalWrite (ledPin, systemState); digitalWrite (zumbador, systemState); digitalWrite (motor, systemState); } }
Código parece más organizado cuando se ve aquí.
He tratado de comentar el código tanto como sea posible para que sea muy fácil de entender, sin embargo se explican partes del código que puede ser claro en el video. Si no ha instalado el IDE de Arduino ya, descargue e instale desde aquí