Ημέρα 6 - Ενότητα 1 - Ανιχνεύοντας το φως

Ιστότοπος: ΕΛ/ΛΑΚ Moodle
Μάθημα: Εκπαιδευτική Ρομποτική - 3D Εκτυπώσεις - Διαδίκτυο των Πραγμάτων
Βιβλίο: Ημέρα 6 - Ενότητα 1 - Ανιχνεύοντας το φως
Εκτυπώθηκε από: Guest user
Ημερομηνία: Πέμπτη, 25 Απριλίου 2024, 9:08 PM

Περιγραφή

Μετά την ολοκλήρωση αυτής της ενότητας ως εκπαιδευόμενοι θα μπορείτε να:

  • περιγράφετε και χρησιμοποιήστε ένα φωτοαντιστάτη
  • δημιουργείτε ένα κύκλωμα που να ανιχνεύει και να μετράει το φως
  • χρησιμοποιείτε τη σειριακή οθόνη στο περιβάλλον IDE του Arduino
  • αντιστοιχίζετε το ποσό φωτός που ανιχνεύετε σε τιμές στη σειριακή οθόνη

Λιγότερο ή περισσότερο φως....

Σε αυτό το μάθημα θα εξετάσουμε πώς μπορούμε να μετρήσουμε την ποσότητα του φωτός με τη βοήθεια ενός ηλεκτρονικού στοιχείου που ονομάζεται "φωτοαντίσταση".

https://c.76.my/Malaysia/ky-018-photoresistor-module-arduino-ubitronix-1607-26-ubitronix@14.jpg
Πρόκειται για έναν μεταβλητό αντιστάτη που μειώνει την αντίσταση του όταν το φως περνά μέσα από αυτό. Είναι μια αναλογική συσκευή κάτι που σημαίνει ότι διαβάζουμε όχι μόνο δύο καταστάσεις (0 και 1) αλλά πολλές τιμές μεταξύ 0V και 3.3V ή σε περίπτωση τιμών Arduino IDE μεταξύ 0 και 1023 αντίστοιχα.

Έτσι, πώς μπορούμε να βρούμε την ακριβή ποσότητα φωτός που περνά μέσα από τη συσκευή ανά πάσα στιγμή χρησιμοποιώντας το NodeMCU και το Arduino IDE;

Η απάντηση είναι ότι "δεν μπορούμε να το κάνουμε μόνο με αυτά", αλλά μπορούμε να δημιουργήσουμε ένα κύκλωμα που θα μας βοηθήσει να παρακολουθήσουμε τις αλλαγές που προκαλεί το φως περνώντας μέσα από τον φωτοαντιστάτη. Για τους σκοπούς αυτού του πειράματος πρέπει να κατασκευάσουμε το ακόλουθο κύκλωμα.


Η επόμενη πρόκληση είναι να παρακολουθήσουμε τις αλλαγές που επιφέρει το φως, στην οθόνη μας. Για να γίνει αυτό χρειαζόμαστε το Arduino IDE's Serial monitor.

Χρησιμοποιώντας τη Σειριακή οθόνη για να παρακολουθούμε τα οπτικά εφέ

Πριν εξηγήσουμε πώς λειτουργεί η σειριακή οθόνη, ας δούμε τον κώδικα που πρέπει να φορτώσουμε στο NodeMCU, για να μετρήσουμε το φως. Μελετήστε, αντιγράψτε και στη συνέχεια επικολλήστε το στο IDE του Arduino:

void setup()
{
    Serial.begin(9600);  //Begin serial communcation
}

void loop()
{
   Serial.println(analogRead(A0)); //Write the value of the photoresistor to the serial monitor.

delay(10); //short delay for faster response to light. }

Λίγα λόγια για το πρόγραμμα:
Πρώτα, στην ενότητα setup(), αρχικοποιούμε την ταχύτητα επικοινωνίας μεταξύ υπολογιστή και πλακέτας NodeMCU.
(Serial.begin(9600);)

Στην ενότητα loop(), διαβάζουμε την αναλογική τιμή του ακροδέκτη A0 (analogRead(A0);) και μετά την εμφανίζουμε στη Σειριακή Οθόνη σε νέα γραμμή (Serial.println();). Παρατηρήστε εδώ ότι υπάρχει και η εντολή (Serial.print();) η οποία εμφανίζει το αποτέλεσμα χωρίς να ανοίξει νέα γραμμή. Εδώ όμως, χρησιμοποιούμε την εντολή Serial.println(); .
Η τελευταία εντολή delay(10); λέει στο NodeMCU να περιμένει για λίγο (10ms) πριν συνεχίσει με το επόμενο αποτέλεσμα.

Για να ανοίξετε τη Σειριακή Οθόνη στο Arduino IDE και να παρακολουθήσετε τις τιμές πρέπει να πατήσετε το εικονίδιο με το μεγεθυντικό φακό:


Μετά θα δείτε μια εικόνα όπως η παρακάτω, που θα ανανεώνεται πολύ γρήγορα:


Δοκιμάστε τώρα να ρίξετε λίγο φως στη φωτοαντίσταση (ίσως με έναν φακό ή χρησιμοποιώντας το κινητό σας τηλέφωνο) και παρακολουθήστε τις μεταβαλλόμενες τιμές. Τα όρια είναι 0-1023, έτσι οποιαδήποτε τιμή μεταξύ αυτών των ορίων αντιπροσωπεύει μια ποσότητα φωτός σε οποιαδήποτε δεδομένη στιγμή.


Παίξτε, πειραματιστείτε και μάθετε δημιουργώντας! Μετά από αυτό, μπορούμε να προχωρήσουμε στην επόμενη ενότητα που αφορά το χειρισμό μίας διόδου λέιζερ, από το NodeMCU.