Paso 4: Arduino programa
CÓDIGO DE ARDUINO BOARD IDE 1.0.3
Declarar todas las variables
int LED1; estas variables se utilizará para contener los valores PWM led
int LED2;
int LED3;
int p0 = 0; / * estas variables le asignaremos una variable para recibir valores PWM y pasarlos a sus respectivos pines * /
int p1 = 1;
int p4 = 4;
Float x;
/ * Esta variable que recibirá el ángulo valor de variable i. Este valor se convierte a radianes en la función del seno y se utilizará para generar los valores PWM * /
Float r; estas variables van a recibir los valores PWM calculados por las funciones tres seno
flotador g;
Float b;
la rutina de instalación se ejecuta una vez al presionar reset;
void setup() {}
Inicializa el pin digitales como salida.
pinMode (p0, salida); configura pin 0 de pwm
pinMode (p1, salida); configura el pin 1 para pwm
pinMode (p4, salida); configura pin 4 para pwm
/ * Ejecutar una prueba de diagnóstico que verificará que cada color del LED está trabajando.
Se enciende el LED consecutivamente con un retraso de un segundo entre cada uno * /
digitalWrite (p0, HIGH);
Delay(1000);
digitalWrite (p1, HIGH);
Delay(1000);
digitalWrite (p4, HIGH);
Delay(1000);
Apagar LEDs uno tras otro con un un deleay segundo entre cada uno
digitalWrite (p0, LOW);
Delay(1000);
digitalWrite (p1, LOW);
Delay(1000);
digitalWrite (p4, LOW);
Delay(1000);
}
una y otra vez funciona para siempre la rutina bucle:
void loop() {}
/ * La para lazo genera un valor para una variable que corresponde a 0 a 360 grados. Se aumenté 1 con cada iteración. Más tarde se convierte en radianes en el bucle. Una vez que alcanza 360 restablece a 0. Esto establece el comportamiento periódico del seno divertidas funciones * /
para (int i = 0; i < 360; i ++)
{
convertir señalo en una flotación variable que puede ser utilizado con PI
x=Float(i);
/ * para el cálculo de r, g, b la función seno se modifica para aumentar amplitute (127 *) para crear un desplazamiento de fase (x + 1/2 * PI) y (x + 3/2 * PI) finalmente la onda senoidal se produce para eliminar los valores negativos por debajo de cero mediante la adición de 1 * /
r=127*(sin(x/180*PI)+1);
g=127*(sin(x/180*PI+3/2*PI)+1);
b=127*(sin(x/180*PI+0.5*PI)+1);
convertir números enteros que se pueden asignar a números de LED PWM flaot r, g, b
LED1 = int(r);
LED2 = int(g);
LED3 = int(b);
escribir niveles de LED para p0, p1, p4 (valores de PWM de asignar a los LEDs)
analogWrite (p0, LED1);
analogWrite (p1, LED2);
analogWrite (p4, LED3);
espere 1/100 de segundo
Delay(100);
}}
En este proyecto que se utiliza un número de 0-255 para representar el 0 a 100% ciclo de trabajo (brillo), función del seno se utiliza para generarla. Digispark utiliza la función seno para generar el PWM (modulación de anchura de pulso). Convertimos los radianes de grado para los ciclos de rojos, verdes, azul. Esto se utiliza para cambiar el idioma de la computadora entender. Una pequeña diferencia de regulares placas Arduino y la Digispark es que el compilador de programa le pedirá que instale el Digispark cuando está listo para subir. Si lo dejas conectado, obtendrá un error del compilador.