DIY: Παίζοντας με RGB LED στο Arduino

DIY: Παίζοντας με RGB LED στο Arduino

Δείτε τα αγαπημένα σας χρώματα να ξεδιπλώνονται μπροστά σας με ένα Arduino και ένα RGB LED. Δείτε τα αγαπημένα σας χρώματα να ξεδιπλώνονται μπροστά σας με ένα Arduino και ένα RGB LED.

Ένας πολύ έξυπνος τρόπος για να ελέγξουμε ένα RGB LED λαμπάκι είναι μέσω ενός Arduino. Το Red Green Blue λαμπάκι μας μπορεί να χειραγωγηθεί κατευθείαν από τη συγκεκριμένη πλατφόρμα, ενώ αξίζει να τονίσουμε ότι μπορούμε στη συνέχεια να το ενσωματώσουμε στα δικά μας projects! Εκτός από το RGB LED, θα χρειαστούμε ένα οποιοδήποτε Arduino, όπως το UNO, μερικά jumper wires που πιθανότατα θα πήρατε με την αγορά του Arduino και ένα breadboard το οποίο σίγουρα θα υπάρχει κάπου εφόσον ασχολείστε με το "άθλημα".


Βήμα 1. Το RGB λαμπάκι μας έχει τρεις άκρες. Η μια (η μακρύτερη) συνήθως είναι η γείωση, η πρώτη από αριστερά είναι το πράσινο, το τρίτο από αριστερά είναι το μπλε και το δεξιά είναι το κόκκινο. Όλα τα χρώματα έχουν θετικό πόλο!

DIY: Παίζοντας με RGB LED στο Arduino

Βήμα 2. Συνδέουμε τα jumper wires με το Arduino. Η γείωση του LED στη γείωση του Arduino, και τα πράσινο, μπλε και κόκκινο θα πάνε αντίστοιχα στο Arduino: pin 10, 9 και 8.

DIY: Παίζοντας με RGB LED στο Arduino
DIY: Παίζοντας με RGB LED στο Arduino

Βήμα 3. Στη συνέχεια έχουμε δύο τύπους κώδικα που μπορούμε να φορτώσουμε και να δοκιμάσουμε με το RGB μας. Ο ένας είναι Fade type, και ο άλλος Blink.


Fade
[SPOILER]#define GREEN 10
#define BLUE 9
#define RED 8
#define delayTime 20
void setup() {
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
pinMode(RED, OUTPUT);
digitalWrite(GREEN, HIGH);
digitalWrite(BLUE, HIGH);
digitalWrite(RED, HIGH);
}
int redVal;
int blueVal;
int greenVal;

void loop() {

int redVal = 255;
int blueVal = 0;
int greenVal = 0;
for( int i = 0 ; i < 255 ; i += 1 ){
greenVal += 1;
redVal -= 1;
analogWrite( GREEN, 255 - greenVal );
analogWrite( RED, 255 - redVal );
delay( delayTime );
}

redVal = 0;
blueVal = 0;
greenVal = 255;
for( int i = 0 ; i < 255 ; i += 1 ){
blueVal += 1;
greenVal -= 1;
analogWrite( BLUE, 255 - blueVal );
analogWrite( GREEN, 255 - greenVal );
delay( delayTime );
}

redVal = 0;
blueVal = 255;
greenVal = 0;
for( int i = 0 ; i < 255 ; i += 1 ){
redVal += 1;
blueVal -= 1;
analogWrite( RED, 255 - redVal );
analogWrite( BLUE, 255 - blueVal );
delay( delayTime );
}
}[/SPOILER]

Blink
[SPOILER]int ledcolor = 0;
int a = 1000; //this sets how long the stays one color for
int red = 8; //this sets the red led pin
int green = 10; //this sets the green led pin
int blue = 9; //this sets the blue led pin

void setup() { //this sets the output pins

pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
}

void loop() {
int ledcolor = random(7); //this randomly selects a number between 0 and 6

switch (ledcolor) {
case 0: //if ledcolor equals 0 then the led will turn red
analogWrite(red, 204);
delay(a);
analogWrite(red, 0);
break;
case 1: //if ledcolor equals 1 then the led will turn green
digitalWrite(green, HIGH);
delay(a);
digitalWrite(green, LOW);
break;
case 2: //if ledcolor equals 2 then the led will turn blue
digitalWrite(blue, HIGH);
delay(a);
digitalWrite(blue, LOW);
break;
case 3: //if ledcolor equals 3 then the led will turn yellow
analogWrite(red, 160);
digitalWrite(green, HIGH);
delay(a);
analogWrite(red, 0);
digitalWrite(green, LOW);
break;
case 4: //if ledcolor equals 4 then the led will turn cyan
analogWrite(red, 168);
digitalWrite(blue, HIGH);
delay(a);
analogWrite(red, 0);
digitalWrite(blue, LOW);
break;
case 5: //if ledcolor equals 5 then the led will turn magenta
digitalWrite(green, HIGH);
digitalWrite(blue, HIGH);
delay(a);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
break;
case 6: //if ledcolor equals 6 then the led will turn white
analogWrite(red, 100);
digitalWrite(green, HIGH);
digitalWrite(blue, HIGH);
delay(a);
analogWrite(red, 0);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
break;
}
}[/SPOILER]