Stap 20: Basic-Code
Basic-Code:
Automatische tuin drenken met vocht en lichtgevoeligheid
Initialisatie / / / #include
opnemen van LCD-bibliotheek int MoistSensePin = 0; Voorgedragen vocht sensor analoge pin naar 0 int LightSensePin = 1; De analoge pin voorgedragen lichtsensor om 1 int solenoïde = 3; Voorgedragen solenoïde controle pin 3 LiquidCrystal LCD (7, 8, 9, 10, 11, 12); initialiseren van LCD pinnen
void setup {pinMode (solenoïde, OUTPUT); / / Sets solenoïde Pin naar uitvoer voor het verzenden van 5v aan mosfet gate pinMode (5, OUTPUT); pinMode (6, OUTPUT); Serial.begin(9600); LCD.begin (16, 4); de LCD's aantal kolommen en rijen instellen: lcd.print ("- drenken Criteria-"); Prints bericht in citaten}
Begin van lus / / /
void loop {vlotter sensor = analogRead(MoistSensePin); //retrieve sensor waarde float licht = analogRead(LightSensePin); //retrieve lichtsensor waarde delay(2000); //2 sec vertraging digitalWrite (5, hoge); //Set status-Led aan op de delay(250); //2 sec vertraging digitalWrite (5, laag); //Set status-Led op uit lcd.setCursor (0, 1); //Setup txt te volgen op de derde regel lcd.print("Moisture:"); lcd.setCursor (10, 1); Setup txt te volgen op de eerste regel lcd.print(sensor); Print "sensor" waarde voor LCD-delay(1000); Vertraging door 1000 cycli sensor waarde voor gemakkelijker leesbaarheid-lcd.setCursor (0, 2); Setup txt te volgen op de derde regel lcd.print("Light:"); lcd.setCursor (7, 2); Setup txt te volgen op de derde regel lcd.print(light); "light" waarde aan LCD delay(1000); afdrukken Vertraging door 1000 cycli lichtwaarde voor gemakkelijker leesbaarheid Serial.print ("licht:"); Serial.println(Light); "light" variabele output naar seriële monitor voor diagnostiek delay(1000); afdrukken Vertraging door 1000 cycli lichtwaarde voor gemakkelijker leesbaarheid
Serial.Print ("vocht:"); Serial.println(sensor); afdrukken "sensor" variabele output naar seriële monitor voor diagnostiek delay(1000); Vertraging door 1000 cycli sensor waarde voor gemakkelijker leesbaarheid
het begin van de geneste lus voor magneetventiel controle gebaseerd op licht en sensor / / / waarden als (licht > 200) //initialization van lus bestuurd door de lichte waarde om te bepalen van de dag of nacht voor de veiligheid van het bedrijf {als (sensor > 190) //if licht is veilig dan vragen of de vocht sensor droog genoeg is om te beginnen met het drenken is {lcd.setCursor (0, 4), //set startpunt van tekst op de tweede regel van de LCD lcd.print("! Active!"); Print actief te diagnosticeren als drenken is bepaald als de benodigde digitalWrite (6, hoog); Water status Led instellen op digitalWrite (3, hoog); eventueel water geven is de magneetklep is ingesteld op hoog triggering solenoïde delay(60000); wateren voor 1min digitalWrite (3, laag); } anders //alternative als niet droog genoeg voor het drenken {digitalWrite(3,LOW); //set mosfet poort te laag om te schakelen of houden de solenoïde uitgeschakeld digitalWrite (6, LOW); lcd.setCursor (0, 4); //set starten op tweede regel van de LCD-lcd.print("Inactive!"); //print inactief! aan dertime van de solenoïde heeft geweest verminkte}} anders //alternative als niet donker genoeg voor het drenken {digitalWrite(3,LOW); //keep de pin gate mosfet te laag als u wilt behouden uit status als niet donker genoeg voor het Bewateren van digitalWrite (6 LAAG); lcd.setCursor (0, 4); Zet de tekstpositie op de tweede positie lcd.print("Inactive!"); afdrukken van "Inactief!" bewust dat zijn niet donker genoeg en inactieve status wordt gehandhaafd te maken}}