Μάθημα 4ο Tinkercad: Πρώτοι Ενεργοποιητές Εισαγωγή Σε αυτήν θα γνωρίσουμε και θα χρησιμοποιήσουμε τον πρώτο μας ενεργοποιητή. Tο εξάρτημα του ηλεκτρονικού κυκλώματος μας στο οποίο θα δίνουμε εντολή να ενεργήσει με κάποιο τρόπο. Στην προηγούμενη ενότητα πειραματιστήκαμε με το ενσωματωμένο led (Light Emitting Diode) μια δίοδο εκπομπής φωτεινής ακτινοβολίας. Σε αυτήν την ενότητα θα δούμε μία εξωτερική συνδεσμολογία. Για όποιον ενδιαφέρεται (χωρίς να είναι καθόλου απαραίτητο) για περαιτέρω βιβλιογραφική μελέτη των LED μπορείτε να ακολουθήσετε τον σύνδεσμο που υπάρχει στους πόρους- πηγές. Σκοπός Να δημιουργήσουμε την πρώτη συνδεσμολογία με τον μικροελεγκτή Arduino. Στόχοι Μετά το τέλος της ενότητας θα είστε σε θέση: • να δημιουργείτε συνδεσμολογίες στο εικονικό περιβάλλον. • να χρησιμοποιείται led στις κατασκευές σας. • να χρησιμοποιείται τις ψηφιακές εξόδους του μικροελεγκτή. • να χρησιμοποιείται τις PWM σήμα εξόδους του μικροελεγκτή. Παιδαγωγική αξιοποίηση Η διαχείριση των εξόδων μας δίνει μεγάλες δυνατότητες ενσωμάτωσης της τεχνολογίας στο μάθημα μας. Στην πραγματικότητα εναπόκειται στην φαντασία μας η διασύνδεση. Εδώ θα δούμε εφαρμογή κυκλοφοριακής αγωγής. Βίντεο Παρουσίαση - Ψηφιακές Έξοδοι Σε αυτήν την ενότητα θα εισάγουμε τον πρώτο εξωτερικό ενεργοποιητή. Ακολουθήστε τα βήματα που περιγράφονται και οι κατασκευές σας θα πάρουν την σειρά τους. Για μια ακόμα φορά θα επαναλάβω ότι η εκπαίδευση είναι ασύγχρονη, ο καθένας με τον ρυθμό του. Σταματάω το βίντεο το ξαναβλέπω και ξανά από την αρχή ή στην αντίθετη περίπτωση, αν είμαι γνώστης, ελέγχω τα καρέ κάθε μισό λεπτό αντιλαμβανόμενος την ενδιάμεση πορεία. Σε κάθε περίπτωση όμως ανοίξτε ένα παράθυρο με τον δικό σας λογαριασμό στο Tinkercad και δοκιμάστε. Αυτός ο τρόπος μελέτης θα σας βοηθήσει γενικότερα αλλά και ιδιαίτερα στην χρονική στιγμή 4:20 όπου η ανάλυση του βίντεο δεν βοηθάει (παρά τις πολλές δοκιμές που θα αντιληφθείτε) να παρατηρήσετε μια περιοδική αλλαγή της φωτεινότητας που συμβαίνει. Δείτε το βίντεο στην παρακάτω διεύθυνση: https://youtu.be/zN34DOPbPs4 Όσοι από εσάς ενδιαφέρεστε για τα ψιλά γράμματα των Φωτοδιόδων που χρησιμοποιήσαμε μπορείτε να βρείτε πόρους πληροφοριών στην συνέχεια, ενώ σαν εποπτική εικόνα κρατάμε ότι το ίσιο ποδαράκι της φωτοδιόδου πηγαίνει στην γείωση (ανάποδα δεν ανάβει) και ότι μία αντίσταση 1 ΚΩ κάνει την δουλειά της. *Για όσους είναι σχετικά προχωρημένοι θα παρακαλούσα για λίγη υπομονή. Στην επόμενη ενότητα θα δείξουμε εκτός από τον πρώτο αισθητήρα και με ποιον τρόπο μπορούμε να προγραμματίσουμε το Arduino του πραγματικού κόσμου οπότε όσοι θέλετε μπορείτε να προμηθευτείτε ένα Arduino για να το δοκιμάσετε. Φωτοδίοδοι - Leds Οι φωτοδίοδοι ή τα leds όπως έχουν κυριαρχήσει, υπάρχουν σε διάφορα χρώματα και τάσεις λειτουργίας. Ανάλογα με την προβλεπόμενη τάση λειτουργίας του led που έχουμε, πρέπει να χρησιμοποιήσουμε μαζί και την κατάλληλη αντίσταση, ώστε να αποφύγουμε κάποια καταστροφή από υπέρταση. Για να βρούμε την αντίσταση που χρειαζόμαστε αρκεί να θυμηθούμε τον τύπο R = (Vπ – Vλ) / I, όπου: • R είναι η αντίσταση που χρειαζόμαστε • Vπ η παρεχόμενη τάση από την πήγή μας (5V από το Arduino) • Vλ η τάση λειτουργίας του led • I το ρεύμα λειτουργίας του led Τυπικά, μια αντίσταση γύρω στα 220 Ω καλύπτει τα περισσότερα led που έχουμε χρησιμοποιήσει. Leds σε διάφορα χρώματα Επίσης, τα leds έχουν πολικότητα, δηλαδή δουλεύουν μόνο αν συνδεθούν στην κατάλληλη φορά ρεύματος. Συνήθως το πόδι που πρέπει να συνδεθεί στη θετική κατεύθυνση (+) είναι πιο μακρύ από το αντίστοιχο για την αρνητική φορά (-). Επίσης, το λαμπάκι από την αρνητική μεριά (–) είναι συνήθως επίπεδο κι όχι στρογγυλό όπως είναι από το άλλο πόδι (+). Μην ανησυχείτε όμως, μια ανάποδη σύνδεση δεν θα το καταστρέψει, απλά δεν θα ανάψει στην ανάποδη φορά (εκτός από την ιδιαίτερη περίπτωση να έχουμε δώσει πολύ μεγάλη τάση). Έγχρωμοι φωτοδίοδοι - RGB Leds Εκτός από τα απλά leds, υπάρχουν και τα RGB leds, τα οποία μπορούν να εμφανίσουν οποιοδήποτε χρώμα, βασιζόμενα στο σύστημα RGB. Μπορούμε να τα σκεφτούμε ως τρία led (κόκκινο - Red, πράσινο - Green, μπλε - Blue) σε ένα, με τα οποία δίνοντας χωριστά φωτεινότητα σε κάθε ένα μπορούμε να συνδυάσουμε χρώματα και να παράγουμε οποιοδήποτε χρωματισμό, όπως ακριβώς συμβαίνει στις ψηφιακές οθόνες. RGB led Τα RGB leds έχουν τέσσερα σημεία σύνδεσης – ένα για κάθε χρώμα (τρία σύνολο) κι ένα για την άνοδο ή κάθοδο. Υπάρχουν δύο τύποι, ανόδου (+) και καθόδου (-), ανάλογα με τη σύνδεση που ακολουθούν. Τα καθόδου, που χρησιμοποιούμε στα παραδείγματά μας, συνδέονται με την κάθοδο (-), δηλαδή τη γείωση (GND). Έτσι, συνδέουμε από ένα Pin που θα ελέγχει την τάση που θα δοθεί σε κάθε χρώμα και τη γείωση του Arduino, καταφέρνοντας να έχουμε απόλυτο έλεγχο σε όλους τους δυνατούς χρωματισμούς. Προσοχή: Θα πρέπει να συνδέσουμε αντιστάσεις σε κάθε χρώμα, καθώς δουλεύουν με μικρότερη τάση από αυτή που δίνει ως έξοδο το Arduino, όπως φαίνεται και στο σχήμα. Για τον υπολογισμό τους ανατρέξτε στην προηγούμενη ενότητα. Θα πρέπει να γνωρίζετε τί είδους led χρησιμοποιείτε - τυπικά μια αντίσταση 150-180Ω για το κόκκινο και 75-100Ω για το πράσινο και μπλε θα είναι αρκετές. Αν δεν έχετε ακριβώς τις τιμές αυτές για τις αντιστάσεις, χρησιμοποιήστε μεγαλύτερες (αυτό ισχύει σε όλες τις περιπτώσεις που χρησιμοποιούμε αντίσταση για την προστασία από υπέρταση – προτιμούμε να έχουμε μικρότερη τάση παρά μια καταστροφή λόγω υπέρτασης). Προσέξτε για τη συνδεσμολογία ότι η γείωση συνδέεται στο πιο μακρύ πόδι του led (2ο από αριστερά στην εικόνα), το pin για το κόκκινο στο διπλανό εξωτερικό του (1ο από αριστερά), το pin για το πράσινο στο διπλανό εσωτερικό του (3ο από αριστερά) και το pin για το μπλε στο άλλο εξωτερικό του (4ο από αριστερά). Ψηφιακές ακίδες (Digital pins) Οι ακίδες αυτές στο Arduino μπορούν να ρυθμιστούν είτε ως είσοδοι είτε ως έξοδοι, όμως από προεπιλογή είναι ρυθμισμένες ως είσοδοι. Αξίζει να σημειωθεί, ότι η πλειοψηφία των αναλογικών ακίδων του Arduino (Atmega), μπορεί να ρυθμιστεί και να χρησιμοποιηθεί, με τον ίδιο ακριβώς τρόπο όπως οι ψηφιακές ακίδες. Οι συναρτήσεις ψηφιακής εισόδου και εξόδου είναι οι παρακάτω: • pinMode(): Ρυθμίζει τη συγκεκριμένη ακίδα να συμπεριφέρεται ως είσοδος/ έξοδος. Σύνταξη: pinMode(pin, mode) Παράμετροι: pin: Ο αριθμός της ακίδας της οποίας η λειτουργία είναι επιθυμητό να αλλάξει. mode: INPUT/OUTPUT • digitalWrite(): Γράφει μια υψηλή (HIGH) ή μια χαμηλή (LOW) τιμή σε μια ψηφιακή ακίδα. Αν η ακίδα έχει ρυθμιστεί ως έξοδος με την συνάρτηση pinMode(), τότε η τάση της θα καθορίσει στην αντίστοιχη τιμή: 5V για HIGH και 0V για LOW. Αν η ακίδα έχει ρυθμιστεί ως είσοδος, γράφοντας HIGH στην συνάρτηση digitalWrite() θα ενεργοποιήσει μια εσωτερική pullup-αντίσταση των 20 Κ ενώ γράφοντας LOW θα την απενεργοποιήσει. Σύνταξη: digitalWrite(pin,value) Παράμετροι: pin: Ο αριθμός της ακίδας της οποίας η λειτουργία είναι επιθυμητό να αλλάξει. value: HIGH/LOW • digitalRead(): Διαβάζει την τιμή από μια συγκεκριμένη ψηφιακή ακίδα, που είναι είτε HIGH είτε LOW. Σύνταξη: digitalRead(pin) Παράμετροι: pin: Ο αριθμός της ακίδας της οποίας η λειτουργία είναι επιθυμητό να αλλάξει. Επιστρέφει: HIGH/LOW Αναλογικές ακίδες εισόδου (Analog input pins) Οι ελεγκτές Atmega που χρησιμοποιούνται για την πλατφόρμα Arduino περιέχουν έναν ενσωματωμένο αναλογικό-σε-ψηφιακό μετατροπέα 6 καναλιών. Ο μετατροπέας διαθέτει ανάλυση 10 bits, επιστρέφοντας ακέραιους από 0 έως 1023. Ενώ η κύρια λειτουργία της αναλογικής ακίδας για τους περισσότερους χρήστες Arduino είναι να διαβάζει αναλογικούς αισθητήρες, οι αναλογικές ακίδες έχουν επίσης όλες τις λειτουργίες των γενικών ακίδων εισόδου/εξόδου. Οι συναρτήσεις αναλογικής εισόδου και εξόδου είναι οι παρακάτω: • analogWrite(): Γράφει μια αναλογική τιμή (PWM κύμα) σε μια ακίδα. Μπορεί να χρησιμοποιηθεί, για παράδειγμα να ανάψει ένα LED σε διάφορες φωτεινότητες ή να οδηγήσει έναν κινητήρα σε διάφορες ταχύτητες. Μετά από μια κλήση της analogWrite(), η ακίδα θα δημιουργήσει ένα σταθερό τετραγωνικό κύμα του καθορισμένου κύκλου λειτουργίας μέχρι την επόμενη κλήση της analogWrite() (ή μια κλήση της digitalWrite() ή digitalRead() για την ίδια ακίδα). Η συχνότητα του σήματος PWM είναι περίπου 490 Hz. Στις περισσότερες πλατφόρμες Arduino η συνάρτηση αυτή λειτουργεί στις ακίδες 3, 5, 6, 9, 10, 11. Σύνταξη: analogWrite(pin, value) Παράμετροι: pin: Ο αριθμός της ακίδας της οποίας θα γράψει επάνω. value: ο κύκλος λειτουργίας μεταξύ 0 και 255. • analogRead(): Διαβάζει την τιμή από την καθορισμένη αναλογική ακίδα. Σύνταξη: analogRead(pin) Παράμετροι: pin: Ο αριθμός της αναλογικής ακίδας εισόδου από όπου θα διαβάζει. Επιστέφει: ακέραιο από 0 έως 1023. 2η Εργασία : Έλεγχος πυλών εξόδου. Σε αυτήν της εργασία καλούμαστε μέσα από την πιο συχνή εργασία ever, να συνδέσουμε ενεργοποιητές στις πύλες και στην συνέχεια να τους ελέγξουμε μέσα από τον δικό μας αλγόριθμο. Ποιο συγκεκριμένα μετά την πρόσληψη μας από εταιρία κατασκευής φαναριών ελέγχου κυκλοφορίας μας ζητείται να φτιάξουμε ένα με το arduino. (Το γνωστό φανάρι στους δρόμους, χωρίς αυτά των πεζών, μόνο κόκκινο, πορτοκαλί, πράσινο. Όποιος νιώθει δημιουργικός μπορεί σε δεύτερη φάση να το δοκιμάσει και με φανάρια πεζών χωρίς όμως να το ζητά η εργασία.) • Δημιουργήστε το cirquit "Edifanari Cyclades _ username" στο Τinkercad όπου username το username σας • Εισάγετε ένα κόκκινο, ένα πορτοκαλί και ένα πράσινο led και ένα Arduino. Στην πραγματικότητα θα εισάγεται τρία κόκκινα και στην συνέχεια θα αλλάξετε το χρώμα των δύο, από την καρτέλα του που εμφανίζετε κάθε φορά που επιλέγετε ή εισάγετε κάποιο. ( Τόσο λίγο ψάξιμο δεν είναι κακό) • Στην συνέχεια δημιουργήστε τρεις ξεχωριστές συνδέσεις με τρεις αντιστάσεις σε τρεις εξόδους, τρία όμοια κυκλώματα με αυτό που δείξαμε στο βίντεο σε ένα Arduino. Δεν θέλω να το δείξω σε βίντεο, ούτε σε εικόνα θα πρέπει να αρχίσουμε να σκεφτόμαστε. • Τέλος δημιουργήστε ένα κώδικα ελέγχου ώστε στην αρχή να έχουμε ανοιχτό το κόκκινο led και σβηστά τα άλλα, κ.ο.κ ώστε να προσομοιάσουμε ένα φανάρι κυκλοφορίας.* • Ας υποθέσουμε ώστε να μην έχουμε χρονοβόρα διαδικασία ελέγχου των παραδοτέων ότι στο φανταστικό φανάρι μας το κόκκινο διαρκεί 3 δευτερόλεπτα το πορτοκαλί 1 και το πράσινο 3. • Στην συνέχεια δημοσιεύστε το και αντιγράψτε το link όπως δείξαμε σε παλαιότερο βίντεο. • Τέλος υποβάλετε το link του έργου σας για έλεγχο για να δούμε αν λειτουργεί σωστά. * Το συνηθέστερο λάθος είναι ........... η σειρά ενεργοποίησης των φαναριών ! ! !