Χρησιμοποιήσαμε κάποια modules τα οποία είναι μικροσκοπικά φανάρια, έτοιμα με τρύπες για να τα βιδώσουμε σε κατασκευή σε περίπτωση που θελήσουμε να φτιάξουμε μακέτα.
Το συγκεκριμένο project δεν είχε ιδιαίτερες απαιτήσεις όσον αφορά τον προγραμματισμό αλλά είναι μία καλή ευκαιρία ώστε να αντιληφθούμε τις καταστάσεις (states) που μπορεί να έχει ένας αυτοματισμός.
Πως λειτουργούν τα φανάρια;
Στην απλούστερή τους μορφή, τα φανάρια οδικής κυκλοφορίας εξασφαλίζουν ότι η κυκλοφορία σε δύο κάθετους μεταξύ τους δρόμους θα είναι απρόσκοπτη και χωρίς κωλύματα.
Το ένα φανάρι ανάβει πράσινο, ενώ το άλλο είναι κόκκινο, στη συνέχεια το πράσινο ανάβει πορτοκαλί, κόκκινο κοκ.
Αυτή η απλή λειτουργία είναι μία ωραία άσκηση για αρχάριους στον προγραμματισμό και έχει φυσικά το επιθυμητό αποτέλεσμα.
Το project και τα υλικά
Για το συγκεκριμένο project, χρησιμοποιήσαμε το Arduino mega 2560 αλλά οποιαδήποτε έκδοση (όπως το UNO) θα έκανε εξίσου καλή δουλειά.
Τι χρειαζόμαστε;
- 1 Breadboard
- Wires
- 2 modules 3 LED traffic light
Οι καταστάσεις στις οποίες βρίσκονται τα LED κάθε στιγμή φαίνονται στην παρακάτω εικόνα. Οι χρόνοι είναι ενδεικτικοί και μπορείτε να τους αλλάξετε σύμφωνα με τις δικές σας ανάγκες.
Το σχέδιο
Με τη χρήση του Fritzing, υλοποιήσαμε το παρακάτω σχέδιο.
Ο κώδικας
Για τον κώδικα δεν χρειάστηκαν ιδιαίτερες εντολές, πέραν της 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);
}
Το Βίντεο
Και τέλος, το βίντεο που υλοποιήσαμε την εφαρμογή, για να το αναπαράγετε.