Paso 20: Código básico
Código básico:
Auto jardín regando con humedad y sensibilidad a la luz
Inicialización / / #include
incluye LCD biblioteca int MoistSensePin = 0; Pin analógico de sensor de humedad designado a 0 int LightSensePin = 1; Pin analógico sensor de luz designado a 1 int solenoide = 3; Pin de control de solenoide designado a 3 lcd LiquidCrystal (7, 8, 9, 10, 11, 12); Inicializa los pines del LCD
void setup() {pinMode (solenoide, salida); / / solenoide sistemas Pin de salida para el envío de 5v a mosfet gate pinMode (5, salida); pinMode (6, salida); Serial.Begin(9600); LCD.Begin (16, 4); configurar número la pantalla del LCD de filas y columnas: lcd.print ("- riego criterios-"); Mensaje de impresiones entre comillas}
Principio de lazo / / /
void loop() {flotador sensor = analogRead(MoistSensePin); //retrieve sensor valor float luz = analogRead(LightSensePin) //retrieve sensor de luz valor delay(2000) //2 demora segundo digitalWrite (5, alto); //Set estado Led a delay(250); //2 demora segundo digitalWrite (5, bajo); //Set estado Led OFF lcd.setCursor (0, 1); txt //Setup a seguir en la tercera línea lcd.print("Moisture:"); lcd.setCursor (10, 1); configuración de txt a seguir en la primera línea lcd.print(sensor); imprimir el valor del "sensor" para LCD delay(1000); Demora por 1000 ciclos valor de sensor para lcd.setCursor de legibilidad más fácil (0, 2); Configuración de txt a seguir en la tercera línea lcd.print("Light:"); lcd.setCursor (7, 2); Configuración de txt a seguir en la tercera línea lcd.print(light); Imprimir valor de "luz" para LCD delay(1000); Demora por 1000 ciclos luz valor de legibilidad más fácil Serial.print ("luz:"); Serial.println(Light); Imprimir "la luz" variable de salida serial monitor para diagnóstico delay(1000); Demora por 1000 ciclos luz valor de legibilidad más fácil
Serial.Print ("humedad:"); Serial.println(sensor); imprimir salida variable "sensor" serial monitor para diagnóstico delay(1000); Demora por 1000 ciclos valor del sensor de legibilidad más fácil
principio de la Unión de bucle anidado para solenoide control basado en luz y sensor de valores / / / si (luz > 200) //initialization de bucle controlado por el valor de luz para determinar el día o la noche para la seguridad de la planta {si (sensor > 190) //if luz es segura entonces preguntar si el sensor de humedad es suficientemente seco para iniciar el riego {lcd.setCursor (0, 4); //set punto de partida del texto a segunda línea del LCD lcd.print("! Activo!"); activa impresión de diagnosticar si el riego se determina que necesita digitalWrite (6, alto); Activado estado de agua Led digitalWrite (3, alto); Si el riego es necesario el solenoide está establecido en alta delay(60000) activación del solenoide; aguas para 1 minuto digitalWrite (3, bajo); } //alternative otra cosa si no lo suficientemente seco como para el riego {digitalWrite(3,LOW); //set mosfet gate a bajo para desactivar o mantener el solenoide desactivado digitalWrite (6, bajo); lcd.setCursor (0, 4); //set a partir texto a segunda línea del LCD lcd.print("Inactive!") //print inactivo! a dertime del solenoide se ha desactivado}} //alternative otra cosa si no lo suficientemente oscuro como para riego {digitalWrite(3,LOW); //keep el perno de puerta del mosfet a bajo para mantener el estado si no lo suficientemente oscuro como para riego digitalWrite (6 BAJA); lcd.setCursor (0, 4); establece la posición del texto en segunda posición lcd.print("Inactive!"); Imprimir "Inactivo!" para dar a conocer que su estado no lo suficientemente oscuro e inactivo se mantiene}}