Σάββατο 20 Φεβρουαρίου 2021

Αισθητήρας βροχόπτωσης σε ψηφιακή λειτουργία: προειδοποίηση με 2 LED και buzzer

 Περιγραφή

Ο αισθητήρας βροχόπτωσης μπορεί να ανιχνεύει σταγόνες νερού επειδή η παρουσία των σταγόνων νερού στην επιφάνειά του έχει σαν αποτέλεσμα την μεταβολή της αντίστασής του. Συγκεκριμένα:

  • Περισσότερο νερό στην επιφάνεια σημαίνει καλύτερη αγωγιμότητα και έτσι μικρότερη αντίσταση.
  • Λιγότερο νερό στην επιφάνεια σημαίνει χειρότερη αγωγιμότητα και, έτσι, μεγαλύτερη αντίσταση.

Ο αισθητήρας παράγει τάση εξόδου ανάλογη της αντίστασης, και έτσι, μπορούμε να προσδιορίσουμε εάν βρέχει ή όχι. Λειτουργεί με δύο τρόπους, αναλογικό ή ψηφιακό, και διαθέτει δύο εξόδους σήματος, Α0 και D0 αντίστοιχα. Εδώ ο αισθητήρας λειτουργεί με ψηφιακό τρόπο. Αρχικά, περιστρέφοντας το ποτενσιόμετρο της πλακέτας, θα καθορίσουμε την ευαισθησία του αισθητήρα, με βαθμονόμηση όπως περιγράφεται στην ανάρτηση εδώ. Ο αισθητήρας σε ψηφιακή λειτουργία δίνει στην έξοδο D0 δύο δυνατές τιμές LOW ή HIGH, που ισοδυναμούν με τις δυνατές τιμές ON ή OFF ενός διακόπτη. Στην πλακέτα του αισθητήρα, ένα ενσωματωμένο LED πληροφορεί για αυτήν την κατάσταση ON/OFF.

Όταν βρέχει, η έξοδος είναι ΟΝ, η κόκκινη λυχνία LED ανάβει και το buzzer ηχεί, διαφορετικά η πράσινη λυχνία είναι αναμμένη.

Εξαρτήματα και συνδέσεις

  • Arduino Uno
  • Αισθητήρας βροχόπτωσης
  • Κόκκινο LED
  • Πράσινο LED
  • 2x 220Ω αντιστάτες
  • Breadboard και καλώδια
Η έξοδος του αισθητήρα συνδέεται στην ψηφιακή είσοδο 3. Οι λυχνίες συνδέονται στις ψηφιακές εξόδους 8 και 9 και προστατεύονται με 2 αντιστάτες 220Ω. Το buzzer συνδέεται στην ψηφιακή έξοδο 10.

Κώδικας

int R_LED = 8;
int G_LED = 9;
int buzzer= 10;
int rainSensor = 3;
int rain_ON;
void setup()
{
pinMode(R_LED, OUTPUT);
pinMode(G_LED, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(rainSensor, INPUT);
digitalWrite(G_LED, LOW);
digitalWrite(R_LED, LOW);
digitalWrite(buzzer, LOW);
}
void loop()
{
rain_ON = digitalRead(rainSensor);
delay(2000);
if (rain_ON == 0)
{
digitalWrite(R_LED, LOW);
digitalWrite(G_LED, HIGH);
digitalWrite(buzzer, LOW);
}
else
{
digitalWrite(R_LED, HIGH);
digitalWrite(G_LED, LOW);
digitalWrite(buzzer, HIGH);
}
}


Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου