Paso 4: programación
Necesita programar su gemma para que puede decir que hacer dependiendo de cuanta luz el sensor de luz detecta las luces. A continuación he copiado el código que usé para mi proyecto no dude en copiar o utilizar como plantilla. Sugiero que en cada lazo que se crea un gradiente de colores por lo que parece más natural, sin embargo, es totalmente hasta usted esto es donde usted puede conseguir realmente creativo. Si tuviera que hacer este proyecto haría que las luces de cambio de una menor cantidad de cambio de la luz. Digo esto porque cuando la luz es percibir la mayor cantidad de luz para cambiar los colores de la neopixels, es tan brillante que incluso no se puede ver que ha cambiado el fondo de la imagen. También sería cool agregar un bucle donde si su demasiado brillante en la sala a ver el fondo se apaga, así que puedes tener siempre enchufado pero sólo se encenderá si consiguió tenue en la habitación.
Código utilizado en CodeBender (no dude en copiar)
enlace: https://codebender.cc/sketch:100071
#include
#define PIN 1 / / este es el pin de datos conectado a la flecha en primer NeoPixel
Parámetro 1 = número de píxeles en tira / / parámetro 2 = número de pin (la mayoría son válidos) / / parámetro 3 = tipo de pixel banderas, sumar como sea necesario: / / NEO_KHZ800 800 KHz bitstream (mayoría NeoPixel productos w/WS2812 LED) / / NEO_KHZ400 400 KHz (clásico 'v1' (no el v2) FLORA pixeles, WS2811 controladores) / / NEO_GRB píxeles están cableados para GRB bitstream (más productos de NeoPixel) / / NEO_RGB píxeles están cableados para RGB bitstream (v1 píxeles de FLORA no v2) tira de Adafruit_NeoPixel = Adafruit_NeoPixel (4, PIN, NEO_GRB + NEO_KHZ800);
const int numReadings = 5;
int lecturas [numReadings]; las lecturas del índice análogo entrada int = 0; el índice de la actual int lectura total = 0; el funcionamiento total int promedio = 0; el medio de
int inputPin = A1;
la rutina de instalación se ejecuta una vez al presionar reset: void setup() {/ / inicializar el pin digital como una salida. pinMode (inputPin, entrada); / / Serial.begin(9600); / lo salida alguna información sobre la serie solamente en LILYPAD para (int thisReading = 0; thisReading < numReadings; thisReading ++) lecturas [thisReading] = 0; strip.begin();}
la rutina de loop se ejecuta una y otra vez para siempre: void loop() {//This sección antes el si declaración suaviza los datos tomando el averge de 5 valores / / restar la última lectura: total = total - lecturas [índice]; / leer del sensor: lecturas [índice] = analogRead(inputPin); / / añadir la lectura total: total = total + lecturas [índice]; / / avanzar a la siguiente posición en la matriz : index = index + 1;
Si estamos en el final de la matriz... Si (Índice > = numReadings) / /.. .wrap todo al principio: índice = 0;
calcular el promedio: promedio = total / numReadings; enviar a la computadora como dígitos ASCII / / Serial.println(average); sólo en LILYPAD delay(500); retardo entre lecturas de estabilidad si (promedio > 75 & & media < 200) //this es nuestro valor de gama media {//if la tecnología pone un poco aire caliente sobre el sensor de temperatura elevará a por lo menos 170 strip.setPixelColor (0,50,120,0) //first neopixel en tira strip.setPixelColor (1,70,100,0) //second neopixel en tira strip.setPixelColor (2,90,80,0); //third neopixel en tira strip.setPixelColor (3,110,60,0); //fourth neopixel en tira strip.setPixelColor (4,110,60,0); strip.setPixelColor (5,90,80,0); strip.setPixelColor (6,70,100,0); strip.setPixelColor (7,50,120,0); (strip.show); //this es como golpear a enviar un texto a neopixels pero el texto dice que las luces que hacer} else if (promedio > = 200) {//this es nuestro strip.setPixelColor de alto valor (0,150,0,30) //first neopixel en tira strip.setPixelColor (1,150,0,60) //second neopixel en tira strip.setPixelColor (2,150,0,120); //third neopixel en tira strip.setPixelColor (3,150,0,180); strip.setPixelColor (4,150,0,180); strip.setPixelColor (5,150,0,120); strip.setPixelColor (6,150,0,60); strip.setPixelColor (7,150,0,30); //fourth neopixel en tira strip.show (); //this es como golpear enviar un texto a neopixels pero el texto dice que las luces que hacer} else {//this es nuestro valor bajo , cualquier cosa por debajo de 160 strip.setPixelColor (0,0,0,150); primera neopixel en tira strip.setPixelColor (1,0,50,150); segundo neopixel en tira strip.setPixelColor (2,0,100,150); tercer neopixel en tira strip.setPixelColor (3,0,150,150); strip.setPixelColor (4,0,150,150); strip.setPixelColor (5,0,100,150); strip.setPixelColor (6,0,50,150); strip.setPixelColor (7,0,0,150); //fourth neopixel en tira strip.show (); Esto es como golpear enviar un texto a neopixels pero el texto dice que las luces que hacer}}