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

Σχετικά έγγραφα
ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ

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

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

Arduino Teachers Workshop

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

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

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

ການທ ດລອງທ 1: Hello World!

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

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Ι (ΗΥ120)

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

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

Προγραμματισμός Η/Υ (ΤΛ2007 )

Ανάπτυξη και Σχεδίαση Λογισμικού

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

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

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Δομημένος Προγραμματισμός

Lab 1: Experimenting on Arduino & AI Sense

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

Δεδομένα, τελεστές, είσοδος/έξοδος

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

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

Οντοκεντρικός Προγραμματισμός

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Transcript:

ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ARDUINO Αντώνιος Καραγεώργος

Βασικά Στοιχεία της Γλώσσας Προγραμματισμού Arduino Constants: HIGH/LOW Ορίζουν το επίπεδο της τάσης εισόδου/εξόδου ενός pin INPUT/OUTPUT Ορίζουν την κατάσταση ενός pin Συναρτήσεις: Ψηφιακή I/Ο: pinmode(pin, mode) Καθορίζει αν ένα pin είναι είσοδος ή έξοδος digitalwrite(pin, value) Αναθέτει μια τιμή (HIGH/LOW) σε ένα pin digitalread(pin) Διαβάζει την τιμή ενός pin (HIGH/LOW) Αναλογική Ι/Ο: analogread(pin) Διαβάζει την τιμή ενός αναλογικού pin (τιμές μεταξύ 0 και 5 volt που μετασχηματίζονται σε τιμές μεταξύ 0 και 1023) Χρόνο: delay(ms) Κάνει παύση της εκτέλεσης ενός προγράμματος για το προκαθορισμένο χρονικό διάστημα (millisecond, 1000 ms = 1 s) * Περισσότερες πληροφορίες: http://www.arduino.cc/en/reference/homepage

Μέθοδοι Arduino void setup() { // εκτελείται μια φορά // ρύθμιση/αρχικοποίηση στοιχείων (αισθητήρων, κινητήρων, κ.α.) void loop() { // εκτελείται επαναλαμβανόμενα // στέλνονται εντολές προς τα στοιχεία

Άσκηση 1 Δημιουργία φωτεινού σηματοδότη με χρήση τριών (3) LED (κόκκινο, πορτοκαλί και πράσινο) τα οποία θα ανάβουν διαδοχικά ως εξής: Το πράσινο για 5 δευτερόλεπτα Το πορτοκαλί για 2 δευτερόλεπτα Το κόκκινο για 4 δευτερόλεπτα Μετά από κάθε περίοδο φωτισμού το κάθε LED θα είναι σβηστό!

Άσκηση 1: Λύση void setup() { pinmode(10, OUTPUT); pinmode(11, OUTPUT); pinmode(12, OUTPUT); void loop() { digitalwrite(10, HIGH); delay(5000); digitalwrite(10, LOW); digitalwrite(11, HIGH); delay (2000); digitalwrite(11, LOW); digitalwrite(12, HIGH); delay (4000); digitalwrite(12, LOW); https://circuits.io/circuits/4593573-traffic-light

Μεταβλητές Οι μεταβλητές αποτελούν μια προσωρινή θέση αποθήκευσης Δήλωση: Τύπος int var = 12 Τιμή Όνομα Ανάθεση Τύποι: Char (χαρακτήρας) Byte Int (ακέραιος) Unsigned int (ακέραιος χωρίς πρόσημο) Long (μεγάλος ακέραιος) Unsigned long (μεγάλος ακέραιος χωρίς πρόσημο) Float (κινητής υποδιαστολής) Double (κινητής υποδιαστολής διπλής ακρίβειας) Boolean (λογικοί)

Άσκηση 2 Τροποποίηση του φωτεινού σηματοδότη της Άσκησης 1 έτσι ώστε: Τα pin των LED όπως και οι χρόνοι να αναπαρίστανται ως μεταβλητές Το πράσινο LED να αναβοσβήνει για συνολικό διάστημα 2 δευτερολέπτων: Πριν σβήσει το κόκκινο LED Πριν ανάψει συνεχόμενα το πράσινο LED

Άσκηση 2: Λύση int greenled=10; int orangeled=11; int redled=12; int greentime=5000; int orangetime=2000; int redtime=4000; int blinktime=2000; void setup() { pinmode(greenled, OUTPUT); pinmode(orangeled, OUTPUT); pinmode(redled, OUTPUT); https://circuits.io/circuits/4963765-traffic-light-ii void loop() { digitalwrite(greenled, HIGH); delay(greentime); digitalwrite(greenled, LOW); digitalwrite(orangeled, HIGH); delay (orangetime); digitalwrite(orangeled, LOW); digitalwrite(redled, HIGH); delay (redtime-blinktime); digitalwrite(greenled, HIGH); delay (blinktime/4); digitalwrite(greenled, LOW); delay (blinktime/4); digitalwrite(greenled, HIGH); delay (blinktime/4); digitalwrite(greenled, LOW); delay (blinktime/4); digitalwrite(redled, LOW);

Συνθήκες Για να λαμβάνονται αποφάσεις στον κώδικα του Arduino χρησιμοποιείται η δήλωση if. Οι δηλώσεις if βασίζονται σε μια ερώτηση σωστού ή λάθους. Δομή: Συνθήκες: Μεγαλύτερο (a>b) if (συνθήκη 1){ //εκτέλεση μιας Α ενέργειας else if (συνθήκη 2){ else{ Μεγαλύτερο ή ίσο (a b) Μικρότερο (a<b) //εκτέλεση μιας Β ενέργειας //εκτέλεση μιας Γ ενέργειας Μικρότερο ή ίσο (a b) Ίσο (a==b) Διαφορετικό (a!=b)

Άσκηση 3 Δημιουργία προγράμματος σύμφωνα με το οποίο θα ανάβει ένα LED όταν είναι πατημένος ένας διακόπτης.

Άσκηση 3: Λύση int led = 8; int button = 9; void setup() { pinmode(led, OUTPUT); pinmode(button, INPUT); void loop() { int var = digitalread(button); if (var==0){ digitalwrite(led, LOW); else{ digitalwrite(led, HIGH); https://circuits.io/circuits/4965597-pushbutton

Λογικοί Τελεστές «Και» ή AND Αν θέλουμε δύο ή περισσότερες συνθήκες σε μια πρόταση να είναι αληθείς χρησιμοποιούμε το λογικό τελεστή «και» Συμβολίζεται με && Παράδειγμα: if ( val1 < 10 && val2 > 20) «Ή» ή OR Αν θέλουμε τουλάχιστον μία από τις συνθήκες σε μια πρόταση να είναι αληθείς χρησιμοποιούμε το λογικό τελεστή «ή» Συμβολίζεται με Παράδειγμα: if ( val1 < 10 val2 > 20)

Άσκηση 4 Δημιουργία προγράμματος σύμφωνα με το οποίο θα ανάβει ένα LED όταν είναι πατημένοι δύο διακόπτες.

Άσκηση 4: Λύση int led = 8; int button1 = 2; int button2 = 3; void setup() { pinmode(led, OUTPUT); pinmode(button1, INPUT); pinmode(button2, INPUT); void loop() { int var1 = digitalread(button1); int var2 = digitalread(button1); if (var1==high && var2==high){ digitalwrite(led, HIGH); else{ digitalwrite(led, LOW); Τι θα τροποποιούσαμε για να ανάβει το LED όταν είναι πατημένος οποιοσδήποτε διακόπτης;

Σειριακή Επικοινωνία Η μεταφορά δεδομένων μεταξύ Arduino και Η/Υ πραγματοποιείται μέσω σειριακής επικοινωνίας. Για την έναρξη της σειριακής επικοινωνίας χρησιμοποιείται ο παρακάτω κώδικας: void setup() { Παράδειγμα: void setup() { Serial.begin(9600); Serial.println( Hello World! ); void loop() { Serial.begin(9600); Ποια η διαφορά; void setup() { Serial.begin(9600); void loop() { Serial.println( Hello World! );

Άσκηση 5 Τροποποίηση του φωτεινού σηματοδότη της Άσκησης 2 έτσι ώστε κάθε φορά που ανάβει ένα νέο LED στην κονσόλα να εμφανίζεται η κατάσταση του σηματοδότη ως εξής: «Πράσινο» όταν είναι αναμμένο το πράσινο LED «Πορτοκαλί» όταν είναι αναμμένο το πορτοκαλί LED «Κόκκινο» όταν είναι αναμμένο το κόκκινο LED «Προειδοποιητικό πράσινο» όταν αναβοσβήνει το πράσινο LED

Άσκηση 5: Λύση int greenled=10; int orangeled=11; int redled=12; int greentime=5000; int orangetime=2000; int redtime=4000; int blinktime=2000; void setup() { pinmode(greenled, OUTPUT); pinmode(orangeled, OUTPUT); pinmode(redled, OUTPUT); Serial.begin(9600); void loop() { digitalwrite(greenled, HIGH); Serial.println( Πράσινο ); delay(greentime); digitalwrite(greenled, LOW); digitalwrite(orangeled, HIGH); Serial.println( Πορτοκαλί ); delay (orangetime); digitalwrite(orangeled, LOW); digitalwrite(redled, HIGH); Serial.println( Κόκκινο ); delay (redtime-blinktime); Serial.println( Προειδοποιητικό πράσινο ); digitalwrite(greenled, HIGH); delay (blinktime/4); digitalwrite(greenled, LOW); delay (blinktime/4); digitalwrite(greenled, HIGH); delay (blinktime/4); digitalwrite(greenled, LOW); delay (blinktime/4); digitalwrite(redled, LOW); https://circuits.io/circuits/4965939-traffic-light-iii

Συμπληρωματική Βιβλιογραφία «Introduction to Arduino: A piece of cake!», A. G. Smith, Εκδόσεις Πανεπιστημίου Πατρών, 2011 (http://www.introtoarduino.com/downloads/introarduinobook.pdf). «Προγραμματίζοντας με τον μικροελεγκτή Arduino», Ε. Πουλάκης, Ηράκλειο, 2015 (http://users.sch.gr/manpoul/docs/arduino/programmingarduino.pdf). «Ανάπτυξη Εφαρμογών με το Arduino: Ένας πλήρης οδηγός για αρχάριους και προχωρημένους», Π. Παπάζογλου, Σ. Π. Λιώνης, Εκδόσεις Τζιόλα, 2015.

Ερωτήσεις;