MetallicGR Posted June 8, 2015 Share Posted June 8, 2015 [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 More sharing options...
caution Posted June 8, 2015 Share Posted June 8, 2015 Nice - έτοιμος κώδικας Link to comment Share on other sites More sharing options...