Étape 4: programmation
Vous devrez programmer votre gemma afin qu’il peut dire vos lumières quoi faire selon la quantité de lumière du capteur de lumière détecte. Ci-dessous j’ai copié le code que j’ai utilisé pour mon projet n’hésitez pas à le copier ou l’utiliser comme un modèle. Je dirais que dans chaque boucle, que vous créez un dégradé de couleurs de sorte qu’il semble plus naturel, mais c’est complètement à vous, c’est où vous pouvez obtenir très créatif. Si je devais refaire ce projet, je ferais les lumières changer pour une petite quantité de légers changements. Je dis cela parce que quand la lumière est la plus grande quantité de lumière pour modifier les couleurs de le neopixels de détection, il est si brillante que vous ne voyez même pas que l’arrière-plan de l’image a changé. Aussi, ce serait cool d’ajouter une boucle où si ses trop lumineux dans la salle pour voir le fond, il s’éteint, de cette façon, que vous auriez pu il toujours branché, mais seulement les choses allaient tourner si ça dim dans la salle.
Code utilisé dans CodeBender (n’hésitez pas à copier)
lien : https://codebender.cc/sketch:100071
#include
#define broche 1 / / c’est la broche de données connectée à la flèche sur le premier NeoPixel
Paramètre 1 = nombre de pixels dans la bande de / / paramètre 2 = Numéro d’identification (la plupart sont valide) / / paramètre 3 = type de pixel drapeaux, additionner au besoin: / / NEO_KHZ800 800 KHz bitstream (la plupart NeoPixel produits w/WS2812 LEDs) / / NEO_KHZ400 400 KHz (classique « v1 » (pas v2) pixels de la flore, les pilotes WS2811) / / NEO_GRB Pixels sont câblés pour GRB bitstream (la plupart des produits NeoPixel) / / NEO_RGB Pixels sont câblés pour RGB bitstream (v1 pixels de flore pas de v2) bande de Adafruit_NeoPixel = Adafruit_NeoPixel (4, PIN, NEO_GRB + NEO_KHZ800) ;
const int numReadings = 5 ;
int lectures [numReadings] ; les lectures de l’analogique d’entrée int index = 0 ; l’indice de l’int de lecture actuel total = 0 ; la moyenne du total cumulé int = 0 ; la moyenne
inputPin int = A1 ;
la routine d’installation s’exécute une fois que lorsque vous appuyez sur reset : void setup() {/ / initialiser la broche numérique comme une sortie. pinMode (inputPin, entrée); / / Serial.begin(9600); / / nous allons sortie quelques informations sur la série que le LILYPAD pour (int thisReading = 0; thisReading < numReadings ; thisReading ++) lectures [thisReading] = 0; strip.begin();}
la routine de la boucle s’exécute maintes et maintes fois pour toujours : void loop() {//This Section avant la si instruction adoucit les données en prenant l’averge de 5 valeurs / / soustraire la dernière lecture : total = total - lectures [index]; / / lecture du capteur : lectures [index] = analogRead(inputPin); / / ajout de la lecture au total : total = total + lectures [index]; / / avance vers la position suivante dans le tableau : index = index + 1 ;
Si nous sommes à la fin du tableau... si (index > = numReadings) / /.. .wrap autour au début : index = 0 ;
calculer la moyenne : moyenne = total / numReadings ; l’envoyer à l’ordinateur comme chiffres ASCII / / Serial.println(average) ; seulement sur LILYPAD delay(500) ; délai entre les lectures de stabilité si (moyenne > 75 & & < 200 en moyenne) //this est notre valeur de milieu de gamme {//if le tech met un peu d’air chaud sur le capteur de température d’au moins 170 strip.setPixelColor (0,50,120,0), il déclenchera //first neopixel en strip.setPixelColor (1,70,100,0) de la bande //second neopixel dans la bande de strip.setPixelColor (2,90,80,0); //third neopixel dans la bande de strip.setPixelColor (3,110,60,0); //fourth neopixel dans la bande de 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 est comme frapper envoyer sur un texte de neopixels mais le texte dit les lumières quoi faire} ElseIf (moyenne > = 200) {//this est notre strip.setPixelColor de haute valeur (0,150,0,30) //first neopixel en strip.setPixelColor (1,150,0,60) de la bande //second neopixel dans la bande de strip.setPixelColor (2,150,0,120); //third neopixel dans la bande de 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 bande strip.show (); //this est comme frapper envoyer sur un texte de neopixels mais le dit les lumières quoi faire} else {//this est notre faible valeur , rien en dessous de 160 strip.setPixelColor (0,0,0,150) ; première neopixel dans la bande de strip.setPixelColor (1,0,50,150) ; deuxième neopixel en bande strip.setPixelColor (2,0,100,150) ; neopixel troisième dans la bande de 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 bande strip.show () ; C’est comme frapper envoyer sur un texte de neopixels mais le texte dit les lumières quoi faire}}