Paso 4: Código de Arduino
Copie y pegue el siguiente código de Arduino en un dibujo nuevo. No escribo mi propio tutorial aquí, así que si no sabes cómo crear/subir un boceto, Compruebe la página oficial de Arduino - introducción . Si desea más información sobre un comando específico, buscalo en Google (por ejemplo "Arduino analogWrite") y la página de ayuda oficial deben saltar derecha.ADVERTENCIA: Esto probablemente no es el código más eficiente! Particularmente, no estoy seguro de la mejor forma de monitorear el potenciómetro de velocidad se desvanecen sin copiar y pegar la misma línea de código una y otra vez, o si hay una manera de romper de un bucle si le da la vuelta el interruptor basculante (ahora, si se cambia a modo de control de la persona mientras está en modo de color-se descolora, el interruptor no ocurrirá hasta que termine el actual ciclo de transición). Por lo tanto, te lanzo por ahí como un desafío a cualquier persona que está leyendo esto y quiere mejor código postal. Claramente yo soy ingeniero mecánico y no un programador.
Código de Arduino para el control y la tira de LED RGB
Utiliza un interruptor para cambiar entre los modos de color-se descolora
y el modo de control RGB individual
adaptado de http://learn.adafruit.com/rgb-led-strips/example-codeconst int rojo = 9; definir los pines de salida digital para individual rojo,
const int verde = 10; canales verdes y azules
const int azul = 11;const int POT1 = 0; definir los pines de entrada analógicos de tres potenciómetros
const int POT2 = 1;
const int POT3 = 2;
const int POT4 = 3;const int tecla = 2; definir el pin de entrada digital para el interruptor
int val = 0; almacena el estado de la clavija de entrada de interruptor
int FADESPEED = 0; iniciar fade establecido por el potenciómetro de velocidad
int r = 0; inicializar los valores rojos, verdes y azules
int g = 0;
int b = 0;
void setup() {}
pinMode (rojo, salida); definir pines digitales como entradas y salidas según sea necesario
pinMode (verde, salida);
pinMode (azul, salida);
pinMode (botón, entrada);
}void loop() {}
Val = digitalRead(BUTTON); leer el valor de entrada desde el interruptor de palanca
Si (val == HIGH) {}
código RGB color se descoloran
FADESPEED = analogRead (POT4) / 10; configurar la velocidad de transición leer entrada analógica del potenciómetro 4
analogRead generará un número entre 0 y 1023 y el "retraso"
es en milisegundos, por lo que es el retraso más grande que tendrás aquí
1/10 de segundo. Dividir por un número diferente para cambiar el máximo
tiempo de transición.
Fade de azul a violeta
para (i = 0; i < 256; i ++) {}
analogWrite (rojo, r);
FADESPEED = analogRead (POT4) / 10; comprobar la velocidad de transición continuamente, de lo contrario
no actualizar hasta que es pasado a través de un ciclo completo.
Probablemente no es la manera más eficiente para hacerlo...
Delay(FADESPEED);
}
se desvanecen desde el violeta hasta el rojo
para (b = 255, b > 0; b--) {}
analogWrite (azul, b);
FADESPEED = analogRead (POT4) / 10;
Delay(FADESPEED);
}
Fade de rojo a amarillo
para (g = 0 g < 256; g ++) {}
analogWrite (verde, g);
FADESPEED = analogRead (POT4) / 10;
Delay(FADESPEED);
}
Fade de amarillo a verde
para (r = 255; r > 0; i--) {}
analogWrite (rojo, r);
FADESPEED = analogRead (POT4) / 10;
Delay(FADESPEED);
}
Fade de verde a verde azulado
para (b = 0; b < 256; b ++) {}
analogWrite (azul, b);
FADESPEED = analogRead (POT4) / 10;
Delay(FADESPEED);
}
Fade de verde azulado a azul
para (g = 255, g > 0; g--) {}
analogWrite (verde, g);
FADESPEED = analogRead (POT4) / 10;
Delay(FADESPEED);
}
}
Else {}
código de control RGB individual con potenciómetros
r = analogRead (POT3) / 4; leer los valores de los 3 potenciómetros y dividir por 4 para configurar el brillo
g = analogRead (POT2) / 4; Nota que análogo leer es de 10 bits (0-1023), analógica escritura es un PWM de 8 bits
b = analogRead (POT1) / 4; señal por lo que necesitará dividir este valor por 4.
analogWrite (rojo, r); escribir valores analógicos a los pines de salida de rojo, verde y azul
analogWrite (verde, g);
analogWrite (azul, b);
}
}