[PROJEKT] Czujnik deszczu – KAmduino UNO oraz Raindrops Module
Mając przygotowany i zmontowany sprzęt można przejść do części programistycznej. Kod ma za zadanie wysyłać na monitor portu szeregowego wartość cyfrową oraz analogową. W momencie wykrycia opadów zostanie uruchomiony buzzer.
Kod programu znajduje się poniżej (pliki projektowe znajdują się w sekcji „do pobrania”):
// [PROJEKT] Czujnik deszczu - KAmduino UNO oraz Raindrops Module // Autor: Patryk Mądry // Mikrokontroler 2017 r. int wartosc_cyfrowa = 0; int wartosc_analogowa = 0; void setup() { pinMode(2,INPUT); pinMode(4,OUTPUT); Serial.begin(9600); } void loop() { wartosc_cyfrowa=digitalRead(2); wartosc_analogowa=analogRead(A0); Serial.print("Wartosc cyfrowa: "); Serial.println(wartosc_cyfrowa); Serial.print("Wartosc analogowa: "); Serial.println(wartosc_analogowa); if (wartosc_cyfrowa == 0) { digitalWrite(4,HIGH); } else { digitalWrite(4,LOW); } delay(100); }
Najpierw deklarowane są zmienne, w których będą przechowywane wartości pochodzące z pinu cyfrowego oraz analogowego:
int wartosc_cyfrowa = 0; int wartosc_analogowa = 0;
Następnie należy ustawić pin 2 jako wejście cyfrowe z czujnika deszczu, pin 4 jako wyjście (buzzer), a także prędkość transmisji:
void setup() { pinMode(2,INPUT); pinMode(4,OUTPUT); Serial.begin(9600); }
W pętli głównej programu do zmiennych przypisywane są wartości z pinu cyfrowego 2 oraz analogowego A0, a także są wyświetlanie wartości tych zmiennych na monitorze portu szeregowego:
void loop() { wartosc_cyfrowa=digitalRead(2); wartosc_analogowa=analogRead(A0); Serial.print("Wartosc cyfrowa: "); Serial.println(wartosc_cyfrowa); Serial.print("Wartosc analogowa: "); Serial.println(wartosc_analogowa); (...)
Gdy na wyjściu cyfrowym pojawi się stan niski, zostanie załączony buzzer. Próg jego załączania możemy ustawić za pomocą potencjometru.
if (wartosc_cyfrowa == 0) { digitalWrite(4,HIGH); } else { digitalWrite(4,LOW); }
Rysunek 4. Widok monitora portu szeregowego podczas działania programu
Działanie programu zostało przedstawione poniżej: