Paso 9: Programar el microcontrolador
Si no está familiarizado con programación un lilypad, sugiero echar un vistazo a los excelentes materiales de Leah Buechley conectar el lilypad, configurar el software de arduinoy programación un lilypad.
Programa de la tarjeta con el código siguiente. Una vez tengas el código cargado, los LED deben luz y comenzar a responder a los movimientos del acelerómetro.
--Comienza el código
/*
* Falda llena de estrellas
*
* Utiliza un LilyPad Arduino y acelerómetro para controlar el color de LEDs RGB
* Que se cose en la cintura de una falda con fibra óptica
* Tutorial disponible en http://StarSkirt.PolymathDesignLab.com
*
* Diseñado por Shannon Henry, Polymath Design Lab
*/
int sensorValueX; variables para almacenar datos de acelerómetro
int sensorValueY;
int sensorValueZ;
int acceleroX = 0; Pétalo analógico que lectura de X coord acelerómetro está ligada a
int acceleroY = 1; Pétalo analógica lectura de coord de acelerómetro Y vinculado a
int acceleroZ = 2; Pétalo analógico que lectura de coord de acelerómetro Z está ligada a
int adjustedX; variables para mantener valores reasignados para la generación de color
int adjustedY;
int adjustedZ;
int redTab = 4; Pétalo atado plomo de LED rojo
Concentrada de int = 2; Pétalo atado conductor LED azul
int greenTab = 3; Pétalo atado cable verde del LED
void initializeRGB(void)
{
pinMode (redTab, salida);
pinMode (concentrada, salida);
pinMode (greenTab, salida);
analogWrite (redTab, 0);
analogWrite (concentrada, 0);
analogWrite (greenTab, 0);
}
void setup() {}
Serial.Begin(9600); inicializar el puerto serie para que usted puede comunicarse con la computadora
}
void loop() {}
sensorValueX = analogRead(acceleroX); leer datos de acelerómetro
sensorValueY = analogRead(acceleroY);
sensorValueZ = analogRead(acceleroZ);
adjustedX = mapa (sensorValueX, 400, 650, 0, 255); asigna el valor del sensor en el rango de 1 a 255 que corresponden con los valores de color
adjustedY = mapa (sensorValueY, 400, 600, 0, 255); Que calibrar - descomentar serial.println código a continuación, y
adjustedZ = mapa (sensorValueZ, 430, 650, 0, 255); ajuste iniciales 2 valores para reflejar la variedad de lecturas recibidas durante la calibración
Serial.println(adjustedX); enviar los datos del sensor a la computadora por lo que se puede calibrar RGB LED pantalla
Serial.println(adjustedY); //
Serial.println(adjustedZ); //
Serial.println(); Comente las líneas Serial.println otra vez una vez completada la calibración del color
Delay(5); retraso muy breve
analogWrite (redTab, adjustedX); el color de la exhibición
analogWrite (concentrada, adjustedY);
analogWrite (greenTab, adjustedZ);
}