Markfuktighet/Detection System (2 / 2 steg)
Steg 2: kod
Koden är inte något att skriva hem om. Det är ganska grundläggande som jag är inga expert programmerare av någon vildaste fantasi.
int moistureSensor = 0; spik att läsa från är pin A0
int moisture_val;
CONST int redLEDPin = 3; röd lysdiod ansluten till digital pin
CONST int yellowLEDPin = 4; gul lysdiod ansluten till digital pin
CONST int greenLEDPin = 5; grön lysdiod ansluten till digital pin
CONST int blueLEDPin = 7. blå LED ansluten till digital pin
CONST int buttonPin = 9; knappen ansluten till digital pin
CONST int spänning = 8. den spänning spiken är på stift D8
int buttonState = 0; initialisera knappen som från
void setup() {
Serial.BEGIN(9600); Öppna serieporten
pinMode (redLEDPin, produktionen);
pinMode (greenLEDPin, produktionen); ställa in LED stift som utgångar
pinMode (yellowLEDPin, produktionen);
pinMode (blueLEDPin, produktionen);
}
void loop() {
buttonState = digitalRead(buttonPin);
om (buttonState == hög) {
digitalWrite (blueLEDPin, hög);
digitalWrite (spänning, hög);
moisture_val = analogRead(moistureSensor); läsa värdet från spiken
Serial.Print ("fuktighetsnivå:"); //
Serial.println (moisture_val); skriva ut fuktighetsnivå 0-1024
Delay(1000); falska tänkande...
digitalWrite (blueLEDPin, låg);
om (moisture_val < 170) {
digitalWrite (redLEDPin, hög); om fukt är mindre än 190 har rött på, andra av
digitalWrite (yellowLEDPin, låg);
digitalWrite (greenLEDPin, låg);
}
om (moisture_val < 200 & & moisture_val > 170) {
digitalWrite (redLEDPin, låg);
digitalWrite (yellowLEDPin, hög); om fukt är lägre än 230 men över 190 har gult på, andra av
digitalWrite (greenLEDPin, låg);
}
om (moisture_val > 200 & & moisture_val < 240) {
digitalWrite (redLEDPin, låg);
digitalWrite (yellowLEDPin, låg);
digitalWrite (greenLEDPin, hög); om fukt finns över 230 och mindre än 300 har green på, andra av
}
om (moisture_val > 280) {
digitalWrite (redLEDPin, hög); om fukt över än 300 (möjligen översvämmat) har rött på, andra av
digitalWrite (yellowLEDPin, låg);
digitalWrite (greenLEDPin, låg);
}
digitalWrite (spänning, låg); knappen tillstånd
Delay(5000); vänta 5 ses
digitalWrite (redLEDPin, låg); om fukt över än 300 (möjligen översvämmat) har rött på, andra av
digitalWrite (yellowLEDPin, låg);
digitalWrite (greenLEDPin, låg);
}
}
Som vanligt börjar vi genom att tilldela etiketter stift.
Ogiltiga inställningar grejer bara öppna serieporten och tilldela en läge till LED stift.
Ogiltig loop är där bra grejer händer. Om knappen trycks. Vi ljus blå LED, växla spänningen på en spik, läsa värdet från den andra spiken, pausa för lite (att låta dig se den blå lampan på) sedan inaktivera spänningen till spiken. Nu har vi ett resultat från (icke-spänning) nageln kan vi köra det genom vissa uttalanden om att se som ledde till ljus.
Självklart måste du köra några tester (genom att öppna den seriella monitorn) att se vilket värde är perfekt för din anläggning. Sedan besluta vilka värden är halvbra och dåliga.
När en LED har visat det nuvarande resultatet, och 5 sekunder har gått, slocknar alla lampor.
Systemet är nu reset och redo för en annan knapptryck.
Problemet med naglarna rost är fortfarande närvarande, men mycket mindre än tidigare.