ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017)

Σχετικά έγγραφα
Προγραμματισμο ς σε Arduino

Εφαρμογές Σειριακής Επικοινωνίας

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016)

Πλακέτα Arduino. 1ο ΕΠΑΛ Περάματος - 7ο ΕΚ Πειραιά

Εφαρμογές Αναλογικών Ε/Ε PWM (pulse Width Modulation)

Arduino Teachers Workshop

Φύλλο εργασίας 7 - Δημιουργώ τα δικά μου χρώματα με το RGB LED

ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO. Υποψήφιος Διδάκτωρ

Φύλλο εργασίας 4 - Δημιουργώ τα δικά μου χρώματα με το RGB LED

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ

Γνωριμία με το Arduino

Το κύκλωμα σε breadboard

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1. Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Κωνσταντίνος Γκαλονάκης. Arduino: Προγραμματισμός στην πράξη

Εφαρμογές αναλογικών / Ψηφιακών

2017 Κατασκευάζω και Προγραμματίζω με τον μικροελεγκτή Arduino

Ενσωματωμένα Συστήματα

Φύλλο εργασίας 4 - Αυτόματο φωτάκι νυκτός

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια

Ενσωµατωµένα Συστήµατα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

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

Έλεγχος κινητήρα συνεχούς ρεύματος με τρανζίστορ και Arduino

Φύλλο εργασίας 6 - Θερμόμετρο εξωτερικού χώρου. Το κύκλωμα σε breadboard

ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ARDUINO

Φύλλο εργασίας 9 - Αυτόνομο ρομποτικό όχημα αποφυγής εμποδίων

Φύλλο εργασίας 3 - Χριστουγεννιάτικα φωτάκια (σταδιακή αύξηση και μείωση φωτεινότητας ενός LED) Το κύκλωμα σε breadboard

ΔΡΑΣΤΗΡΙΟΤΗΤΑ ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO- 01a

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα

4 Εισαγωγή στο Arduino

Μέτρηση Θερμοκρασίας με τον αισθητήρα TMP36. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων. Βασική δομή ενός προγράμματος στο LabVIEW.

ΕΡΓΑΣΤΗΡΙΟ 6 ΟΔΗΓΗΣΗ ΑΠΕΙΚΟΝΙΣΕΩΝ SSD ΚΑΙ LCD

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Α : Υλικά

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5. Ρυθμίζοντας τη Φορά Περιστροφής. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Παράρτημα Φύλλο εργασίας 1: Δραστηριότητα 1 : Να αναβοσβήνει η φωτοδίοδος ανά ένα δευτερόλεπτο. Μέλη της ομάδας :

ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα

ΠΛΗΡΟΦΟΡΙΚH ΓΙΑ ΤΗΝ ΤEΧΝΗ Η ΕΞAΜΗΝΟ

Workshops. Εισηγητής: Παλιούρας Αριστείδης

Εκπαιδευτική Ρομποτική με ARDUINO. για εκπαιδευτικούς και μαθητές. 1o Μέρος: Απλά Κυκλώματα

Ενσωματωμένα Συστήματα

ΕΝΟΤΗΤΑ 10: ΟΔΗΓΗΣΗ ΚΙΝΗΤΗΡΩΝ

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Project 5: Συνθέτοντας μουσική

Lab 1: Experimenting on Arduino & AI Sense

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Β : Επικοινωνία Υπολογιστή με Μικροελεγκτή

για τις ρυθμίσεις LabView μέσα από το κανάλι και του καλωδίου USB.

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ

Απλή Δομή Επιλογής. Ο κώδικας. //με χρήση μεταβλητών. delay (3000);

USB_6008_terminal_31. PCI_6023E_terminal_68. PCI_6023E_terminal_67

Έργο 1 LED που αναβοσβήνει (LED Flasher)

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 4. Οδηγώντας έναν DC Κινητήρα. Το κύκλωμα της Λειτουργίας DC Κινητήρα

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α.

ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ I. Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ

Ενσωματωμένα Συστήματα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8. Μετρώντας Επιτάχυνση με το Accelerόμετρο (ADXL 335) Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

2ο Γυμνάσιο Καβάλας. Κατασκευές και προγραμματισμός με το scratch for Arduino (s4a)

Εμμανουήλ Πουλάκης. Προγραμματίζοντας με τον μικροελεγκτή Arduino

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

ΝΟΜΟΣ ΤΟΥ OHM ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: 1 ΣΚΟΠΟΣ 1 2 ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ 1 3 ΕΞΟΠΛΙΣΜΟΣ 5 4 ΕΞΑΡΤΗΜΑΤΑ 5

Εφαρμογές βασισμένες στο Arduino

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 1. Προγραμματισμός Φυσικών Συστημάτων. Νέα Ψηφιακά Αντικείμενα

Παραδείγµατα χρήσης του µικροελεγκτή Arduino Εφαρµογές για το εργαστήριο Μέρος 2 ο :Οδήγηση Κινητήρων DC(PM)

Εργαστηριακές σημειώσεις για το μάθημα: «Εισαγωγή στην Μηχατρονική»

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

G&K ELECTRONICS AVR ATMEGA DEVELOPMENT BOARD

Μια πρόταση διδασκαλίας για το μάθημα του προγραμματισμού Η/Υ στο Λύκειο με τη μεθοδολογία STEM

Μάθημα 1 ΑΙΣΘΗΤΗΡΕΣ Ο Αισθητήρας Δύναμης. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού.

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 3 Μέτρηση Θερμοκρασίας Σύστημα Ελέγχου Θερμοκρασίας. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

10. Πληκτρολόγιο matrix 4x4

Α. Βασική Χρήση κινητήρα - Servo με τη βιβλιοθήκη <Servo.h>

Μαθαίνοντας το hardware του αναπτυξιακού

ΑΣΚΗΣΗ 0. Κύκλωμα - Όργανα

Συλλογή & Επεξεργασία Δεδομένων. Προγραμματίζοντας τον Arduino Μέρος Ι: Μεταβλητές, Εντολές Εισόδου & Εξόδου. Ολοκληρωμένο Περιβάλλον Ανάπτυξης (IDE)

Βιβλιοθήκη για οθόνη LCD

LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Οδηγός Arduino για το μάθημα της Πληροφορικής

ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2

Οδηγίες εγκατάστασης και χρήσης του Quartus

Φύλλο εργασίας 1 Εισαγωγή στη Ρομποτική

ΑΣΚΗΣΗ 8 Tutorial by TeSLa Συνδεσμολογία κυκλώματος Διαδικασία Προγραμματισμού

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Συστηµάτων ΗΜΥ211. Στόχοι Εργαστηρίου. Πανεπιστήμιο Κύπρου. Πανεπιστήμιο Κύπρου. Εργαστήριο Ψηφιακών Συστηµάτων ΗΜΥ211 Χειµερινό 2013

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

ΣΥΝΔΕΣΗ ΣΕ ΣΕΙΡΑ ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: 1 ΣΚΟΠΟΣ 1 2 ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ 1 3 ΕΞΟΠΛΙΣΜΟΣ 7 4 ΕΞΑΡΤΗΜΑΤΑ 7

Εργαστηριακές ασκήσεις λογικών κυκλωμάτων 11 A/D-D/A

Μάθημα 2 Δραστηριότητα 2: Δημιουργώντας το Μετεωρολογικό Σταθμό. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού.

Εισαγωγή στο Εργαστήριο Υλικού

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα

WiFi V-Timer ΕΚΔΟΣΗ 2Η

Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Κυκλωμάτων και Μετρήσεων

Ο μικροελεγκτής Arduino στο εργαστήριο των Θετικών Επιστημών. Χρήσιμες διευθύνσεις στο διαδίκτυο

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Εργαστήριο Κυκλωµάτων και Μετρήσεων ΗΜΥ203

Εισαγωγή στην Open Source Πλατφόρμα Μικροελεγκτών Arduino

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

Transcript:

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017) Περιγραφή της Άσκησης Ο σκοπός της πρώτης άσκησης είναι κυρίως η εξοικείωση με το περιβάλλον προγραμματισμού του Arduino, γι αυτό και δεν είναι ιδιαίτερα σύνθετη. Αρχικά, θα φορτώσουμε και θα εκτελέσουμε το πρόγραμμα Blink από τα έτοιμα παραδείγματα που προσφέρει το Arduino. Εν συνεχεία, θα τροποποιήσουμε κατάλληλα το πρόγραμμα αλλά και το κύκλωμα ώστε να λειτουργεί με μεταβλητή συχνότητα. Στο τέλος, θα κάνουμε μια πολύ μικρή εισαγωγή πάνω στη σειριακή οθόνη του Arduino, τη σύνδεση περιφερειακών (ειδiκότερα, πλήκτρων pushbuttons) αλλά και το PWM, στοιχείο που αργότερα θα χρησιμοποιήσουμε αρκετά. Υλοποίηση στο Εργαστήριο Το πρώτο βήμα είναι να φορτώσουμε το παράδειγμα Blink. Αυτό γίνεται μέσα από το περιβάλλον προγραμματισμού του Arduino, επιλέγοντας File Examples 01. Basics Blink. Να σημειωθεί πως, τόσο σε περιβάλλον Apple OS X,όσο και σε Microsoft Windows, οι επιλογές παραμένουν ίδιες. Αυτό θα ανοίξει ένα νέο παράθυρο όπου θα έχει φορτωθεί ο κώδικας του παραδείγματος. Ας εξετάσουμε τη λογική του, βήμα-προς-βήμα: void setup() pinmode(13, OUTPUT); Μέσα στη συνάρτηση setup() καλούμε την pinmode(). Αυτή ορίζει για κάθε pin του Arduino εάν θα χρησιμοποιηθεί ως είσοδος (INPUT) ή έξοδος (OUTPUT). Σε αυτή την περίπτωση θέλουμε να χρησιμοποιήσουμε το pin 13 ως έξοδο. Να υπενθυμίσουμε πως η συνάρτηση setup() καλείται και τρέχει μόνο μία φορά, τη στιγμή που θα τροφοδοτηθεί η πλακέτα του Arduino με ρεύμα.

void loop() digitalwrite(13, HIGH); delay(1000); digitalwrite(13, LOW); delay(1000); Μέσα στην loop(), η συνάρτηση digitalwrite() δίνει τιμή HIGH (δηλαδή τάση 5V) στο pin 13. Εν συνεχεία, η συνάρτηση delay() παγώνει τον μικροελεγκτή του Arduino για 1000 χιλιοστά του δευτερολέπτου. Καλείται ξανά η digitalwrite(), η οποία όμως αυτή τη φορά δίνει LOW (δηλαδή 0V) στο pin 13. Τέλος, η delay(), προκαλεί ακόμα μία παύση του 1 δευτερολέπτου. Η loop() θα συνεχίσει να εκτελείται επ αόριστον, έως ότου διακοπεί η τροφοδοσία του Arduino, ή έως ότου πατηθεί το πλήκτρο RESET. Το επόμενο βήμα, είναι να υλοποιήσουμε το κύκλωμα της άσκησης στο breadboard. Το μόνο που θα χρειαστούμε είναι μία δίοδος εκπομπής φωτός (LED) και ένας αντιστάτης κατάλληλης τιμής (100 με 330 Ohm). Για τις ασκήσεις εξοικείωσης που θα πραγματοποιήσουμε στο εργαστήριο τα υλικά σας παρέχονται ήδη στους πάγκους. Όπως στο σχήμα, συνδέουμε το pin 13 με την άνοδο του LED. Η κάθοδός του, θα συνδεθεί με τη γείωση (GND) με την αντίσταση να παρεμβάλλεται. Σε αυτό το σημείο, καλό θα ήταν να φωνάξετε κάποιον από τους βοηθούς του εργαστηρίου να ελέγξει το κύκλωμά σας για τυχόν λάθη, ΠΡΙΝ συνδέσετε το Arduino με τον υπολογιστή. Εφόσον δεν υπάρχει κανένα πρόβλημα, προχωράμε στη σύνδεση του Arduino με τον υπολογιστή με το καλώδιο USB. Από το μενού του προγράμματος, επιλέγουμε το μοντέλο του Arduino που κρατάμε στα χέρια μας. Στους περισσότερους πάγκους είναι το Arduino UNO, ενώ σε κάποιο πάγκο μπορεί να υπάρχει το Arduino MEGA 2560.

Επόμενο βήμα είναι να επιλέξουμε τη σωστή θύρα στην οποία είναι συνδεδεμένο το Arduino. Αυτή θα εμφανιστεί ως COM1, COM2, κλπ στο μενού Tools Serial Port. Εάν επιλέξετε τη λάθος θύρα, το πρόγραμμα δε θα μπορεί να μιλήσει με το Arduino, και συνεπώς, δε θα μπορεί να το προγραμματίσει. Έπειτα επιλέγουμε File Upload στο κεντρικό παράθυρο, ή πατάμε Ctrl + U στο το πληκτρολόγιο. Εφόσον είναι όλα εντάξει, σε ελάχιστα δευτερόλεπτα το Arduino θα προγραμματιστεί και θα μπορέσουμε να δούμε το LED να αναβοσβήνει κάθε 1 δευτερόλεπτο. Εάν υπάρχει κάποιο πρόβλημα στον κώδικα ή στον προγραμματισμό του Arduino θα εμφανιστεί ακριβώς κάτω από τον editor: Για το δεύτερο κομμάτι της άσκησης θέλουμε να κάνουμε τη συχνότητα που αναβοσβήνει το LED ρυθμιζόμενη. Για το σκοπό αυτό, θα χρειαστούμε μία ρυθμιζόμενη αντίσταση (ποτενσιόμετρο) και τη δυνατότητα του Arduino να διαβάζει αναλογικές τιμές. Η σύνδεση του ποτενσιόμετρου είναι λίγο πιο περίπλοκη, καθώς απαιτεί τροφοδοσία (+5V), γείωση (GND) και ένα τρίτο σημείο (wiper) ώστε το Arduino να διαβάσει την διαιρεμένη τάση. Εννοείται πως ο τρόπος σύνδεσης του LED δεν αλλάζει. Υπενθυμίζουμε πως έως ότου να εξοικειωθείτε με την πλατφόρμα, καλό θα ήταν να ελεγχθεί το κύκλωμά σας πριν τροφοδοτήσετε το Arduino! Κάτω από τις αναλογικές εισόδους του Arduino, υπάρχει ένα κύκλωμα που ονομάζεται ADC (Analog-to-Digital Converter). Αυτό αναλαμβάνει να διαβάσει μία τάση από 0 έως 5 volt και να την μετρατρέψει σε έναν αριθμό

αξιοποιήσιμο από τον χρήστη. Η ανάλυση του ADC διαφέρει από μοντέλο σε μοντέλο, αλλά για το Arduino UNO, μας δίνει 1024 διαφορετικές τιμές. Είναι αυτονόητο πως αναλογικές τιμές μπορούν να διαβάσουν μόνο τα pins ANALOG IN του Arduino και όχι τα απλά I/O pins. Η συνάρτηση analogread() παίρνει ως όρισμα την αναλογική είσοδο που θέλουμε να διαβάσουμε, και επιστρέφει έναν ακέραιο με μια τιμή 0-1023. Συνεπώς, το πρόγραμμα του Arduino θα πρέπει να τροποποιηθεί ως εξής: int pot_value; void setup() pinmode(13, OUTPUT); void loop() p o t _ v a l u e = analogread(a0); digitalwrite(13, HIGH); delay(pot_value); digitalwrite(13, LOW); delay(pot_value); Πλέον η delay() δεν έχει ως όρισμα μια προκαθορισμένη τιμή όπως πριν αλλά την τιμή που έχει επιστρέψει η analogread(). Θα πρέπει γυρίζοντας το ποτενσιόμετρο να αλλάζει η συχνότητα που αναβοσβήνει το LED. Έπειτα, θα δοκιμάσουμε να εμφανίζουμε τις τιμές της μεταβλητής pot_value στη σειριακή οθόνη (Serial Monitor) του Arduino. Η σειριακή (bit-προς-bit) επι-κοινωνία, το TWI και το I 2 C, λόγω της έκτασής τους δε μπορούν να καλυφθούν πλήρως μέσα από τον εργαστηριακό ο δ η γ ό, ο π ό τ ε α ν α γ κ α σ τ ι κ ά θ α ασχοληθούμε μόνο με το πρακτικό κομμάτι. Για να μπορέσει να μιλήσει το Arduino στο Serial Monitor (αλλά και με οποιοδήποτε άλλο περιφερειακό επικοινωνεί σειριακά μέσω UART), πρέπει να ρυθμιστεί σωστά το baud rate. Αυτό είναι ο αριθμός των συμβόλων ανά δευτερόλεπτο, και πρέπει να είναι ίδιος και στα δύο άκρα τα οποία προσπαθούν να μιλήσουν. Για την άσκηση, θα ανοίξουμε την σειριακή επικοινωνία με το Serial Monitor στα 9600 baud, ως εξής:

void setup() Serial.begin(9600); // υπόλοιπος κώδικας Μέσα στο loop μετά, κάθε φορά που θέλουμε να στείλουμε την τιμή που διαβάσαμε από το ποτενσιόμετρο στο Serial Monitor, αρκεί η εντολή: void loop() // υπόλοιπος κώδικας Serial.println(pot_value); Έτσι, σε κάθε επανάληψη του loop() θα εμφανίζεται η τιμή του pot_value στο Serial Monitor. Είναι σαφές πως η συχνότητα εμφάνισης θα αλλάζει με το ποτενσιόμετρο, καθώς έτσι ρυθμίζουμε κάθε πότε θα επαναλαμβάνεται το loop(). Έως τώρα έχουμε εξοικειωθεί αρκετά με τον προγραμματισμό του Arduino, οπότε μπορούμε να μεταβούμε σε μία πιο σύνθετη έννοια, αυτή του PWM (pulse width modulation). Η μεγαλύτερη μερίδα μικροελεγκτών και αναπτυξιακών πλατφορμών, δεν επιτρέπουν να εγγράψουμε μία αναλογική τάση σε κάποια ψηφιακή έξοδο, πράγμα αυτονόητο, καθότι οι ψηφιακές έξοδοι επιτρέπουν τάσεις μόνο 5V / 0V. Τη δυνατότητα αυτή συμπληρώνει η τεχνική PWM, μέσω της οποίας μπορούμε να προσομοιώσουμε μία αναλογική έξοδο. Αλλάζοντας γρήγορα την κατάσταση μίας ψηφιακής εξοδου (HIGH/LOW), η συνολική ενέργεια που θα αντλήσει το φορτίο από το αναπτυξιακό μας θα είναι συνολικά μικρότερη, άρα θα δει μία προσομοιωμένη αναλογική τάση. Το Arduino υλοποιεί την τεχνική PWM στις ψηφιακές εξόδους με την ένδειξη ~, οι οποίες στο Arduino UNO είναι οι 3, 5, 6, 9, 10 και 11. Στη γλώσσα Processing, διαχειριζόμαστε το PWM με τη συνάρτηση analogwrite(pin, [0 255]).

Σημειώσεις για τα push-buttons Τα push-buttons είναι πλήκτρα, που για όσο κρατιούνται πατημένα, κλείνουν κύκλωμα ανάμεσα σε δύο (ή περισσότερες) επαφές τους. Τα χρησιμοποιούμε για να πάρουμε είσοδο από τον χρήστη του συστήματος. Το κάθε μοντέλο push-button μπορεί να συνδέει διαφορετικούς ακροδέκτες του όταν το πατάμε, γι αυτό καλό θα ήταν να αναζητούμε το datasheet για όλα τα υλικά που χρησιμοποιύμε. Αυτά που έχουμε στο εργαστήριο πάντως, όταν πατιούνται, ενώνουν τους διαγώνιους ακροδέκτες τους. Η συν-δεσμολογία τους, έχει ως εξής: Η αντίσταση των 100Ω ανάμεσα στο ψηφιακό pin είναι προεραιτική. Για ανάγνωση της κατάστασης του push-button, χρησιμοποιούμε τη συνάρτηση digitalread(), αφού προηγουμένως έχουμε δηλώσει το pin που συνδέσαμε ως είσοδο στο setup() του κώδικά μας. Προετοιμασία στο Σπίτι Δημιουργήστε ένα πρόγραμμα σε Arduino, το οποίο θα εγγράφει σε μία PWM έξοδο την τιμή που διαβάζει από ένα ποτενσιόμετρο. Στην PWM έξοδο θα είναι συνδεδεμένο ένα LED το οποίο θα πρέπει να μεταβάλλει τη φωτεινότητά του. Ένα πλήκτρο (push-button) θα απαγορεύει στο LED να ανάψει για όσο κρατιέται πατημένο. Στη σειριακή οθόνη θέλουμε να εμφανίζεται η τιμή που εγγράφεται στην PWM έξοδο, αλλά και η κατάσταση του πλήκτρου, ως εξής: PWM speed: 55%. Button: pressed.