Sí, LED_RGB_2 es el nombre del skech, y tienes razón, jose, había un error en minúsculas. Gracias.
Paso el código completo:
/Encendre un led GRB seqüencial amb encesa i apagada suaus.
http://elrincondelarduino.blogspot.com.es/
Febrer 2015/
//Definició de variables (quins pins governen els colors)
int RED_PIN=9; //Pin 9 connectat pel color vermell
int GREEN_PIN=10; //Pin 10 connectat pel color verd
int BLUE_PIN=11; //Pin 11 connectat pel color blau
/Aquesta variable controla la rapidesa del bucle a través
dels colors (modificant els valors es fa és ràpid o més
lent l'esvaiment/
int DISPLAY_TIME=100; //En milisegons
void setup() //S'executa un sol cop en connectar l'Arduino
{ //Obre diàleg
/Configuració dels pins d'Arduino que utilitzem per conduir
el led a ser sortides/
pinMode (RED_PIN, OUTPUT); //Led vermell com a sortida
pinMode (GREEN_PIN, OUTPUT); //Led verd com a sortida
pinMode (BLUE_PIN, OUTPUT); //Led blau com a sortida
} //Tanca diàleg
void loop() //Mentre estigui conectada l'Arduino, s'executa la funció
{ //Obre diàleg
/*En aquest treball escriurem les funcions, de manera que es pugui
seguir dividint el treball en seccions i no tenir-ho
tot a Setup() o loop()
Dues formes de d'executar el led RGB.
La primera és convertir els leds individuals (vermell, verd i blau),
encesa i apagada en diverses combinacions. Això completa un total
de 8 colors (si comptem el negre com a color).
Ecrivim una funció anomenada mainColors(), que passa a través dels
vuit colors.*/
mainColors(); //Activa els leds individualment
/Si es volen activar més de vuit colors, es pot fer mitjançant
la variació de lluminostat dels leds. La funció analogWrite()
ens ho permet. Aquesta funcuó permet atenuar un led des del tot
apagat al tot brillant, en més de 255 passes/
showSpectrum();
} //Tanca diàleg
//Donem valors a la primera de les funcions (mainColors())
mainColors void()
{ //Obre diàleg
//Off (tots els leds apagats)
digitalWrite (RED_PIN, LOW);
digitalWrite (GREEN_PIN, LOW);
digitalWrite (BLUE_PIN, LOW);
retardo (1000); //Es maté encès 1000ms (1')
//Vermell (solament el vermell encès)
digitalWrite (RED_PIN, HIGH); //Vermell encès
digitalWrite (GREE_PIN, LOW); //Verd apagat
digitalWrite (BLUE_PIN, LOW); //Blau apagat
retardo (1000); //Es manté encès 1000ms (1')
//Verd (solament verd encès)
digitalWrite (RED_PIN, LOW); //Vermell apagat
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, LOW); //Blau apagat
retardo (1000); //Es manté encès 1000ms (1')
//Blau (solament Blau encès)
digitalWrite (RED_PIN LOW); //Vermell pagat
digitalWrite (GREEN_PIN, LOW); //Verd apagat
digitalWrite (BLUE_PIN, HIGH); //Blau encès
retardo (1000); //Es manté encès 1000ms (1')
//Groc (vermell i verd encesos)
digitalWrite (RED_PIN, HIGH); //Vermell encès
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, LOW); //Blau apagat
retardo (1000);
//Cian (verd i blau encesos
digitalWrite (RED_PIN, LOW); //Vermell apagat
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, HIGH); //Blau encès
retardo (1000) //Es manté encès 1000ms (1')
//Porpra (vermell i blau encesos)
digitalWrite (RED_PIN, HIGH); //Vermell encès
digitalWrite (GREEN_PIN, LOW); //Verd apagat
digitalWrite (BLUE_PIN, HIGH); //Blau encès
retardo (1000); //Es manté encès 1000ms (1')
//Blanc (tot els leds encesos)
digitalWrite (RED_PIN, HIGH); //Vermell encès
digitalWrite (GREEN_PIN, HIGH); //Verd encès
digitalWrite (BLUE_PIN, HIGH); //Blau encès
retardo (1000); //Es mantè encès 1000ms (1')
} //Tanca diàleg
/Fins ací el control dels colors segons la funció mainColors
en la què s'activen els leds individualment/
//Ara es veuen dues funcions més: ShowSpectrum() i Showrgb()
/Showrgb() mostra un sol color al led RGB. S'anomena showrgb(),
amb el número del color que es vulgi mostrar./
/ShowSpectrum() crida a showrgb()un cop i un altre, per fer
l'arc Iris. Aquesta funció passa per tots els colors del led RGB.
Això ho fa mitjançant la intensificació d'una variable que va
de 0-768 (el total de nombre de colors), i de vàries ocasions,
cridant a showrgb(), per mostrar els colors individuals/
/En aquesta funció s'utilitza un "bucle for()" que permet el pas
d'una variable a partir d'un valor a un altre, i realitzar tot
un seguit d'instruccions per a cada pas. El bucle for() és una
forma molt útil per aconseguir els números per comptar cap a munt
o cap avall/
/*Cada bucle for() té tres sentències esparades per ";"
1.- Alguna cosa per fer abans de començar.
2.- Una prova per fer; sempre i quan sigui veritat
que es mantidrà el bucle.
3.- Alguna cosa a fer després de cada bucle (normalment augmentar
una variable.
Per al bucle for() a continuació, aquests són els tres estats:
1.- x=0; abans de començar, fer x=0.
2.- x<768; mentre que x és menor que 768, executar el següent còdi.
3.- x++Putting "++" després d'un medi de variables "suma +1". (També
es pot utilitzar "X=x+1")*/
anular showSpectrum()
{ //Obre diàleg
int x; //Definir una variable sencera anomenada "x"
//Ara utilitzarem un bucle for() per fer recompte X 0-767
para (x=0; x<768;x++)
//Per a cada bucle (amb un nou valor d'x), fer el següent:
{ //Obre diàleg
showrgb (x); //Cridar a RGBspectrum() amb el nou x
retardo (10); //Retard e 10ms (1/100th de segon)
} //Tanca diàleg
} //Tanca diàleg
/Showrgb(): Aquesta funció tradueix un número entre 0 i 767,
en un color específic al led RGB. Si es té en compte aquest
número a través de tot el rang (0-767), el led canviarà de
colors sense problemes a través de tot l'espectre./
/*Els números de "base" són:
0= vermell pur
255= verd pur
511= blau pur
767= vermell pur (novament)
Els números entre els colors anteriors crearan barreges.*/
showrgb void (int color)
{ //Obre diàleg
int redIntensity;
int greenIntensity;
int blueIntensity;
/Ací utilitzarem un "if / else" declaració per determinar
quin dels tres colors (R,G,B) cauen a x./
/En cada una d'aquestes zones calcurarem la brilantor per a
cada un dels leds de color vermell, verd i blau en el led RGB./
si (color <=255) //Zona 1
{ //Obre diàleg
redIntensity=255-color; //Vermell passa de ON a OFF
greenIntensity=color; //Verd passa de OFF a ON
blueIntensity=0; //Blau sempre apagat
} //Tanca diàleg
else if (color de <=511) //Zona 2
{ //Obre diàleg
redIntensity=0; //Vermell sempre apagat
greenIntensity=255-(color-256); //Verd passa d'encès a apagat
blueIntensity=(color-256); //Blau passa d'apagat a encès
} //Tanca diàleg
else //Color>=512 //Zona 3
{ //Obre diàleg
redIntensity=(color-512); //Vermell passa d'apagat a encès
greenIntensity=0; //Verd sempre apagat
blueIntensity=255- (color-512); //Blau passa d'encès a apagat
} //Tanca diàleg
/* Ara que s'han establert els valors de brillantor, es procedeix
a acomodar el led a aquests valors*/
analogWrite (RED_PIN, redIntensity);
analogWrite (BLUE_PIN, blueIntensity);
analogWrite (GREEN_PIN, greenIntensity);
} //Tanca diàleg
//Fi del programa
Hay mucho texto añadido, porque me permite saber cada paso y para que sirve.
gracias por la ayuda.
saludos