Para um projeto mais simples, ou mais animado poderá necessitar de usar um LED RGB para poupar espaço, ou então colorir mais o seu projeto.
o nome de RGB vem de RED GREEN BLUE, sendo as cores primarias que podem depois compor qualquer cor final, se encontrarmos o correto equilibrio entre cada uma delas.
Este led RGB acaba por ser a uniao de um led vermelho, led verde e por fim um led azul:
Esquema de ligações:
O esquema de ligações é bastante simples, como ligar 3 leds ao Arduino.
Deveremos colocar 3 resistências de 150 Ohms (ou similar) conforme o exemplo para poupar a vida útil ao LED.
Agora vamos ao código fonte, desta vez vamos mostrar 3 exemplos diferentes para utilizar este componente.
Efeito fading
int red = 9; //this sets the red led pin int green = 10; //this sets the green led pin int blue = 11; //this sets the blue led pin int redNow; int blueNow; int greenNow; int redNew; int blueNew; int greenNew; void setup() { //this sets the output pins pinMode(red, OUTPUT); pinMode(green, OUTPUT); pinMode(blue, OUTPUT); redNow = random(255); blueNow = random(255); greenNow = random(255); redNew = redNow; blueNew = blueNow; greenNew = greenNow; } #define fade(x,y) if (x>y) x--; else if (x<y) x++; void loop() { analogWrite(blue, blueNow); analogWrite(red, redNow); analogWrite(green, greenNow); redNew = random(255); blueNew = random(255); greenNew = random(255); // fade to new colors while ((redNow != redNew) || (blueNow != blueNew) || (greenNow != greenNew)) { fade(redNow,redNew) fade(blueNow,blueNew) fade(greenNow,greenNew) analogWrite(blue, blueNow); analogWrite(red, redNow); analogWrite(green, greenNow); delay(20); } }
Efeito Multicor
int ledcolor = 0; int a = 1000; //this sets how long the stays one color for int red = 9; //this sets the red led pin int green = 10; //this sets the green led pin int blue = 11; //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, 51); delay(a); analogWrite(red, 255); break; case 1: //if ledcolor equals 1 then the led will turn green digitalWrite(green, LOW); delay(a); digitalWrite(green, HIGH); break; case 2: //if ledcolor equals 2 then the led will turn blue digitalWrite(blue, LOW); delay(a); digitalWrite(blue, HIGH); break; case 3: //if ledcolor equals 3 then the led will turn yellow analogWrite(red, 95); digitalWrite(green, LOW); delay(a); analogWrite(red, 255); digitalWrite(green, HIGH); break; case 4: //if ledcolor equals 4 then the led will turn cyan analogWrite(red, 168); digitalWrite(blue, LOW); delay(a); analogWrite(red, 255); digitalWrite(blue, HIGH); break; case 5: //if ledcolor equals 5 then the led will turn magenta digitalWrite(green, LOW); digitalWrite(blue, LOW); delay(a); digitalWrite(green, HIGH); digitalWrite(blue, HIGH); break; case 6: //if ledcolor equals 6 then the led will turn white analogWrite(red, 155); digitalWrite(green, LOW); digitalWrite(blue, LOW); delay(a); analogWrite(red, 255); digitalWrite(green, HIGH); digitalWrite(blue, HIGH); break; } }
Efeito aleatório
int a = 1000; //this sets how long the LED stays one color for int red = 9; //this sets the red led pin int green = 10; //this sets the green led pin int blue = 11; //this sets the blue led pin void setup() { //this sets the output pins pinMode(red, OUTPUT); pinMode(green, OUTPUT); pinMode(blue, OUTPUT); } void loop() { analogWrite(blue, random(255)); analogWrite(red, random(255)); analogWrite(green, random(255)); delay(a); }
Poderão ainda ligar e desligar cada um deles individualmente da mesma forma como um LED simples, implementando código como este:
digitalWrite(ledAzul,HIGH); digitalWrite(ledVerde,LOW); digitalWrite(ledVermelho,HIGH);
Já possuem aqui algumas dicas para fazer algo engraçado, testem isto em casa vão ver que irão surgir ideias onde implementar este tutorial.
—————
Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.
Gostaram deste artigo ? Deixem o vosso comentário no formulário a baixo.
Não se esqueçam de fazer like na nossa Página no Facebook.
Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?