Paso 6: El Sketch de Arduino
Primero voy a intentar explicar el dibujo con las palabras:
Inicialmente definir tres variables que son las patillas físicas de HC-SR04 "gatillo y eco" y el relé de potencia.
En la configuración de vacía, me inicio el serial monitor, definir el gatillo y las patillas del relé como salidas porque producirá un resultado mientras que el pin de eco se define como entrada porque te estarán esperando para información del perno gatillo.
La acción sucede en el circuito de vacío:
Primero defino dos enteros duración y distancia para almacenar la información recogida por el gatillo. Digo el gatillo para enviar una onda de sonido utilizando el comando digitalWrite (trigPin, HIGH); y luego esperar media un milisegundo a continuación lo desactivo el comando digitalWrite (trigPin, LOW); . Cuando la ola vuelve, almacenar la información en el entero de la "duración" y activar el pin de eco mediante el comando pulseIn (echoPin, HIGH); Ahora hacemos unas matemáticas para determinar la distancia, que es duración/2, entonces dividimos esta respuesta por 29.1 para obtener el resultado en centímetros.
El siguiente paso es verificar el resultado que conseguimos: Si el resultado es menos de 13cm, ejecutar la subrutina luz, si no entonces no hacer nada. Y mostrar el resultado en el monitor serie.
La subrutina de luz:
Cuando se invoca, se activa el pin de relé de potencia, espera 15 segundos y luego se apaga.
Tan simple como eso :)
Y ahora el bosquejo:
#define trigPin 6 //Define el HC-SE04 Trigueros en el pin 6 en el arduino
#define echoPin 5 //Define el HC-SE04 echo en el pin 5 en el arduino
#define bombilla 9 //Define el relé de señal en el pin 9 en el arduino
void setup()
{
Serial.Begin (9600); Iniciar al monitor serial
pinMode (trigPin, salida); establecer la trigpin salida
pinMode (echoPin, entrada); establecer la echopin a entrada
pinMode (bulbo, salida); establecer el foco en el pin 9 a salida
}
void loop()
{
int duración, distancia; Definir dos intregers duración y distancia para ser usado para guardar datos
digitalWrite (trigPin, HIGH); Escriba una alta digital trigpin enviando el pulso
delayMicroseconds(500); esperar mitad un milisegundo
digitalWrite (trigPin, LOW); Apague el trigpin
duración = pulseIn (echoPin, HIGH); medir el tiempo usando pulsein cuando el eco recibe una señal de lo establecido en alto
distancia = (duración/2) / 29,1; distancia es la duración que se divide por 2 ya que la señal viajó desde el trigpin luego hacia el pin eco, entonces divida por 29.1 para convertir a centímetros
Si //if (distancia < 13) la distancia es de menos de 13 CM
{
Light(); ejecutar la subrutina luz abajo
}
Serial.Print(Distance); Aparezcan la distancia en el monitor serial
Serial.println ("CM"); en centímetros
Delay(500); retardo de medio segundo
}
void Light() //Start la subrutina luz
{digitalWrite (bombilla, HIGH); //turn en la luz
retardo (15000); Espere 15 segundos
digitalWrite (bombilla, LOW); Apagar la luz
}