LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
SoM / SBC

[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:

 

Autor: Patryk Mądry