MetallicGR

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

Recommended Posts

[NEWS_IMG=DIY: Παίζοντας με RGB LED στο Arduino]http://www.hwbox.gr/members/2195-albums497-picture34929.jpg[/NEWS_IMG] Δείτε τα αγαπημένα σας χρώματα να ξεδιπλώνονται μπροστά σας με ένα Arduino και ένα RGB LED.

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

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

[img_alt=DIY: Παίζοντας με RGB LED στο Arduino]http://www.hwbox.gr/members/2195-albums570-picture48230.png[/img_alt]

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

[img_alt=DIY: Παίζοντας με RGB LED στο Arduino]http://www.hwbox.gr/members/2195-albums570-picture48231.png[/img_alt]

[img_alt=DIY: Παίζοντας με RGB LED στο Arduino]http://www.hwbox.gr/members/2195-albums570-picture48232.png[/img_alt]

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

Fade

#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 );

}

}

Blink

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;

}

}

<iframe width="750" height="450" src="https://www.youtube.com/embed/27kH9Mgtawg" frameborder="0" allowfullscreen></iframe>

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now