DIY: LED Flasher με Arduino
Ακόμη ένα fun project στο οποίο θα αναβοσβήσουμε λαμπάκια με ένα Arduino! Ακόμη ένα fun project στο οποίο θα αναβοσβήσουμε λαμπάκια με ένα Arduino!
Το project παρόλο που θα το δημιουργήσουμε για διασκεδαστικούς σκοπούς μας αποκαλύπτει πολλά για τον κώδικα και για τον τρόπο που οι εντολές περνούν στο Arduino. Έτσι μας δίνεται η εικόνα για το πως λειτουργούν αντίστοιχα κυκλώματα που συνήθως περιλαμβάνουν LEDs σε άλλες χρήσεις. Για το παρόν DIY θα χρειαστούμε ένα Arduino Uno αν και οποιοσδήποτε κλώνος του με το ίδιο IC θα λειτουργήσει κανονικά.
Τα τρία LED απαιτούν και τρεις αντιστάσεις 240ohm περισσότερο για ασφάλεια, ενώ για να στήσουμε το όλο κύκλωμα θα επιστρατεύσουμε ένα breadboard. Τα LED φροντίζουμε να είναι διαφορετικών χρωμάτων αλλά διάφανα για ομοιόμορφο αποτέλεσμα.
Βήμα 1. Τα υλικά μας σε παράταξη. Όπως πάντα, το πρώτο βήμα περιέχει μια γενική εικόνα του hardware μας. Στην εικόνα διακρίνονται το Arduino με το καλώδιο USB του, τα LED, τα καλώδια γνωστά και ως jumpers, το breadboard, οι αντιστάσεις και τα LED.
Βήμα 2. Με βάση το σχεδιάγραμμα τοποθετούμε τα υλικά μας στο breadboard, διαδικασία που διαρκεί μερικά λεπτά, αν όχι δευτερόλεπτα!
Βήμα 3. Σειρά έχει ο κώδικας τον οποίο βρίσκετε μέσα στο spoiler και τον περνάτε με το Arduino IDE πρόγραμμα. Το τελικό αποτέλεσμα μπορείτε να το δείτε στο σύντομο βίντεο που ακολουθεί:
[SPOILER]// Project 1 - Flag Flasher
int ledDelay = 50; // delay by 50ms
int spaceDelay=300; //delay by 300ms
int bluePin = 11;
int yellowPin=7;
int redPin = 9;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(yellowPin,OUTPUT);
}
void loop() {
digitalWrite(bluePin, HIGH); //turn the light on
delay(ledDelay); // wait 50 ms
digitalWrite(bluePin, LOW); //turn the light off
delay(ledDelay); // wait 50 ms
digitalWrite(bluePin, HIGH);
delay(ledDelay); // wait 50 ms
digitalWrite(bluePin, LOW);
delay(ledDelay); // wait 50 ms
delay(spaceDelay); // delay midpoint by 300ms
digitalWrite(yellowPin, HIGH);
delay(ledDelay); // wait 50 ms
digitalWrite(yellowPin, LOW);
delay(ledDelay); // wait 50 ms
digitalWrite(yellowPin, HIGH);
delay(ledDelay); // wait 50 ms
digitalWrite(yellowPin, LOW);
delay(ledDelay); // wait 50 ms
delay(spaceDelay);
digitalWrite(redPin, HIGH);
delay(ledDelay); // wait 50 ms
digitalWrite(redPin, LOW);
delay(ledDelay); // wait 50 ms
digitalWrite(redPin, HIGH);
delay(ledDelay); // wait 50 ms
digitalWrite(redPin, LOW);
delay(ledDelay); // wait 50 ms
delay(spaceDelay);
}[/SPOILER]
Το project παρόλο που θα το δημιουργήσουμε για διασκεδαστικούς σκοπούς μας αποκαλύπτει πολλά για τον κώδικα και για τον τρόπο που οι εντολές περνούν στο Arduino. Έτσι μας δίνεται η εικόνα για το πως λειτουργούν αντίστοιχα κυκλώματα που συνήθως περιλαμβάνουν LEDs σε άλλες χρήσεις. Για το παρόν DIY θα χρειαστούμε ένα Arduino Uno αν και οποιοσδήποτε κλώνος του με το ίδιο IC θα λειτουργήσει κανονικά.
Τα τρία LED απαιτούν και τρεις αντιστάσεις 240ohm περισσότερο για ασφάλεια, ενώ για να στήσουμε το όλο κύκλωμα θα επιστρατεύσουμε ένα breadboard. Τα LED φροντίζουμε να είναι διαφορετικών χρωμάτων αλλά διάφανα για ομοιόμορφο αποτέλεσμα.
Βήμα 1. Τα υλικά μας σε παράταξη. Όπως πάντα, το πρώτο βήμα περιέχει μια γενική εικόνα του hardware μας. Στην εικόνα διακρίνονται το Arduino με το καλώδιο USB του, τα LED, τα καλώδια γνωστά και ως jumpers, το breadboard, οι αντιστάσεις και τα LED.
Βήμα 2. Με βάση το σχεδιάγραμμα τοποθετούμε τα υλικά μας στο breadboard, διαδικασία που διαρκεί μερικά λεπτά, αν όχι δευτερόλεπτα!
Βήμα 3. Σειρά έχει ο κώδικας τον οποίο βρίσκετε μέσα στο spoiler και τον περνάτε με το Arduino IDE πρόγραμμα. Το τελικό αποτέλεσμα μπορείτε να το δείτε στο σύντομο βίντεο που ακολουθεί:
[SPOILER]// Project 1 - Flag Flasher
int ledDelay = 50; // delay by 50ms
int spaceDelay=300; //delay by 300ms
int bluePin = 11;
int yellowPin=7;
int redPin = 9;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(yellowPin,OUTPUT);
}
void loop() {
digitalWrite(bluePin, HIGH); //turn the light on
delay(ledDelay); // wait 50 ms
digitalWrite(bluePin, LOW); //turn the light off
delay(ledDelay); // wait 50 ms
digitalWrite(bluePin, HIGH);
delay(ledDelay); // wait 50 ms
digitalWrite(bluePin, LOW);
delay(ledDelay); // wait 50 ms
delay(spaceDelay); // delay midpoint by 300ms
digitalWrite(yellowPin, HIGH);
delay(ledDelay); // wait 50 ms
digitalWrite(yellowPin, LOW);
delay(ledDelay); // wait 50 ms
digitalWrite(yellowPin, HIGH);
delay(ledDelay); // wait 50 ms
digitalWrite(yellowPin, LOW);
delay(ledDelay); // wait 50 ms
delay(spaceDelay);
digitalWrite(redPin, HIGH);
delay(ledDelay); // wait 50 ms
digitalWrite(redPin, LOW);
delay(ledDelay); // wait 50 ms
digitalWrite(redPin, HIGH);
delay(ledDelay); // wait 50 ms
digitalWrite(redPin, LOW);
delay(ledDelay); // wait 50 ms
delay(spaceDelay);
}[/SPOILER]