Stap 8: RGB LED en Arduino
De RGB-LEDs we in deze klasse gebruiken zijn gemeenschappelijke kathode, wat betekent dat alle drie de LEDs delen dezelfde grond pin (sommige RGB LEDs, genoemd gemeenschappelijk anode, delen een gemeenschappelijke levering Pins en hebben afzonderlijke gronden). Wij zullen kabellengte tot onze schakeling zoals de eerste afbeelding hierboven, elke LED in de RGB-LED heeft een weerstand van 220 Ohm in serie mee dat is bedraad tot dat een PWM ingeschakeld pin van de Arduino (ik gebruikte pinnen 9-11). Op deze manier kunnen wij selectief draaien elke LED in de RGB-LED in- en uitschakelen individueel.
Zie de tweede afbeelding hierboven om erachter te komen welke leads van de RGB LED correspondeert met rood, groen, blauw en grond (ze zijn genummerd 1-4).
Deze eerste schets zal elke kleur in de LED doorlopen:
//RGB LED - test //pin connections int red = 9; int green = 10; int blue = 11; void setup(){ pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); } void loop(){ //turn red led on digitalWrite(red, HIGH); delay(500); digitalWrite(red, LOW); delay(500); //turn green led on digitalWrite(green, HIGH); delay(500); digitalWrite(green, LOW); delay(500); //turn blue led on digitalWrite(blue, HIGH); delay(500); digitalWrite(blue, LOW); delay(500); }
Gebruikt u analogWrite() en random() voor een willekeurige helderheid niveaus instellen voor elk van de kleuren in de LED. De drie kleuren zal mengen in verschillende verhoudingen (afhankelijk van hun helderheid) om een grote verscheidenheid van kleuren (255 ^ 3 = 16,581,375 mogelijke kleuren).
//RGB LED - random colors //pin connections int red = 9; int green = 10; int blue = 11; void setup(){ pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(green, OUTPUT); } void loop(){ //pick a random color analogWrite(red, random(256)); analogWrite(blue, random(256)); analogWrite(green, random(256)); delay(1000);//wait one second }
Random(256); geeft als resultaat een getal tussen 0 en 255