Περιγραφή
Ο αισθητήρας βροχόπτωσης μπορεί να ανιχνεύει σταγόνες νερού επειδή η παρουσία των σταγόνων νερού στην επιφάνειά του έχει σαν αποτέλεσμα την μεταβολή της αντίστασής του. Συγκεκριμένα:
- Περισσότερο νερό στην επιφάνεια σημαίνει καλύτερη αγωγιμότητα και έτσι μικρότερη αντίσταση.
- Λιγότερο νερό στην επιφάνεια σημαίνει χειρότερη αγωγιμότητα και, έτσι, μεγαλύτερη αντίσταση.
Ο αισθητήρας παράγει τάση εξόδου ανάλογη της αντίστασης, και έτσι, μπορούμε να προσδιορίσουμε εάν βρέχει ή όχι. Λειτουργεί με δύο τρόπους, αναλογικό ή ψηφιακό, και διαθέτει δύο εξόδους σήματος, Α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);
}
}