Φανάρια οδικής κυκλοφορίας με Arduino

Χρησιμοποιήσαμε κάποια modules τα οποία είναι μικροσκοπικά φανάρια, έτοιμα με τρύπες για να τα βιδώσουμε σε κατασκευή σε περίπτωση που θελήσουμε να φτιάξουμε μακέτα.

Το συγκεκριμένο project δεν είχε ιδιαίτερες απαιτήσεις όσον αφορά τον προγραμματισμό αλλά είναι μία καλή ευκαιρία ώστε να αντιληφθούμε τις καταστάσεις (states) που μπορεί να έχει ένας αυτοματισμός. 

Πως λειτουργούν τα φανάρια;

Στην απλούστερή τους μορφή, τα φανάρια οδικής κυκλοφορίας εξασφαλίζουν ότι η κυκλοφορία σε δύο κάθετους μεταξύ τους δρόμους θα είναι απρόσκοπτη και χωρίς κωλύματα.

Το ένα φανάρι ανάβει πράσινο, ενώ το άλλο είναι κόκκινο, στη συνέχεια το πράσινο ανάβει πορτοκαλί, κόκκινο κοκ. 

Αυτή η απλή λειτουργία είναι μία ωραία άσκηση για αρχάριους στον προγραμματισμό και έχει φυσικά το επιθυμητό αποτέλεσμα. 

Το project και τα υλικά

Για το συγκεκριμένο project, χρησιμοποιήσαμε το Arduino mega 2560 αλλά οποιαδήποτε έκδοση (όπως το UNO) θα έκανε εξίσου καλή δουλειά.

Τι χρειαζόμαστε;

  • 1 Breadboard
  • Wires
  • 2 modules 3 LED traffic light

Οι καταστάσεις στις οποίες βρίσκονται τα LED κάθε στιγμή φαίνονται στην παρακάτω εικόνα. Οι χρόνοι είναι ενδεικτικοί και μπορείτε να τους αλλάξετε σύμφωνα με τις δικές σας ανάγκες.

Φανάρια με Arduino. Καταστάσεις

Το σχέδιο

Με τη χρήση του Fritzing, υλοποιήσαμε το παρακάτω σχέδιο. 

Κύκλωμα φανάρια με Arduino

Ο κώδικας

Για τον κώδικα δεν χρειάστηκαν ιδιαίτερες εντολές, πέραν της pinMode και της digitalWrite

 Δεν χρειάστηκε κάποια βιβλιοθήκη για την λειτουργία.

int green1 = 8;
int orange1 = 7;
int red1 = 6;

int green2 = 5;
int orange2 = 4;
int red2 = 3;

void setup() {
pinMode(green1, OUTPUT);
pinMode(orange1, OUTPUT);
pinMode(red1, OUTPUT);
pinMode(green2, OUTPUT);
pinMode(orange2, OUTPUT);
pinMode(red2, OUTPUT);
}

void loop() {
digitalWrite(green1, HIGH);
digitalWrite(orange1, LOW);
digitalWrite(red1, LOW);
digitalWrite(green2, LOW);
digitalWrite(orange2, LOW);
digitalWrite(red2, HIGH);
delay(10000);

digitalWrite(green1, LOW);
digitalWrite(orange1, HIGH);
digitalWrite(red1, LOW);
digitalWrite(green2, LOW);
digitalWrite(orange2, LOW);
digitalWrite(red2, HIGH);
delay(3000);

digitalWrite(green1, LOW);
digitalWrite(orange1, LOW);
digitalWrite(red1, HIGH);
digitalWrite(green2, LOW);
digitalWrite(orange2, LOW);
digitalWrite(red2, HIGH);
delay(1500);

digitalWrite(green1, LOW);
digitalWrite(orange1, LOW);
digitalWrite(red1, HIGH);
digitalWrite(green2, HIGH);
digitalWrite(orange2, LOW);
digitalWrite(red2, LOW);
delay(10000);

digitalWrite(green1, LOW);
digitalWrite(orange1, LOW);
digitalWrite(red1, HIGH);
digitalWrite(green2, LOW);
digitalWrite(orange2, HIGH);
digitalWrite(red2, LOW);
delay(3000);

digitalWrite(green1, LOW);
digitalWrite(orange1, LOW);
digitalWrite(red1, HIGH);
digitalWrite(green2, LOW);
digitalWrite(orange2, LOW);
digitalWrite(red2, HIGH);
delay(1500);
}

Το Βίντεο

Και τέλος, το βίντεο που υλοποιήσαμε την εφαρμογή, για να το αναπαράγετε. 

Σχετικά άρθρα

Συγκεντρωτικοί πίνακες και εισαγωγή τους στο Power query

Μορφοποίηση υπό όρους για κάθε σειρά του πίνακα

Εισαγωγή στο Powerquery. Τι ακριβώς είναι;

Πληροφορίες

Χατζηγεωργίου Γεώργιος

info[@]getcert.gr

6945531647