Paso 10: Programación paso 4: RGB LED
actualización ***
Si encuentras que los colores se ven mal, trate de quitar la "255" - por las llamadas analogWrite.
Gracias a shobley para encontrar esto.
Más información en http://www.stephenhobley.com/blog/2010/06/11/arduino-world-mood-light-using-twitter-and-wishield/
fin de actualización ***
/ * El led está configurado inicialmente para ser currentColorID y con el tiempo se desvanecen a desiredColorID con un tiempo de retraso, fadeDelay, mide en ms, entre cada paso. Ningún esfuerzo se hace para escalar el tamaño de paso para cada canal rgb por lo que cada uno no puede completar al mismo tiempo. * / voidLED::FadeTo(intdesiredColorID) {/ / comprobar colorID válido si (desiredColorID > = NUM_COLORS || desiredColorID < 0) {//logger.log ("id Color no válido") volver; } / / obtener una copia local de los colores ColorcurrentColor; currentColor.r = colores [m_currentColorID] .r; currentColor.g = colores [m_currentColorID] .g; currentColor.b = colores [m_currentColorID] .b; ColordesiredColor; desiredColor.r = colores [desiredColorID] .r; desiredColor.g = colores [desiredColorID] .g; desiredColor.b = colores [desiredColorID] .b; booldone = false; mientras (! hecho) {/ / mover cada uno de r, g, b un paso más cerca de la desiredColor valor si (currentColor.r < desiredColor.r) {currentColor.r++; } elseif (currentColor.r > desiredColor.r) {currentColor.r--; } Si (currentColor.g < desiredColor.g) {currentColor.g++; } elseif (currentColor.g > desiredColor.g) {currentColor.g--; } Si (currentColor.b < desiredColor.b) {currentColor.b++; } elseif (currentColor.b > desiredColor.b) {currentColor.b--; } / / escribir los nuevos valores de rgb en lo pines correctos analogWrite (m_redPin, 255 - currentColor.r); analogWrite (m_greenPin, 255 - currentColor.g); analogWrite (m_bluePin, 255 - currentColor.b); Sostenga en este color para tantos delay(m_fadeDelay) ms; cuando tenemos alcance desiredColor hecho = (currentColor.r == desiredColor.r & & currentColor.g == desiredColor.g & & currentColor.b == desiredColor.b); } / / mientras (! hecho) m_currentColorID = desiredColorID; }