Διευκρίνηση για MAP & τις πόρτες Αnalog/Digital/PWM του Arduino UNO

Σχετικά έγγραφα
ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα

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

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

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

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

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

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

Προγραμματισμο ς σε Arduino

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

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

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

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

Arduino Teachers Workshop

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

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

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

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

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

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

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

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

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

ΑΣΚΗΣΗ ΜHΧΑΤΡΟΝΙΚΗΣ. Τέλος όταν εισάγετε ένας σωστός συνδυασμός η ένδειξη του display να μηδενίζετε.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δρ. Π. Ασβεστάς Τμήμα Μηχανικών Βιοϊατρικής Τεχνολογίας Τ.Ε

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

Συστήματα Αυτόματου Ελέγχου

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

USB_6008_terminal_31. PCI_6023E_terminal_68. PCI_6023E_terminal_67

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

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

Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστημάτων

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

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

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

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

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

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

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

Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστηµάτων

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

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

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

ΜΕΤΑΤΡΟΠΕΙΣ D/A & A/D

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

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

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

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

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

Lab 1: Experimenting on Arduino & AI Sense

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

ΑΝΑLOG TO DIGITAL CONVERTER (ADC)

GSM INTD Εγχειρίδιο χρήσης GSM INTD0909

ΘΕΜΑ : ΒΑΣΙΚΕΣ ΣΥΝΔΕΣΜΟΛΟΓΙΕΣ ΤΕΛΕΣΤΙΚΟΥ ΕΝΙΣΧΥΤΗ. ΔΙΑΡΚΕΙΑ: 1περίοδος

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

G&K ELECTRONICS AVR ATMEGA DEVELOPMENT BOARD

Φύλλο Εργασίας 1 (Λειτουργία και έλεγχος κινητήρων)

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

Τηλεπικοινωνιακά Συστήματα ΙΙ

ΕΝΟΤΗΤΑ 5: ΑΝΑΛΟΓΙΚΑ ΣΗΜΑΤΑ

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

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

ΑΣΚΗΣΗ 9 ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ (COUNTERS)

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

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

27-Ιαν-2009 ΗΜΥ (ι) Βασική στατιστική (ιι) Μετατροπές: αναλογικό-σεψηφιακό και ψηφιακό-σε-αναλογικό

ΠΕΡΙΕΧΟΜΕΝΑ 1. Υπορουτίνες Μαθηµατικών Πράξεων 1.1. Προσηµασµένοι και απροσήµαστοι αριθµοί 1.2. Μετατροπές προσηµασµένων και απροσήµαστων αριθµών

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2007

Ψηφιακά Ηλεκτρονικά. Προαιρετική εργασία

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 6 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

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

Εργασία στα πλαίσια του εργαστηρίου των Ευφυών Συστηµάτων Ελέγχου. Μελέτη και κατασκευή διάταξης ελέγχου ταχύτητας αυτοκινούµενου οχήµατος.

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο

Δομή (Structure) Προγραμματισμός Arduino. Η λειτουργία setup()

Ιατρικά Ηλεκτρονικά. Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων

Κατασκευάστε ένα απλό antenna tuner (Μέρος Α )

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

Οδηγίες Εγκατάστασης GSM-GPRS LINK INTERFACE

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

THERMIS A.B.E.E. Pellet Controller e mail: info@thermis sa.gr

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

ΠΛΗ 21 - Τι είναι Ψηφιακό Σύστημα

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω:

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ Ι

Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Transcript:

Διευκρίνηση για MAP & τις πόρτες Αnalog/Digital/PWM του Arduino UNO Το Board Arduino Uno, Διαθέτει 6 Αναλογικές Εισόδους pins (Α0,Α1,Α2,Α3,Α4,Α5) στις οποίες μπορούμε να συνδέσουμε μια τάση(ή σήμα) που θα κυμαίνεται από 0v εως 5v. *καποια αλλα μοντελα δέχονται εως 3.3v Λέγοντας αναλογική είσοδος, εννοούμε ότι μπορουμε να εισάγουμε π.χ. τιμές τάσης(σήμα) όχι μόνο 0v ή 5v, αλλα και οποιαδήποτε ενδιάμεση τιμή ανάμεσα στο 0volt και στο 5volt. *αν βάλω 5.6v ίσως καεί η πόρτα. Η ακρίβεια της τιμής του σήματος που μπορεί να διαβάστει στην αναλογική είσοδο, εξαρτάται από το ADC ( Analog to Digital Converter) του Arduino. Το ADC του Arduino Uno εχει δυνατότητα 10bit. *Τα Arduino Due,Zero,MKR έχουν 12bit Mπορεί να ξεχωρίσει στο σήμα που θα του δώσουμε 2^10= 1024 στάθμες 5v/1024=0.0048828125v. Αν του δώσουμε ένα σήμα 0-5v, θα το μετατρέψει (διαβάσει) σαν ένα ακέραιο αριθμό 0-1023. π.χ. τάση 0ν ακέραιος 0 τάση 0,0048828125ν ακέραιος 1 τάση 0,009765625ν ακέραιος 2 τάση 4,9951171875 ακέραιος 1022. τάση 5ν ακέραιος 1023 Για να διαβάσουμε τη τάση στην αναλογική πόρτα, χρησιμοποιούμε το metabliti=analogread(α0);

Το Arduino Uno, Διαθέτει 14 ψηφιακές Εισόδους / Εξόδους pins (0,1,2,3,4,5,6,7,8,9,10,11,12,13) Μπορούν να χρησιμοποιηθουν ειτε σαν εισοδοι, ειτε σαν εξοδοι. Η διαφορα αναλογικές με ψηφιακές πόρτες, είναι ότι: Οι ψηφιακές πόρτες (σαν εισόδοι), καταλαβαίνουν μονο 2 στάθμες σήματος. Θα ξεχωρίσουν στο σήμα που θα τους δώσουμε, μόνο αν είναι 0v ή 5v. Αν παω σε μια ψηφιακή είσοδο και του βάλω 0.5v ή 2v ή 1.5v αυτό θα καταλάβει ότι βάλαμε 0v (LOW). Ενώ αν του βάλω 3v ή μεγαλύτερη τάση, θα διαβάσει ότι του βάλαμε 5v (HIGH). *Τα Mega,Due έχουν 54 πόρτες *αν δώσω περισσότερο από 5.5v ίσως καταστραφεί η πόρτα του arduino. *Κάποια board (Due,Zero,MKR) δέχονται μέγιστο 3.3v, αλλιώς καταστρέφονται. *Αν βάλω κάποια ταση μεταξύ 1.5v 3v, θα έχουμε αμφίβολη κατάσταση Low/ High. *Αν μια είσοδος είναι ασύνδετη, γίνεται κεραία, και πιανει RF θόρυβο - αμφίβολο L/H. Για να διαβάσουμε τη τιμή της τάσης(low/high) που υπάρχει σε μια ψηφιακή πόρτα εισόδου πχ τη 4, χρησιμοποιούμε το metabliti=digitalread(4); *Πρέπει να έχουμε δηλώσει pinmode (4,INPUT); στο setup();

Οι ψηφιακές πόρτες σαν έξοδοι, δίνουν μονο 2 στάθμες σήματος 0v (LOW) ή 5v (HIGH) δηλαδή ανάλυση 1bit. Αν γράψουμε digitalwrite(9,high); το arduino θα στείλει στο ποδαράκι 9, μια τάση 5v (HIGH). ενώ γράφοντας digitalwrite(9,low); >> θα στείλει στο ποδαράκι 9, μια τάση 0v (LOW). *Πρέπει να έχουμε δηλώσει pinmode (9,OUTPUT); στο setup(); Στη περίπτωση που συνδέαμε ένα led στην ψηφιακή πόρτα 9(με αντίσταση πάντα) και τρέχαμε στη loop: digitalwrite(9,high); // θα αναβε το led στην πόρτα 9, delay (1000); // θα περιμενε 1sec, digitalwrite(9,low); //θα το έσβηνε το led στην πόρτα 9, delay (2000);, // και θα το κρατούσε σβηστό για 2sec. Αν τωρα οι χρόνοι delay γίνουνε πάρα πολύ μικροί, το LED, θα αναβοσβήνει τόσο γρήγορα, που δε θα μπορούμε να το αντιληφτούμε. Θα το καταλαβαίναμε όμως, σαν το led να άναβε με λιγότερη φωτεινότητα. Λογικό, αφού παίρνει λιγότερη ενέργεια από τους HIGH παλμούς(μικρότερο width του θετικού παλμού). Επειδή τεχνικά δε μπορούμε να εξάγουμε από τις ψηφιακές εξόδους, του arduino αναλογική τάση(τιμή μικρότερη από 5v) κάνουμε ένα τρικ. Το PWM( Pulse width Modulation) Το PWM ( Pulse width Modulation) επιτρέπεται μόνο στις πόρτες 3,5,6,9,10,11 με το σύμβολο ~

Όταν κάνουμε PWM σε μια ψηφιακή PWM έξοδο απλά στέλνουμε ένα σήμα περίπου 490-980Hz, ρυθμίζοντας τo λόγο HIGH/LOW (duty cycle). Δεν μας ενδιαφέρει, ούτε επεμβαίνουμε στη συχνότητα ή τη περίοδο του. π.χ δίνουμε: analogwrite(9,255); αν θέλουμε το led στην ψηφιακή έξοδο PWM 9 αναμμένο στο μέγιστο της φωτεινότητας. analogwrite(9,127); αν θέλουμε το led στην ψηφιακή έξοδο PWM 9 αναμμένο με μισή φωτεινότητα. *στέλνεται μια παλμοσειρά με διάρκεια παλμών 50% HIGH και 50% LOW analogwrite(9,0); αν θέλουμε το led στην ψηφιακή έξοδο P WM 9 σβηστό, (στέλνουμε ένα συνεχές LOW) ή στέλνουμε οποιαδήποτε τιμή 0-255 ανάλογα με τη φωτεινότητα που θέλουμε να έχει το led (ή ίσως οι στροφές κάποιου μοτέρ) Σημείωση! Το analogwrite(, ) δεν είναι εντολή για τις αναλογικές πόρτες ΕΙΣΟΔΟΥ(Α0-Α5) απλά γράφουμε «αναλογικό σήμα» μόνο στις ψηφιακές πόρτες 3,5,6,9,10,11 με το σύμβολο ~ ΜΑΡ Επειδή oι αναλογικές είσοδοι (Α0 εως Α5) έχουν ανάλυση 10 bit(0 έως 1023 άρα 1024 πιθανές τιμές), ενώ οι ψηφιακές έξοδοι PWM (3,5,6,9,10,11) έχουν ανάλυση 8bit (0 έως 255 άρα 256 πιθανές τιμές), ένας εύκολος τρόπος για να γίνει αντιστοίχιση του σήματος εισόδου στην έξοδο, είναι η εντολή map. συντάσσεται: nea_timi=map(arxiki_timi, fromlow, fromhigh, tolow, tohigh);

Π.χ. Val2 = map(val, 0, 1023, 0, 255); Αυτή η εντολή, παίρνει την ακέραια τιμή της μεταβλητής val(που κυμαίνεται από 0-1023) και την μετατρέπει σε μια ακέραια τιμή(0-255) που είναι μέσα στο εύρος τιμών που μπορεί να δεχτεί το analogwrite. π.x, πρακτικά, μπορούμε να διαβάσουμε ένα ποτενσιόμετρο σε μια αναλογική είσοδο, και να μεταβάλουμε τη φωτεινότητα σε ένα LED συνδεμένο σε μια ψηφιακή PWM έξοδο. Αν δε κάναμε αυτή την αντιστοίχηση και πηγαίναμε π.χ να γράψουμε απευθείας τις (0-1024) τιμές του val στην έξοδο analogwrite(9,val); τότε, μόλις η val γινότανε μεγαλύτερη από 255, έστω 256, θα έκανε rollover άρα θα ήταν σα να βάζαμε 0. Δηλαδή 256-512=0-255, κοκ. δηλαδή χωρίζεται το 0-1023 σε τέσσερεις περιόδους εύρους 255 η καθεμία οι οποιες επαναλαμβάνονται. Σημείωση: Πολλές φορές, μας εξυπηρετεί να δηλώσουμε το pinmode(11,input_pullup) αντί για το pinmode(11,input) στη setup(); Αυτό που πετυχαίνουμε, με αυτή την αλλαγή, είναι το arduino να πάει και να συνδέσει εσωτερικά(μέσα στο chip) μια αντίσταση 20KΩ στην πόρτα που του λέμε(π.χ στην 11) στο 5v. (Αντιστρέφουμε τη λειτουργιά της) Έτσι η πόρτα θα είναι μόνιμα σε ένα HIGH δυναμικό (5v),από μόνη της. Χωρίς να συνδέσουμε κάποιο καλώδιο. Άρα αν θέλουμε να εισάγουμε ένα σήμα στο arduino, και να το καταλάβει, θα πρέπει να είναι 0v(LOW). *αντι για INPUT_PULLUP θα μπορούσε να παρέμενε INPUT και να συνδεθεί εξωτερικά στο pin 11, μια αντίσταση 20ΚΩ στο +5v Αυτό μας χρησιμεύει καθώς αν χρησιμοποιήσουμε κάποια πόρτα σαν digital INPUT στο πρόγραμμα μας, και τύχει σε αυτή να μην έχει συνδεθεί κάποιο σήμα όπως π.χ. όταν έχουμε ένα καλώδιο στον αέρα, τότε αυτή η πόρτα θα δρα σαν μια μικρή κεραία, και οι τιμές που θα παίρνουμε είναι τυχαίες(ανάλογες του θορύβουπαράσιτα). Αν δηλωθεί INPUT_PULLUP θα είναι πιο αναίσθητο στο θόρυβο, και θα διεγείρεται με αρνητικές στάθμες (0v). * φτιάξτε ένα λογαριασμό στο www.tinkercad.com για την εξάσκηση σας! Μτπ192