Paso 7: Poner el código a
El siguiente paso es modificar los dos trozos de código y luego poner un circuito que encenderá el relé cuando la humedad del suelo baja a un cierto punto. Al que es todo y al cabo, se ve así:
Primera sección de este configura nuestras variables e inicializa la pantalla LCD
suelo de int = 0;
int relé = 7;
int relay_level = 60;
#include
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
la rutina de instalación se ejecuta una vez al presionar reset:
void setup() {}
inicializar la comunicación serial a 9600 bits por segundo:
Serial.Begin(9600); fijar número la pantalla del LCD de filas y columnas:
}
una y otra vez funciona para siempre la rutina bucle:
void loop() {}
leer la entrada en el pin analógico 0:
int sensorValue = analogRead(A0);
sensorValue = restringir (sensorValue, 485, 1023);
imprimir el valor de leer: Serial.println(sensorValue);
Inicializa el pin digital como salida.
pinMode (relé, salida);
asignar el valor a un porcentaje
suelo = mapa (sensorValue, 485, 1023, 0, 100);
imprimir el porcentaje de agua del suelo calculado a la pantalla de LCD:
Serial.Print(Soil);
Serial.println("%");
establecer el cursor a la columna 0, línea 1
(Nota: la línea 1 es la segunda fila, ya que cuenta comienza con 0):
LCD.Begin (16, 2);
Imprimir un mensaje en la pantalla LCD.
LCD.Clear();
LCD.Print ("saturación de suelo:");
lcd.setCursor (0, 1);
imprimir el número de segundos desde puesta a cero:
LCD.Print(Soil);
LCD.Print ("%");
retardo entre lecturas para la estabilidad
Delay(1000);
Este bucle siguiente activa el relé por un minuto si la humedad está por debajo del nivel que queremos (en este caso el 60%), si la humedad está por encima que nivel, se sigue probando. Si el nivel de humedad está por debajo de ese nivel resulta el relé (y posteriormente el agua de la válvula de para como quieres que (en este caso se fijó para 60000 milisegundos (1 minuto)). Luego espera un minuto antes de probar el suelo otra vez para ver si está lo suficientemente húmedo.
Si (suelo < relay_level) {}
digitalWrite (relé, alto);
activar el relé (alto es el nivel de voltaje)
Delay(60000);
Espere un minuto
digitalWrite (relé, LOW);
Apagar el LED por lo que la tensión baja
Delay(60000);
Espere un minuto
}
}