Εισαγωγή
Η φωτοαντίσταση είναι μια μεταβλητή αντίσταση η τιμή της οποίας αλλάζει ανάλογα με το φως που πέφτει πάνω σε αυτή. Τη φωτοαντίσταση τη συναντάμε σε κυκλώματα τα οποία θέλουν με κάποιο τρόπο να αναγνωρίσουν αν το περιβάλλον είναι φωτεινό ή σκοτεινό. Για παράδειγμα λάμπες που ανάβουν αυτόματα σε χαμηλό φωτισμό.
Στον οδηγό αυτό θα μάθετε να χρησιμοποιείτε μια φωτοαντίσταση με και χωρίς το Arduino uno. |
Πως λειτουργεί η φωτοαντίσταση
Ας δούμε πως μια φωτοαντίσταση αντιδρά στο φως. Κατασκευάστε το παραπάνω κύκλωμα και παρατηρήστε πως αλλάζει η φωτεινότητα του led ανάλογα τον φωτισμό. Η τιμή της αντίστασης μικραίνει όταν στον χώρο υπάρχει πολύς φωτισμός, με αποτέλεσμα το led να είναι πολύ φωτεινό. Αντίθετα, η τιμή της αντίστασης μεγαλώνει όσο μικραίνει ο φωτισμός, με αποτέλεσμα το led να σβήνει στο σκοτάδι.
Στη συνέχεια θα δούμε πως μπορούμε να αντιστρέψουμε την κατάσταση αυτή με την χρήση του Arduino.
Στη συνέχεια θα δούμε πως μπορούμε να αντιστρέψουμε την κατάσταση αυτή με την χρήση του Arduino.
Τα υλικά που θα χρειαστούμε
Για το tutorial αυτό θα χρειαστούμε:
- Arduino uno
- Breadboard
- Φωτοαντίσταση
- LED
- 220 Ω και 10 KΩ αντιστάσεις
Το κύκλωμα
Οι συνδέσεις είναι αρκετά εύκολες, δείτε την παραπάνω εικόνα με το σχηματικό του κυκλώματος σε breadboard.
Ο κώδικας
Ο κώδικας για το "led & photoresistor" βρίσκεται παρακάτω.
Πως λειτουργεί ο κώδικας:
Πως λειτουργεί ο κώδικας:
- Διαβάζουμε την αναλογική τιμή απ΄ την φωτοαντίσταση (0-1023)
-> value=analogRead(pResistor)
- Έλεγχος τιμής αν είναι μεγαλύτερη απο π.χ. 25
- Ενεργοποίηση/απενεργοποίηση του led ανάλογα
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | /* Use a photoresistor (or photocell) to turn on an LED in the dark More info and circuit schematic: http://www.ardumotive.com/how-to-use-a-photoresistor-en.html Dev: Michalis Vasilakis // Date: 8/6/2015 // www.ardumotive.com */ //Constants const int pResistor = A0; // Photoresistor at Arduino analog pin A0 const int ledPin=9; // Led pin at Arduino pin 9 //Variables int value; // Store value from photoresistor (0-1023) void setup(){ pinMode(ledPin, OUTPUT); // Set lepPin - 9 pin as an output pinMode(pResistor, INPUT);// Set pResistor - A0 pin as an input (optional) } void loop(){ value = analogRead(pResistor); //You can change value "25" if (value > 25){ digitalWrite(ledPin, LOW); //Turn led off } else{ digitalWrite(ledPin, HIGH); //Turn led on } delay(500); //Small delay } |
Κατεβάστε τον κώδικα απ' εδώ και ανοίξτε το αρχείο με το Arduino IDE.
|
|
Μπορείτε να κάνετε τις δικές σας παρεμβάσεις στον κώδικα πατώντας δοκιμάστε για παράδειγμα να αλλάξετε την τιμή "25" και παρατηρήστε πως αυτό αλλάζει το πρόγραμμα.
Συγχαρητήρια!
Μόλις ολοκληρώσατε άλλο ένα "How to" tutorial και μάθατε πως να χρησιμοποιείτε την φωτοαντίσταση.
Ελπίζω να σας άρεσε, αν θέλετε μπορείτε να αφήσετε το σχόλιο σας παρακάτω.
Ελπίζω να σας άρεσε, αν θέλετε μπορείτε να αφήσετε το σχόλιο σας παρακάτω.