Προγραμματισμός Ρομπότ

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

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

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

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

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

ΕΝΟΤΗΤΑ 3 ΕΚΦΡΑΣΕΙΣ, ΑΝΑΜΟΝΕΣ (DELAYS), ΗΧΟΙ

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

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

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

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

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

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

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

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

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

FOSSCOMM ο Συνέδριο Κοινοτήτων Ανοιχτού Λογισμικού Σάββατο 20 Απριλίου Ομάδα Σχολής Ικάρων Εργαστήριο Arduino

Arduino Teachers Workshop

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

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

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

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

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

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

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

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

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

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

Συλλογή & Επεξεργασία Δεδομένων Εξαμηνιαία ΡομποΚαθαριστής Μέρος Β : Το Πρόγραμμα. Σχεδίαση Συστήματος Πραγματικής Εφαρμογής (Prototyping).

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

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

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

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

Παραδείγµατα χρήσης του µικροελεγκτή Arduino Εφαρµογές για το εργαστήριο Μέρος 1 ο

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

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

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

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

7. Επαναλήψεις (Loops) Προγραμματισμός EV3 Ακαδημία Ρομποτικής 58

ΗΥ-150. Προγραμματισμός

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 4 TΟ ΡΟΜΠΟΤΙΚΟ ΟΧΗΜΑ ROGUE BLUE

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

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

1ο ΕΠΑΛ Περάματος -7ο ΕΚ Πειραιά. Εφαρμογές Arduino. Σεμινάριο Ηλεκτρονικού Τομέα. Φεβρουάριος 2014

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

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

Διάδρομος ALPINE LOHAS T4 - σελ. 2

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ EV3 Επίπεδο Ι

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3

ΒΑΣΙΚΑ ΜΑΘΗΜΑΤΑ ΝΤΟΥΛΑΚΗΣ - ΜΕΝΙΟΥΔΑΚΗΣ ΕΠΑ.Λ ΕΛ. ΒΕΝΙΖΕΛΟΥ

ΗΥ-150. Προγραμματισμός

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

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

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Φύλλο εργασίας 6. Αποφυγή εμποδίων. Χωριστείτε σε ομάδες 2-3 ατόμων και απαντήστε στις ερωτήσεις του φύλλου εργασίας.

Πληρουορική Γ Γσμμασίοσ

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

ΨΗΦΙΑΚΟΣ ΕΚΤΗΣ DVB-T MPEG-4 ReDi 100

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

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

Α.Ε.Ι. ΠΕΙΡΑΙΑ Τ.Τ Φεβρουάριος 2017

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

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

ΕΝΟΤΗΤΑ 12 ΣΕΙΡΙΑΚΗ ΔΙΕΠΑΦΗ

ΠΑΡΑΡΤΗΜΑ IV. ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ IV Ασκήσεις για το Robolab

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

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

Αντικειμενοστρεφής Προγραμματισμός

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

Lab 1: Experimenting on Arduino & AI Sense

Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

ΕΝΟΤΗΤΑ 14 Πρωτόκολλα Επικοινωνίας

Τεχνολογικό+Eκπαιδευτικό+Ίδρυμα+Kρήτης+ TMHMA+MHXANOΛOΓIAΣ+ (

CONTROLLER KB SERIES

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3

Φύλλο εργασίας 3 Προγραμματίζω το ρομπότ μου

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3

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

Φύλλο Εργασίας 4 Συνθετική εργασία

Στοιχειώδης προγραμματισμός σε C++

Transcript:

Προγραμματισμός Ρομπότ

Arduino & προγραμματισμός

INPUT vs. OUTPUT Για το μικροελεγκτή (microcontroller ). Inputs είναι ένα σήμα ή πληροφορία που φτάνει στον ελεγκτή. Output είναι κάθε σήμα που βγαίνει από τον ελεγκτή

INPUT vs. OUTPUT Για το μικροελεγκτή (microcontroller ). Inputs είναι ένα σήμα ή πληροφορία που φτάνει στον ελεγκτή. Output είναι κάθε σήμα που βγαίνει από τον ελεγκτή Παράδειγμα: διακόπτες, αισθητήρες Examples: LEDs, μότορες

Ρομποτικό τρένο 1. Προχώρησε Μπροστά 3 Κμ 2. Υρενάρισε 3. Άνοιξε Πόρτα 4. Κλείσε Πόρτα όταν δεν περνάει κανείς Προχώρησε πίσω 3 Κμ 5

Ρομποτικό τρένο 1. Προχώρησε Μπροστά 3 Κμ 2. Υρενάρισε 3. Άνοιξε Πόρτα 4. Κλείσε Πόρτα όταν δεν περνάει κανείς 5. Προχώρησε πίσω 3 Κμ 6

LOOP( ) Ρομποτικό τρένο { 1. Προχώρησε Ποξχώοηζε Μποξζηά Μπροστά 3 Κμ 2. Υρενάρισε Φοεμάοιζε 3. Άνοιξε Άμξινε Πόοηα Πόρτα 4. Κλείσε Κλείζε Πόοηα Πόρτα όηαμ όταν δεμ δεν πεομάει περνάει κανείς 5. Προχώρησε καμείπ πίσω 3 Κμ 6. 5. Υρενάρισε Ποξχώοηζε πίζω 3 Κμ 7. 6. Άνοιξε Φοεμάοιζε Πόρτα 8. 7. Κλείσε Άμξινε Πόοηα Πόρτα όταν δεν περνάει κανείς 8. Κλείζε Πόοηα όηαμ δεμ πεομάει καμείπ } 7

Ρομποτικό Βάψιμο 1. Έλεγχος για αντικείμενο 2. Ρίξε Μπογιά 3. Αναμονή 8

υναρτήσεις 1. Έλεγχος_αντικείμενου( ) 2. ΡίξεΜπογιά (κόκκινο) 3. Αναμονή (5) τύπος Ονομαυνάρτησης (παράμετροι) { εντολές; } 9

Σύποι Σύπος ακεραίου: int int value=5; Σύπος πραγματικού: float float value=5.4; 10

Do < while int CheckObject( ) { do { x=readsensor(); delay (50); }while (x!=1); return x; } 11

Προγραμματίζοντας Ρομποτ Η δράση και οι αποφάσεις του ρομποτ καθορίζουν τη συμπεριφορά του

Βασική δράση Απομονωμένες μικρες λειτουργίες που το ρομποτ κάνει αμέσως Βασική Δράση Θέσε το μότορα A σε κίνηση προς τα εμπρός

Απλή υμπεριφορά υνδυασμός βασικών δράσεων Μας επιτρέπει να περιγράψουμε μια πλήρη δράση του ρομποτ Θέσε το μότορ Α σε κίνηση Θέσε το μότορ C σε κίνηση Απλή συμπεριφορά Πήγαινε μπροστά μέχρι να χτυπήσεις ένα τοίχο και γύρνα Θέσε μότορ Α προς πίσω Θέσε μότορ C προς πίσω Επικοινώνησε με αισθητήρα στη Θύρα 1 ύγκρινε την τιμή του αισθητήρα με το 0. Κλείσε τους μότορες A & C

Πολύπλοκη υμπεριφορά Περιγράφει το σκοπό του ρομπότ Πάντα αποτελείται από απλές συμπεριφορές, που πρέπει να τις εντοπίσουμε Οδήγησε μπροστά ταμάτα σε τοίχο Πολύπλοκη Συμπεριφορά Διέτρεξε λαβύρινθο τρίψε δεξιά ταμάτα σε τοίχο τρίψε δεξιά Οδήγησε εμπρός ταμάτα σε τοίχο τρίψε Αριστερά Οδήγησε μπροστά

Διαγράμματα Ροής Οργανώνει οπτικά τα διάφορα βήματα σε προκαθορισμένα σχήματα Καλώς τρόπος να δουλέψουμε τα βήματα πριν την εγγραφή κώδικα Όχι Αρχή Οδήγησε μπροστά Τπάρχει τοίχος? Ναι ταμάτα Σέλος

Παραδείγματα Διαγράμματων Ροής Σι κάνουν; Φούσκωμα Λάστιχου No Αρχή Βάλε αέρα Επιθυμητή πίεση στο λάστιχο? Yes Σέλος Ξεκίνα όταν πιεστεί αισθητήρας πίεσης Start Πίεση στον αισθητήρα? Yes ξεκίνα μοτορ Σέλος No

Χευδοκώδικας Μεταξύ φυσική γλώσσας και κώδικα Περιγράφει τι κάνουν οι μότορες και οι κινητήρες και ορίζει απλές συμπεριφορές

Χευδοκώδικας 1. Κινήζος μπποζηά μέσπι να πιεζηεί ο αιζθηηήπαρ επαθήρ 2. Σηαμάηα όλοςρ ηοςρ μόηοπερ 3. Γύπνα για 1 sec 4. Σηαμάηα όλοςρ ηοςρ μόηοπερ 5. Σηπίτε δεξιά Πήγαινε μέχρι τοίχο και στρίψε δεξιά

Arduino

Arduino 21

Διάφοροι τύποι Arduinos Boarduino Kit DIY Arduino Arduino Uno Arduino LilyPad Arduino Mega 2560

Arduino ΠΟΤΕ!!!

Arduino Από ηιρ άκπερ!!!

Applications http://www.youtube.com/watch?v=8dynrqvf_be http://www.youtube.com/watch?v=mw gojdyyi https://www.youtube.com/watch?v=drcnccv_dve https://www.youtube.com/watch?v=oab_0qnfmic

Arduino Components

1.- Κατεβάστε και εγκαταστήστε το λογισμικό του Arduino http://arduino.cc/en/main/software

2.Settings: Tools Serial Port

3. Settings: Tools Board

Arduino Integrated Development Environment (IDE) Δύο απαραίτητες συναρτήσεις void setup() { // τρέχει 1 φορά } error & status messages void loop() { // επανάληψη }

4.- Ανοίξτε το προγραμμα Blink (πιθανώς να αλλάζει το menu σε νεώτερη έκδοση)

Κώδικας Περιοχή ενημέρωσης Status bar

Ας προγραμματίσουμε< Project Blink Πως θα ήταν σε ψευδοκώδικα; Turn LED ON Wait Turn LED OFF Wait Repeat

Code

5.- Verify/Compile 6.- Αφού γίνει μεταγλώτιση, δείτε τα μηνύματα στο Status bar

7.- Υορτώστε το 8.- Δείτε πάλι το Status bar

9.- Σοποθετήστε το LED Αναβοσβήνει!!!

Μέρη του προγράμματος

χόλια Σα σχόλια πάνε παντού

χόλια Σα σχόλια πάνε παντού Μπαίνουν με // ή /* και */

σχόλια

Βασικά digitalwrite() analogwrite() digitalread() if() statements / Boolean analogread()

3 εντολές.. pinmode(pin, INPUT/OUTPUT); πχ: pinmode(13, OUTPUT); digitalwrite(pin, HIGH/LOW); πχ: digitalwrite(13, HIGH); delay(time_ms); πχ: delay(2500); //wait 2.5 sec.

Σελεστές Σο ΙΟΝ = χρησιμοιποείται για να δώσει τιμή == ή να συγκρίνει τιμές

Σελεστές && είναι and είναι or

Boolean Σελεστές Τελεστής Περιγραφή ( ) == ( ) Είναι ίσο? ( )!= ( ) Δεν είναι ίσο? ( ) > ( ) Μεγαλύτερο από ( ) >= ( ) Μεγαλύτερο από ή ίσο ( ) < ( ) Μικρότερο από ( ) <= ( ) Μικρότερο από ή ίσο

Μεταβλητές Βασικοί τύπου Boolean Ακέραιοι Φαρακτήρες

Δήλωση μεταβλητών Boolean: boolean variablename; Ακέραιος: int variablename; Φαρακτήρας: char variablename;

Σύποι Μεταβλητών 8 bits 16 bits 32 bits byte char int unsigned int long unsigned long float

Ορισμός τιμής Boolean: flag= true; Ή flag= false; Ακέραιος: i= 32767; Ή i= -32768; Φαρακτήρας: mychar= A ;

Μεταβλητές Εμβέλεια

Setup Η setup συνάρτηση μπαίνει πριν τη συνάρτηση loop και είναι απαραίτητη σε όλα τα προγράμματα του Arduino

Setup Η κεφαλίδα δεν αλλάζει ποτέ!

Setup Η έξοδος δηλώνετε στη setup με τη συνάρτηση pinmode ΚΕΥΑΛΑΙΑ!!!

Setup Η σειριακή επικοινωνία αρχίζει στο setup

If ενηολή if (true ) { do this; }

If if (true ) { do this; }

Else else { do this; }

Εντολή if()

if() void loop() { int buttonstate = digitalread(5); if(buttonstate == LOW) { // do something } else { // do something else } } DIG INPUT

Επανάλητη loop For while

void loop ( ) { }

Η βαζική επανάλητη void loop ( ) { }

for (int count = 0; count<10; count++) { //εντολές; }

for (int count = 0; count<10; count++) { //εντολές; }

while ( count<10 ) { //εντολές; } Μοιάζει με for χωρίς μετρητή Πρέπει να τερματίζει

while ( digitalread(buttonpin)==1 ) { //εντολές; }

ημαντικές συναρτήσεις Serial.println(value); Εκτυπώνει την τιμή στον υπολογιστή σας pinmode(pin, mode); Ρυθμίζει ένα digital pin να διαβάσει (INPUT) ή να γράψει (OUTPUT) digitalread(pin); Διαβάζει μία τιμή (HIGH or LOW) από ένα pin για είσοδο digitalwrite(pin, value); Γράφει μια τιμή (HIGH or LOW) σε ένα pin για έξοδο

Παραδείγματα 69

Διακόπτες const int inputpin = 2; // choose the input pin void setup() { pinmode(inputpin, INPUT); // declare pushbutton as input } void loop(){ int val = digitalread(inputpin); // read input value }

Reading data from Arduino void setup() { Serial.begin(9600); } void serialtest() { int i; for(i=0; i<10; i++) Serial.println(i); }

Αισθητήρες παθητικών υπερήθρων

Αισθητήρες παθητικών υπερήθρων const int ledpin = 13; // pin for the LED const int inputpin = 2; // input pin (for the PIR sensor) void setup() { pinmode(ledpin, OUTPUT); // declare LED as output pinmode(inputpin, INPUT); // declare pushbutton as input } void loop(){ int val = digitalread(inputpin); // read input value if (val == HIGH) // check if the input is HIGH { digitalwrite(ledpin, HIGH); // turn LED on if motion delay(500); digitalwrite(ledpin, LOW); // turn LED off } }

Αισθητήρες υπερήφων Ο ping παλμός ήχου δημιουργείται όταν το επίπεδο του pingpin level γίνεται HIGH για 2 microseconds. Ο αισθητήρας τότε παράγει έναν παλμό που θα τερματίσει όταν επιστρέψει ο ήχος. Σο πλάτος του παλμού είναι ανάλογο της απόστασης που διένυσε ο ήχος Η ταχύτητα του ήχου είναι 340 m/sec η 29 μsec/cm Η απόσταση λοιπόν της διαδρομής είναι RoundTrip = microseconds / 29

Αισθητήρες υπερήφων const int pingpin = 5; const int ledpin = 13; // pin connected to LED void setup() { Serial.begin(9600); pinmode(ledpin, OUTPUT); } void loop() { int cm = ping(pingpin) ; Serial.println(cm); digitalwrite(ledpin, HIGH); delay(cm * 10 ); // each centimeter adds 10 milliseconds delay digitalwrite(ledpin, LOW); delay( cm * 10); }

Αισθητήρες υπερήφων int ping(int pingpin) { long duration, cm; pinmode(pingpin, OUTPUT); digitalwrite(pingpin, LOW); delaymicroseconds(2); digitalwrite(pingpin, HIGH); delaymicroseconds(5); digitalwrite(pingpin, LOW); pinmode(pingpin, INPUT); duration = pulsein(pingpin, HIGH); // convert the time into a distance cm = microsecondstocentimeters(duration); return cm ; } long microsecondstocentimeters(long microseconds) { // The speed of sound is 340 m/s or 29 microseconds per centimeter. // The ping travels out and back, so to find the distance of the // object we take half of the distance travelled. return microseconds / 29 / 2; }

Audio tone(speakerpin, frequency, duration); // play the tone delay(duration); //wait for the tone to finish

Παράδειγμα Γράψτε ένα πρόγραμμα που παίζει μια νότα Λα (440 Hz) για 1 δευτερόλεπτο όταν ένας αισθητήρας κίνησης ανιχνεύει κίνηση.

Image created in Fritzing Άσκηση