Paso 5: Código de Arduino analógico
Para hacer este cada LED requiere 3 pines PWM. Como el Arduino tiene sólo 6 pines PWM sólo dos LEDs RGB puede ser controlados de esta manera en un momento.
En cuanto al código usamos la función analogWrite (pin, valor), para más detalles, visite la referencia del código en Arduino.cc )
Para conseguir jugar con el sus LEDs de manera analógica simplemente...
- Copie y pegue el código siguiente en un sketch de Arduino vacíelo
- Compilar y subir el sketch a la placa Arduino
- Ejemplo uno comenzará girando el magenta de LED (puede entonces jugar con el color para cambiar a otros valores o definir los suyos propios)
- A continuación comente la línea del ejemplo 1 (Añadir / /)
- 2 ejemplo de un Comentario (elimine el / /)
- Compilar y cargar el ejemplo de la tabla.
- Ahora ver como su LED iluminará de un color verde blanquecino, cambiar los números en la matriz de tempColor [] para cambiar el color de la muestra
- Comentario a ejemplo 2 (Añadir / /)
- Quite el comentario de ejemplo 3 (eliminar la / /)
- Compilar y subir el programa a la placa
- Mira como los fundidos LED de rojo a verde a azul. Para ver cómo esto es accompished vistazo a la función fadeToColor()
- Siguiente codificación y burlarse de su propio cambio de programas color
(Un pequeño video del programa de prueba)
Apéndice 1: _RGBL_AnalogTest
---bof---preámbulo RGBL-analógico / / RGB LED pinsint ledAnalogOne [] = {3, 5, 6}; los tres pernos de los 3 primeros de LED analógico = redPin, 5 = greenPin, 6 = bluePin //These pasadores deben estar PWMint ledAnalogTwo [] = {9, 10, 11}; los tres pernos del segundo analógico LED 9 = redPin, 10 = greenPin, 11 = bluePin //These pasadores deben estar PWM / / colores definidos (diferentes valores RGB (rojos, verdes, azul) para colores//(to add your own ie. fuscia experiment and then add to the list) byte const [rojo] = {255, 0, 0}; byte const naranja [] = {4, 83, 0}; byte const amarillo [] = {255, 255, 0}; byte const verde [] = {0 255, 0}; byte const azul [] = {0, 0, 255}; byte const INDIGO [] = {4, 0, 19}; byte const [violeta] = {23, 0, 22}; byte const cian [] = {0, 255, 255}; byte const MAGENTA [] = {0, 255, 255}; BLANCO de byte const [] = {255, 255, 255}; byte const negro [] = {0, 0, 0}; ROSA de byte const [] = {158, 4, 79}; ---EF---RGBL-analógico Preamblevoid setup() {para (int i = 0; me < 3; i ++) {pinMode (ledAnalogOne [i], salida); //Set el LED de tres pines como salida pinMode (ledAnalogTwo [i], salida); //Set el LED de tres pines como salidas} colores (ledAnalogOne, negro) //Turn apagado led 1 colores (ledAnalogTwo, negro); //Turn de led 2} void loop() {/ * ejemplo 1 - define colores Set para un color conocido (puede utilizar cualquiera de los anteriores colores definidos) * / colores (ledAnalogOne MAGENTA); / * Ejemplo 2 - cualquier Set de Color el LED de cualquier color usted como * / //byte tempColor [] = {12,34,12}; el valor RGB (rojo, azul de gren) un color Mostrar //setColor (ledAnalogOne, tempColor); / * Ejemplo 3 - desvanecimiento Fade el LED entre dos colores (esto irá de rojo a verde a azul luego a rojas) * / //fadeToColor (ledAnalogOne, rojo, verde, 10); fadeToColor tiene 4 parámetros //ledAnalogOne - una matriz con 3 valores que definen los pasadores de la //RED LED rojos, verdes y azules - es el color de inicio //GREEN - este es el final color //10 - el retardo (en milisegundos entre versiones) (determina la velocidad de fundido) //fadeToColor (ledAnalogOne, verde, azul, 10); Se desvanece de verde a azul //fadeToColor (ledAnalogOne, azul, rojo, 10); Se desvanece desde el azul al rojo} / * establece el color del LED a un valor RGB led - (int arreglo de tres valores que definen los pines del LED (led [0] = redPin, led [1] = greenPin, llevado [2] = bluePin)) color - (matriz de bytes de tres valores defing color RGB para mostrar (color [0] = nuevo valor de rojo, color [1] = nuevo valor de verde, color [2] = nuevo valor de rojo * / void colores (int * led byte * color) {para (int i = 0; i < 3; i ++) {//iterate a través de cada uno de los tres pins analogWrite (rojo, verde, azul) (led [i], 255 - color[i]); //set el valor de salida analógica de cada pin en el valor de entrada (es decir led [0] (pin rojo) a 255-color [0] (color rojo de la entrada) //we uso 255 - el valor porque es de nuestro LED RGB ánodo común , esto significa que un color está lleno de cuando nos la salida analogWrite (pin 0) //and apagado cuando nos la salida analogWrite (pin, 255). }} / * Una versión de colores que toma un color predefinido (necesario para permitir que los colores predefinidos de const int * / void colores (int * led, const byte * color) {byte [] tempByte = {color [0], [1] de color, color [2]}; colores (led, tempByte);} / * Se descolora a un color final en fadeSpeed led - el LED de un color de inicio (int arreglo de tres valores que definen los pines del LED (led [0] = redPin, led [1] = greenPin, llevado [2] = bluePin)) startCcolor - (matriz de bytes de tres valores defing el color RGB de inicio (startColor [0] = Inicio valor rojo, startColor [1] = Inicio verde valor, startColor [2] = Inicio valor rojo endCcolor - (matriz de bytes de tres valores defing el acabado color RGB (endColor [0] = final valor rojo , endColor [1] = fin valor verde, endColor [2] = final valor rojo fadeSpeed - esto es el retardo en milisegundos entre los pasos, define la velocidad de la transición * / void fadeToColor (int * led, byte * startColor, byte * endColor, fadeSpeed int) {int changeRed = endColor [0] - startColor [0]; //the diferencia en los dos colores para el canal rojo int changeGreen = endColor [1] - startColor [1]; //the diferencia en los dos colores para el canal verde int changeBlue = endColor [2] - startColor [2]; //the diferencia en los dos colores para los pasos de int azul = max(abs(changeRed),max(abs(changeGreen), abs(changeBlue))); modificar el número de pasos de cambiar el canal máximo (int me = 0; me < pasos; i ++) {//iterate para el canal con el máximo cambio newRed bytes = startColor [0] + (me * changeRed / pasos); //the newRed intensidad depende de la intensidad de arranque y el cambio determinada sobre newGreen bytes = startColor [1] + (me * changeGreen / pasos); //the newGreen intensidad byte newBlue = startColor [2] + (me * changeBlue / pasos); //the newBlue intensidad bytes newColor [] = {newRed newGreen, newBlue}; Definir una matriz de color RGB para los colores de color nuevo (led, newColor); Configurar el LED para el delay(fadeSpeed) valor calculado; Colores de retraso fadeSpeed milisegundos antes de continuar con el siguiente color} (led, endColor); El LED debe estar en el endColor pero establece en endColor para evitar errores de redondeo} / * una versión de fadeToColor que lleva colores predefinidos (necesario para permitir que los colores predefinidos de const int * / void fadeToColor (int * led const byte * startColor, const byte * endColor, fadeSpeed int) {byte [] tempByte1 = {startColor [0], [1] de startColor, startColor [2]}; byte [] tempByte2 = {endColor [0], endColor [1], endColor [2]}; fadeToColor (led, tempByte1 tempByte2, fadeSpeed);}