Πίνακας περιεχομένων:

Αισθητήρας φωτός (Photoresistor) Με Arduino στο Tinkercad: 5 βήματα (με εικόνες)
Αισθητήρας φωτός (Photoresistor) Με Arduino στο Tinkercad: 5 βήματα (με εικόνες)

Βίντεο: Αισθητήρας φωτός (Photoresistor) Με Arduino στο Tinkercad: 5 βήματα (με εικόνες)

Βίντεο: Αισθητήρας φωτός (Photoresistor) Με Arduino στο Tinkercad: 5 βήματα (με εικόνες)
Βίντεο: TinkerCad Arduino Greek - μάθημα 5ο. Έλεγχος LED μέσω διακόπτη. 2024, Ιούλιος
Anonim
Αισθητήρας φωτός (Φωτοαντίσταση) Με Arduino στο Tinkercad
Αισθητήρας φωτός (Φωτοαντίσταση) Με Arduino στο Tinkercad

Έργα Tinkercad »

Ας μάθουμε πώς να διαβάζουμε μια φωτοαντίσταση, έναν ευαίσθητο στο φως τύπο μεταβλητής αντίστασης, χρησιμοποιώντας την Αναλογική είσοδο του Arduino. Ονομάζεται επίσης LDR (αντίσταση εξαρτώμενη από το φως).

Μέχρι τώρα έχετε μάθει να ελέγχετε τις λυχνίες LED με την αναλογική έξοδο του Arduino και να διαβάζετε ένα ποτενσιόμετρο, το οποίο είναι ένας άλλος τύπος μεταβλητής αντίστασης, οπότε θα βασιστούμε σε αυτές τις δεξιότητες σε αυτό το μάθημα. Θυμηθείτε ότι οι αναλογικές είσοδοι του Arduino (ακίδες με σήμανση A0-A6) μπορούν να ανιχνεύσουν ένα σταδιακά μεταβαλλόμενο ηλεκτρικό σήμα και μεταφράζουν αυτό το σήμα σε έναν αριθμό μεταξύ 0 και 1023.

Εικόνα
Εικόνα

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

Σε αυτό το μάθημα, θα φτιάξετε αυτό το προσομοιωμένο κύκλωμα μόνοι σας στο πλάι του δείγματος. Για να χτίσετε προαιρετικά το φυσικό κύκλωμα, συγκεντρώστε την πλακέτα Arduino Uno, το καλώδιο USB, το ψωμί χωρίς συγκόλληση, ένα LED, αντιστάσεις (220 ohm και 4,7 k ohm), φωτοαντίσταση και καλώδια ψωμιού.

Μπορείτε να ακολουθήσετε σχεδόν χρησιμοποιώντας τα κυκλώματα Tinkercad. Μπορείτε ακόμη να δείτε αυτό το μάθημα μέσα από το Tinkercad (απαιτείται δωρεάν σύνδεση)! Εξερευνήστε το δείγμα κυκλώματος και δημιουργήστε το δικό σας ακριβώς δίπλα του. Το Tinkercad Circuits είναι ένα δωρεάν πρόγραμμα που βασίζεται σε πρόγραμμα περιήγησης και σας επιτρέπει να δημιουργείτε και να προσομοιώνετε κυκλώματα. Είναι ιδανικό για μάθηση, διδασκαλία και πρωτότυπο.

Βήμα 1: Δημιουργήστε το κύκλωμα

Κατασκευάστε το κύκλωμα
Κατασκευάστε το κύκλωμα
Κατασκευάστε το κύκλωμα
Κατασκευάστε το κύκλωμα

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

Για να συνεχίσετε, φορτώστε ένα νέο παράθυρο Tinkercad Circuits και δημιουργήστε τη δική σας έκδοση αυτού του κυκλώματος στο πλάι του δείγματος.

Προσδιορίστε τη φωτοαντίσταση, τη λυχνία LED, τις αντιστάσεις και τα καλώδια που είναι συνδεδεμένα στο Arduino στο πεδίο εργασίας των κυκλωμάτων Tinkercad.

Σύρετε ένα Arduino Uno και ένα breadboard από τον πίνακα εξαρτημάτων στο επίπεδο εργασίας, δίπλα στο υπάρχον κύκλωμα.

Συνδέστε τις ράγες ισχύος (+) και γείωσης (-) στο Arduino 5V και στη γείωση (GND), αντίστοιχα, κάνοντας κλικ για να δημιουργήσετε καλώδια.

Επεκτείνετε τις ράγες ισχύος και γείωσης στα αντίστοιχα λεωφορεία τους στην απέναντι άκρη του ψωμιού (προαιρετικό για αυτό το κύκλωμα, αλλά καλή κοινή πρακτική).

Συνδέστε το LED σε δύο διαφορετικές σειρές ψωμιού, έτσι ώστε η κάθοδος (αρνητικό, πιο κοντό πόδι) να συνδεθεί με το ένα πόδι μιας αντίστασης (οπουδήποτε από 100-1K ohms είναι εντάξει). Η αντίσταση μπορεί να πάει σε οποιοδήποτε προσανατολισμό επειδή οι αντιστάσεις δεν είναι πολωμένες, σε αντίθεση με τις λυχνίες LED, οι οποίες πρέπει να συνδεθούν με έναν συγκεκριμένο τρόπο για να λειτουργήσουν.

Συνδέστε άλλο πόδι αντίστασης στη γείωση.

Συνδέστε την άνοδο LED (θετικό, μακρύτερο πόδι) στον πείρο Arduino 9.

Σύρετε μια φωτοαντίσταση από τον πίνακα εξαρτημάτων στον πίνακα ψωμιού σας, έτσι ώστε τα πόδια του να συνδέονται σε δύο διαφορετικές σειρές.

Κάντε κλικ για να δημιουργήσετε ένα καλώδιο που συνδέει ένα πόδι φωτοαντίστασης στην τροφοδοσία.

Συνδέστε το άλλο πόδι στην αναλογική ακίδα Arduino A0.

Σύρετε μια αντίσταση από τον πίνακα εξαρτημάτων για να συνδέσετε το σκέλος φωτοαντίστασης που είναι συνδεδεμένο στο A0 με τη γείωση και προσαρμόστε την τιμή του στα 4,7k ohm.

Βήμα 2: Κωδικός με μπλοκ

Κωδικός με μπλοκ
Κωδικός με μπλοκ

Ας χρησιμοποιήσουμε τον επεξεργαστή μπλοκ κώδικα για να ακούσουμε την κατάσταση της φωτοαντίστασης και, στη συνέχεια, ορίστε ένα LED σε σχετική φωτεινότητα με βάση το πόσο φως βλέπει ο αισθητήρας. Youσως θελήσετε να ανανεώσετε τη μνήμη αναλογικής εξόδου LED στο μάθημα Fading LED.

Κάντε κλικ στο κουμπί "Κωδικός" για να ανοίξετε τον επεξεργαστή κώδικα. Τα γκρι μπλοκ σημειώσεων είναι σχόλια για να σημειώσετε τι σκοπεύετε να κάνετε για τον κώδικά σας, αλλά αυτό το κείμενο δεν εκτελείται ως μέρος του προγράμματος.

Κάντε κλικ στην κατηγορία Μεταβλητές στον επεξεργαστή κώδικα.

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

Σύρετε προς τα έξω ένα "καθορισμένο" μπλοκ. Θα αποθηκεύσουμε την κατάσταση του φωτοαντιστάτη μας στη μεταβλητή

sensorValue

Κάντε κλικ στην κατηγορία Εισαγωγή και σύρετε ένα μπλοκ "αναλογικής ακίδας ανάγνωσης" και τοποθετήστε το στο μπλοκ "set" μετά τη λέξη "to"

Δεδομένου ότι το ποτενσιόμετρο μας είναι συνδεδεμένο με το Arduino στον ακροδέκτη A0, αλλάξτε το αναπτυσσόμενο μενού σε A0.

Κάντε κλικ στην κατηγορία Έξοδος και σύρετε ένα μπλοκ "εκτύπωση σε σειριακή οθόνη".

Μεταβείτε στην κατηγορία Μεταβλητές και σύρετε τη μεταβλητή συσκευή αισθητήρων στο μπλοκ "εκτύπωση σε σειριακή οθόνη" και βεβαιωθείτε ότι το αναπτυσσόμενο μενού έχει οριστεί για εκτύπωση με νέα γραμμή. Προαιρετικά ξεκινήστε την προσομοίωση και ανοίξτε τη σειριακή οθόνη για να επαληθεύσετε ότι οι ενδείξεις έρχονται και αλλάζουν όταν προσαρμόζετε τον αισθητήρα. Οι τιμές αναλογικών εισόδων κυμαίνονται από 0-1023.

Δεδομένου ότι θέλουμε να γράψουμε στη λυχνία LED με έναν αριθμό μεταξύ 0 (απενεργοποιημένο) και 255 (πλήρης φωτεινότητα), θα χρησιμοποιήσουμε το μπλοκ "χάρτης" για να κάνουμε μερικούς πολλαπλασιασμούς για εμάς. Μεταβείτε στην κατηγορία Μαθηματικά και σύρετε ένα μπλοκ "χάρτη".

Στην πρώτη υποδοχή, σύρετε σε ένα μπλοκ μεταβλητής sensorValue και, στη συνέχεια, ορίστε το εύρος από 0 έως 255.

Πίσω στην κατηγορία Έξοδος, σύρετε ένα αναλογικό μπλοκ "set pin", το οποίο από προεπιλογή λέει "set pin 3 to 0." Ρυθμίστε το για να ορίσετε τον πείρο 9.

Σύρετε το μπλοκ χάρτη που κάνατε νωρίτερα στο πεδίο "set pin" του μπλοκ "to" για να γράψετε τον προσαρμοσμένο αριθμό στην ακίδα LED χρησιμοποιώντας PWM.

Κάντε κλικ στην κατηγορία Έλεγχος και σύρετε ένα μπλοκ αναμονής και ρυθμίστε το ώστε να καθυστερήσει το πρόγραμμα για 0,1 δευτερόλεπτα.

Βήμα 3: Επεξηγείται ο φωτοαντιστάτης Arduino Code

Όταν ο επεξεργαστής κώδικα είναι ανοιχτός, μπορείτε να κάνετε κλικ στο αναπτυσσόμενο μενού στα αριστερά και να επιλέξετε "Αποκλεισμοί + Κείμενο" για να αποκαλύψετε τον κώδικα Arduino που δημιουργήθηκε από τα μπλοκ κώδικα. Ακολουθήστε καθώς ερευνούμε τον κώδικα με περισσότερες λεπτομέρειες.

int sensorValue = 0;

Πριν το

εγκατάσταση ()

δημιουργούμε μια μεταβλητή για να αποθηκεύσουμε την τρέχουσα τιμή που διαβάζεται από το ποτενσιόμετρο. Λέγεται

int

επειδή είναι ένας ακέραιος αριθμός, ή οποιοσδήποτε ακέραιος αριθμός.

void setup ()

{pinMode (A0, INPUT); pinMode (9, OUTPUT); Serial.begin (9600); }

Μέσα στη ρύθμιση, οι ακίδες διαμορφώνονται χρησιμοποιώντας το

pinMode ()

λειτουργία. Το Pin A0 έχει ρυθμιστεί ως είσοδος, ώστε να μπορούμε να "ακούσουμε" την ηλεκτρική κατάσταση του ποτενσιόμετρου. Το pin 9 έχει ρυθμιστεί ως έξοδος για τον έλεγχο της λυχνίας LED. Για να μπορείτε να στέλνετε μηνύματα, το Arduino ανοίγει ένα νέο σειριακό κανάλι επικοινωνίας με

Serial.begin ()

το οποίο παίρνει ένα όρισμα ρυθμού baud (τι ταχύτητα επικοινωνίας), σε αυτή την περίπτωση 9600 bit ανά δευτερόλεπτο.

κενός βρόχος ()

{// διαβάστε την τιμή από τον αισθητήρα sensorValue = analogRead (A0); // εκτυπώστε την ένδειξη του αισθητήρα ώστε να γνωρίζετε το εύρος του Serial.println (sensorValue).

Οτιδήποτε μετά από ένα σύνολο πτώσεων

//

είναι ένα σχόλιο, το οποίο βοηθά τους ανθρώπους να καταλάβουν σε απλή γλώσσα τι προορίζεται να κάνει το πρόγραμμα, αλλά δεν περιλαμβάνεται στο πρόγραμμα που εκτελεί το Arduino σας. Στον κύριο βρόχο, καλείται μια συνάρτηση

analogRead ();

ελέγχει την κατάσταση του πείρου A0 (που θα είναι ακέραιος αριθμός από 0-1023) και αποθηκεύει αυτήν την τιμή στη μεταβλητή

sensorValue

// χαρτογραφήστε την ένδειξη του αισθητήρα σε μια περιοχή για το LED

analogWrite (9, χάρτης (sensorValue, 0, 1023, 0, 255)); καθυστέρηση (100)? // Περιμένετε 100 χιλιοστά του δευτερολέπτου)

Η γραμμή που ακολουθεί το επόμενο σχόλιο κάνει πολλά ταυτόχρονα. Θυμάμαι

analogWrite ()

παίρνει δύο ορίσματα, τον αριθμό pin (9 στην περίπτωσή μας) και την τιμή για εγγραφή, η οποία πρέπει να είναι μεταξύ 0 και 255. Η ενσωματωμένη συνάρτηση

χάρτης()

παίρνει πέντε ορίσματα: τον αριθμό προς αξιολόγηση (η μεταβαλλόμενη μεταβλητή του αισθητήρα), το αναμενόμενο ελάχιστο και αναμενόμενο μέγιστο και το επιθυμητό min και max. Ετσι το

χάρτης()

Η συνάρτηση στην περίπτωσή μας είναι η αξιολόγηση του εισερχόμενου sensorValue και ο διασταυρούμενος πολλαπλασιασμός για να μειωθεί η έξοδος από 0-1023 σε 0-255. Το αποτέλεσμα επιστρέφεται στο δεύτερο όρισμα του

analogWrite ();

ρυθμίζοντας τη φωτεινότητα της λυχνίας LED που είναι συνδεδεμένη στην ακίδα 9.

Βήμα 4: Δημιουργήστε ένα φυσικό κύκλωμα Arduino (προαιρετικό)

Δημιουργήστε ένα φυσικό κύκλωμα Arduino (προαιρετικό)
Δημιουργήστε ένα φυσικό κύκλωμα Arduino (προαιρετικό)

Για να προγραμματίσετε το φυσικό σας Arduino Uno, θα πρέπει να εγκαταστήσετε το δωρεάν λογισμικό (ή την προσθήκη για τον επεξεργαστή ιστού) και, στη συνέχεια, να το ανοίξετε. Διάφορα φωτοκύτταρα έχουν διαφορετικές τιμές, οπότε αν το φυσικό σας κύκλωμα δεν λειτουργεί, μπορεί να χρειαστεί να αλλάξετε την αντίσταση που συνδυάζεται με αυτό. Μάθετε περισσότερα σχετικά με τους διαχωριστές τάσης στο μάθημα Instructables Electronics για τις αντιστάσεις.

Συνδέστε το κύκλωμα Arduino Uno συνδέοντας εξαρτήματα και καλώδια για να ταιριάζουν με τις συνδέσεις που εμφανίζονται εδώ στα κυκλώματα Tinkercad. Για μια πιο εμπεριστατωμένη διαδικασία εργασίας με τη φυσική πλακέτα Arduino Uno, δείτε τη δωρεάν τάξη Instructables Arduino.

Αντιγράψτε τον κώδικα από το παράθυρο κώδικα Tinkercad Circuits και επικολλήστε τον σε ένα κενό σκίτσο στο λογισμικό Arduino ή κάντε κλικ στο κουμπί λήψης (κάτω βέλος) και ανοίξτε

το αρχείο που προκύπτει χρησιμοποιώντας το Arduino. Μπορείτε επίσης να βρείτε αυτό το παράδειγμα στο λογισμικό Arduino μεταβαίνοντας στο Αρχείο -> Παραδείγματα -> 03. Analog -> AnalogInOutSerial.

Συνδέστε το καλώδιο USB και επιλέξτε την πλακέτα και τη θύρα σας στο μενού Εργαλεία του λογισμικού.

Ανεβάστε τον κωδικό και χρησιμοποιήστε το χέρι σας για να καλύψετε τον αισθητήρα από τη λήψη φωτός και/ή να φωτίσετε τον αισθητήρα σας!

Ανοίξτε τη σειριακή οθόνη για να παρατηρήσετε τις τιμές του αισθητήρα σας. Είναι πιθανό ότι οι πραγματικές τιμές του κόσμου δεν θα επεκταθούν μέχρι το 0 ή μέχρι το 1023, ανάλογα με τις συνθήκες φωτισμού. Μη διστάσετε να προσαρμόσετε το εύρος 0-1023 στο ελάχιστο και το μέγιστο που παρατηρήσατε για να λάβετε το μέγιστο εύρος έκφρασης φωτεινότητας στο LED.

Βήμα 5: Στη συνέχεια, δοκιμάστε…

Τώρα που μάθατε να διαβάζετε μια φωτοαντίσταση και να χαρτογραφείτε την έξοδο της για να ελέγχετε τη φωτεινότητα ενός LED, είστε έτοιμοι να εφαρμόσετε αυτές και άλλες δεξιότητες που έχετε μάθει μέχρι τώρα.

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

Δοκιμάστε να αλλάξετε τη φωτοαντίσταση με άλλες αναλογικές εισόδους, όπως αισθητήρα υπερήχων ή ποτενσιόμετρο.

Μάθετε περισσότερα σχετικά με τον τρόπο παρακολούθησης των ψηφιακών και αναλογικών εισόδων του Arduino μέσω του υπολογιστή μέσω της Serial Monitor.

Συνιστάται: