Inclinez activé nuage lumière (9 / 12 étapes)

Étape 9: Programmation Partie 4: assemblage du programme

Nous y sommes presque !

Il est plus facile pour moi d’expliquer ce qui se passe dans le programme en commentant les parties ci-dessous.

Début du code

#include < Adafruit_NeoPixel.h >

#define PIN 13 //identifies broche 13 reliée à la neopixels

const int wait_T = 40 ;
const int ACCEL_PIN = A0 ;
const int PixelCount = 29 ;     / / J’ai 29 neopixels

const int MAX_AREAD = 370 ;     / / La présente section établit maximale, minimale, médiane et médian fenêtre du programme.
const int MIN_AREAD = 280 ;
const int MID_AREAD = 325 ;
const int MID_WINDOW = 10 ;
const int TILT_TIME = 10 ;  en quelques secondes / / la quantité de temps nécessaire pour rester dans la fenêtre afin de choisir une nouvelle répartition de la lumière

const int Pixel_Start_End = 0 ;     //Settings pour le générateur aléatoire répartition de la lumière
const UsingBar booléen = false ;
int random_pick = 0 ;
Boolean pick_new_random = true ;
int accel_read = 0 ;
unsigned long time_keeper = 0 ;

Bande de Adafruit_NeoPixel = Adafruit_NeoPixel (PixelCount, PIN, NEO_GRB + NEO_KHZ800) ;

void setup() {}
Serial.Begin(57600) ;
Strip.Begin() ;              / / Bande de démarrage
Strip.Show() ;               / / Initialiser tous les pixels sur « arrêt »
pinMode (entrée, ACCEL_PIN) ; / / Analog Accelerometer configurer lire NIP
randomSeed(analogRead(A3)) ;
}

Voici où le graphique de l’action est codé :

void loop() {}

/ / Lire la valeur de l’accéléromètre
accel_read = analogRead(ACCEL_PIN) ;

/ / Pick un nouveau aléatoire s’il est temps à.
Si (pick_new_random == true) {}
random_pick = random(6) ;
pick_new_random = false ;
}

Lorsque la valeur de l’accéléromètre est à l’intérieur de la fenêtre, elle puise les fonctions suivantes
Si ((accel_read > MID_AREAD - MID_WINDOW) & & (accel_read < MID_AREAD + MID_WINDOW)) {}
Si (random_pick == 0) {}
ThunderAccel() ;
} else if(random_pick == 1) {}
PatternOne() ;
} else if(random_pick == 2) {}
PatternTwo() ;
} else if(random_pick == 3) {}
PatternThree() ;
} else if(random_pick == 4) {}
PatternFour() ;
} else if(random_pick == 5) {}
PatternFive() ;
} else if(random_pick == 6) {}
PatternSix() ;
}
} else {}
time_keeper = millis() ;

tandis que ((millis() - time_keeper) < TILT_TIME * 1000) {}
color_tilt() ;
}

pick_new_random = true ;

}


}

dans le cas contraire, le code fera le modèle inclinable suivant
void setStripColor (int rouge, int vert, int bleu) {}
pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, rouge, vert, bleu) ;
}
Strip.Show() ;
}

void color_tilt() {}
int accel_value = analogRead(ACCEL_PIN) ;
accel_value = map(accel_value,MIN_AREAD,MAX_AREAD,0,255) ;
accel_value = constrain(accel_value,0,255) ;

pour (int i = 0; i < strip.numPixels(); i ++) {}
strip.setPixelColor (i, 255-accel_value, 0, accel_value) ;
Strip.Show() ;
Delay(2) ;
}
}

Voici toutes les fonctions de répartition de la lumière

void PatternOne() {}
CylonEyeUp (bande. Color(255,255,255), bande. Color(0,255,255), bande. Color(255,255,255), wait_T, PixelCount, Pixel_Start_End) ;
Delay(wait_T) ;
Exemple : CylonEyeDown (Center_Dot_Color, Second_Dot_color, Third_Dot_color, wait_T, PixelCount, Pixel_Start_End) ;
CylonEyeDown (bande. Color(255,255,255), bande. Color(0,255,255), bande. Color(255,255,255), wait_T, PixelCount, Pixel_Start_End) ;
Delay(wait_T) ;
}

void PatternTwo() {}
pour (int i = 0; i < 102; i ++) {}
setStripColor (i, (204 - i * 2), 204) ;
Delay(20) ;
}
pour (int i = 0; i < 102; i ++) {}
setStripColor (102-i, (i * 2), 204) ;
Delay(20) ;
}
}

void PatternThree() {}

pour (int i = 0; i < 255; i ++) {}
setStripColor (i, 255, 0) ;
Delay(20) ;
}
pour (int i = 255 ; j’ai > 0; i--) {}
setStripColor (i, 255, 0) ;
Delay(20) ;
}
Delay(1000) ;
}

void PatternFour() {}

pour (int i = 0; i < 127; i ++) {}
setStripColor (255-i * 2, 255-i, 255) ;
Delay(20) ;
}
pour (int i = 0; i < 127; i ++) {}
setStripColor (i * 2, 127 + i, 255) ;
Delay(20) ;
}
Delay(2000) ;

}

void PatternFive() {}
strip.setPixelColor (14, 255,255,255) ;
Delay(20) ;
strip.setPixelColor (15, 255,255,255) ;
Delay(20) ;
strip.setPixelColor (13, 255,255,255) ;
Delay(20) ;
strip.setPixelColor (16, 255,255,255) ;
Delay(20) ;
strip.setPixelColor (12, 255,255,255) ;
Delay(20) ;
strip.setPixelColor (17, 204,255,255) ;
Delay(20) ;
strip.setPixelColor (11, 204,255,255) ;
Delay(20) ;
strip.setPixelColor (18, 204,255,255) ;
Delay(20) ;
strip.setPixelColor (10, 204,255,255) ;
Delay(20) ;
strip.setPixelColor (19, 204,255,255) ;
Delay(20) ;
strip.setPixelColor (9, 204,255,255) ;
Delay(20) ;
strip.setPixelColor (20, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (8, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (21, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (7, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (22, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (6, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (23, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (5, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (24, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (4, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (25, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (3, 0,128,255) ;
Delay(20) ;
strip.setPixelColor (26, 0,0,255) ;
Delay(20) ;
strip.setPixelColor (2, 0,0,255) ;
Delay(20) ;
strip.setPixelColor (27, 0,0,255) ;
Delay(20) ;
strip.setPixelColor (1, 0,0,255) ;
Delay(20) ;
strip.setPixelColor (28, 0,0,255) ;
Delay(20) ;
strip.setPixelColor (0, 0,0,255) ;
Delay(20) ;
strip.setPixelColor (29, 0,0,255) ;
Delay(20) ;
Strip.Show() ;
}

void PatternSix() {}

pour (int i = 0; j’ai < 255; i = i + 1) {}
strip.setPixelColor (0, 0, i, 255-i) ;
strip.setPixelColor (1, 0, i, 255-i) ;
strip.setPixelColor (2, 0, i, 255-i) ;
strip.setPixelColor (3, 0, i, 255-i) ;
strip.setPixelColor (4, 0, i, 255-i) ;
strip.setPixelColor (5, 0, i, 255-i) ;
strip.setPixelColor (6, 0, i, 255-i) ;
strip.setPixelColor (8, 0, i, 255-i) ;
strip.setPixelColor (9, 0, i, 255-i) ;
strip.setPixelColor (10, 0, i, 255-i) ;
strip.setPixelColor (11, 0, i, 255-i) ;
strip.setPixelColor (12, 0, i, 255-i) ;
strip.setPixelColor (13, 0, i, 255-i) ;
strip.setPixelColor (14, 0, i, 255-i) ;
strip.setPixelColor (15, 0, i, 255-i) ;
strip.setPixelColor (16, 0, i, 255-i) ;
strip.setPixelColor (17, 0, i, 255-i) ;
strip.setPixelColor (18, 0, i, 255-i) ;
strip.setPixelColor (19, 0, i, 255-i) ;
strip.setPixelColor (20, 0, i, 255-i) ;
strip.setPixelColor (21, 0, i, 255-i) ;
strip.setPixelColor (22, 0, i, 255-i) ;
strip.setPixelColor (23, 0, i, 255-i) ;
strip.setPixelColor (24, 0, i, 255-i) ;
strip.setPixelColor (25, 0, i, 255-i) ;
strip.setPixelColor (26, 0, i, 255-i) ;
strip.setPixelColor (27, 0, i, 255-i) ;
strip.setPixelColor (28, 0, i, 255-i) ;
strip.setPixelColor (29, 0, i, 255-i) ;
Delay(10) ;
Strip.Show() ;
}

pour (int i = 255 ; j’ai > 0; i = i-1) {}
strip.setPixelColor (0, 0, i, 255-i) ;
strip.setPixelColor (1, 0, i, 255-i) ;
strip.setPixelColor (2, 0, i, 255-i) ;
strip.setPixelColor (3, 0, i, 255-i) ;
strip.setPixelColor (4, 0, i, 255-i) ;
strip.setPixelColor (5, 0, i, 255-i) ;
strip.setPixelColor (6, 0, i, 255-i) ;
strip.setPixelColor (8, 0, i, 255-i) ;
strip.setPixelColor (9, 0, i, 255-i) ;
strip.setPixelColor (10, 0, i, 255-i) ;
strip.setPixelColor (11, 0, i, 255-i) ;
strip.setPixelColor (12, 0, i, 255-i) ;
strip.setPixelColor (13, 0, i, 255-i) ;
strip.setPixelColor (14, 0, i, 255-i) ;
strip.setPixelColor (15, 0, i, 255-i) ;
strip.setPixelColor (16, 0, i, 255-i) ;
strip.setPixelColor (17, 0, i, 255-i) ;
strip.setPixelColor (18, 0, i, 255-i) ;
strip.setPixelColor (19, 0, i, 255-i) ;
strip.setPixelColor (20, 0, i, 255-i) ;
strip.setPixelColor (21, 0, i, 255-i) ;
strip.setPixelColor (22, 0, i, 255-i) ;
strip.setPixelColor (23, 0, i, 255-i) ;
strip.setPixelColor (24, 0, i, 255-i) ;
strip.setPixelColor (25, 0, i, 255-i) ;
strip.setPixelColor (26, 0, i, 255-i) ;
strip.setPixelColor (27, 0, i, 255-i) ;
strip.setPixelColor (28, 0, i, 255-i) ;
strip.setPixelColor (29, 0, i, 255-i) ;
Delay(10) ;
Strip.Show() ;
}

}

void ThunderAccel() {}

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 255,255,255) ;
Strip.Show() ;
}
Delay(200) ;

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 0,0,0) ;
Strip.Show() ;
}
retard (100) ;

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 255,255,0) ;
Strip.Show() ;
}
Delay(200) ;

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 0,0,0) ;
Strip.Show() ;
}
Delay(50) ;

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 255,255,0) ;
Strip.Show() ;
}
Delay(40) ;

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 0,0,0) ;
Strip.Show() ;
}
Delay(20) ;

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 255,255,255) ;
Strip.Show() ;
}
Delay(200) ;

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 0,0,0) ;
Strip.Show() ;
}
Delay(1000) ;

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 255,255,255) ;
Strip.Show() ;
}
Delay(200) ;

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 0,0,0) ;
Strip.Show() ;
}
retard (100) ;

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 255,255,0) ;
Strip.Show() ;
}
Delay(100) ;

pour (int i = 0; i < 29; i ++) {}
strip.setPixelColor (i, 0,0,0) ;
Strip.Show() ;
}
Delay(3000) ;
}

Emprunté et adapté de https://github.com/EternalCore/NeoPixel_Cylon_Scrolling_Eye/blob/master/NeoPixel_Cylon_Eye.ino

void CylonEyeUp (uint32_t Co, uint32_t Ct, Ctt uint32_t, retard uint8_t, int TotalPixels, int pStart) {}
pour (int i = pStart; i < TotalPixels; i ++) {}
if (!. UsingBar) {strip.setPixelColor (i + 2, Ctt);} //Third Dot couleur
strip.setPixelColor (i + 1, TC) ;   Deuxième point couleur
strip.setPixelColor (i, Co) ;     Centre point couleur
strip.setPixelColor (i-1, Ct) ;   Deuxième point couleur
if (!. UsingBar) {strip.setPixelColor (i-2, Ctt);} //Third Dot couleur

if (!. UsingBar) {}
strip.setPixelColor (i-3, bande. Color(0,0,0)) ; Efface les points après la 3ème couleur
} else {}
strip.setPixelColor (i-2, bande. Color(0,0,0)) ; Efface les points après la 2ème couleur
}
Strip.Show() ;
Serial.println(i) ; Utilisé pour pixel Count débogage
Delay(Delay) ;
}
}
void CylonEyeDown (uint32_t Co, uint32_t Ct, Ctt uint32_t, retard uint8_t, int TotalPixels, int pEnd) {}
pour (int i = TotalPixels-1; i > pEnd; i--) {}
if (!. UsingBar) {strip.setPixelColor (i-2, Ctt);} //Third Dot couleur
strip.setPixelColor (i-1, Ct) ;   Deuxième point couleur
strip.setPixelColor (i, Co) ;    Centre point couleur
strip.setPixelColor (i + 1, TC) ;  Deuxième point couleur
if (!. UsingBar) {strip.setPixelColor (i + 2, Ctt);} //Third Dot couleur

if (!. UsingBar) {}
strip.setPixelColor (i + 3, de la bande. Color(0,0,0)) ; Efface les points après la 3ème couleur
} else {}
strip.setPixelColor (i + 2, de la bande. Color(0,0,0)) ; Efface les points après la 2ème couleur
}
Strip.Show() ;
Serial.println(i) ; Utilisé pour pixel Count débogage
Delay(Delay) ;
}
}

Articles Liés

Inclinez activé Switch

Inclinez activé Switch

c'est un commutateur SPDT 3 positions qui se termine (le) lorsque incliné. Réalisé avec 3 morceaux de plastique, une machine à laver et trois vis + écrous. J'ai fait ce passage comme un hack pour un contrôleur de voiture r/c à bas prix, inspiré par l
Rideau réactive la lumière

Rideau réactive la lumière

pour le dernier projet de semestre dans ma classe métier et informatique, nous avons dû faire une famille d'éléments qui satisfait un besoin que les gens ont.  Mon partenaire de l'équipe et moi sommes tout à propos de l'expression de soi et nous avon
Motion activé des lumières de Noël

Motion activé des lumières de Noël

Dans ce Instructable, je vais vous montrer comment faire vos cadeaux de Noël phares s'allument quand il y a quelqu'un dans la salle en utilisant un Arduino, module de relais et un détecteur de mouvement PIR.J'ai fait cela parce que je voulais les lum
Comédie musicale activée lumière arbre de Noël

Comédie musicale activée lumière arbre de Noël

J'ai voulu faire ce projet pendant un certain temps et finit par trouver le temps. Musique et les lumières sont deux choses qui vont bien ensemble à Noël. Lecteur de gens partout pour voir énorme affiche qui couvrent toute une maison et bien plus enc
Activer les lumières et autres appareils avec contact et frappe (moins de 2$!)

Activer les lumières et autres appareils avec contact et frappe (moins de 2$!)

Bon, tout le monde ! Dans ce Instructable, je vais vous montrer comment contrôler les périphériques tels que les lampes et les fans, à l'aide de coups et le toucher ! Ce sont juste d'autres façons d'activer des appareils ménagers, au lieu d'utiliser
Voix pour activer les lumières / Led (ARDUINO et ANDROID)

Voix pour activer les lumières / Led (ARDUINO et ANDROID)

Controlling You ' r la maison des lumières à l'aide d'un téléphone android arduino et You ' r!!!C'est mon tout premier instructable, je voulais contrôler ma maison à l'aide d'un téléphone android et arduino.Il y a beaucoup d'autres options disponible
Potable 9v noir activé lumière

Potable 9v noir activé lumière

Salut à tous ! Il s'agit de mon premier instructable et je commence avec un très simple. C'est un simple, facile à faire sombre potable activée lumière, alimenté par une pile 9v.Étape 1: Téléchargez les documents d'accompagnement Composants :IC 1---n
Humaine, détection de la lumière de crâne de cerf

Humaine, détection de la lumière de crâne de cerf

Comment faire une détection humaine (motion activée) lumière de crâne de cerf.Il s'agit de mon premier Instructable, alors j'espère que mes étapes peuvent être suivies facilement pour aider les autres. Désolé, mais mon projet a été complètement fini
Croissance forte lumière plantes à l’intérieur sans culture hydroponique

Croissance forte lumière plantes à l’intérieur sans culture hydroponique

il y a beaucoup d'intérêt dans ces jours de croissance des plantes hautes de lumière à l'intérieur et j'ai supposé que c'est parce qu'à partir de mars 2012, de plus en plus médical de la Marijuana ou du Cannabis est légal dans 16 États. Et ici même e
Quiz de contrôleur de jeu à l’aide des « Avertisseurs de lumières et de sons » et Arduino

Quiz de contrôleur de jeu à l’aide des « Avertisseurs de lumières et de sons » et Arduino

jeux de quiz style Jeopardy sont favoris pour créer l'excitation et l'enseignement en même temps.  Enseignants, conseillers de camp l'été et les éducateurs de l'industrie même trouvent ce type de jeu afin de générer l'intérêt et l'implication des par
Lumières de Locker magnétique !

Lumières de Locker magnétique !

Merci beaucoup et beaucoup de crédit allez à utilisateur sockmaster pour ses excellentes lumières réfrigérateur magnétique instructable, qui était tout à fait l'inspiration pour celui-ci !Ma fille a commencé le Collège cette année.  Alors que nous ét
Activer l’éclairage ambiant en Audi MMI 2G

Activer l’éclairage ambiant en Audi MMI 2G

Audi MMI 2G activer la lumière ambiante (lumière de fond étendu) dans Audi MMI 2G (Multi Media Interface) dans les voitures A4 et A5, A6, A8, Q7. Cette fonctionnalité vous donne le contrôle de l'intensité du rétro-éclairage collecteur.Vous n'avez pas
Sombre activé relais Circuit

Sombre activé relais Circuit

Circuit des relais d'activé de lumière automatique est varient avec la lumière ambiante. facile, cet appareil se met en marche le relais lorsque la lumière ambiante recive LDR. Ce projet est très utile pour nous, exemple pour votre lampe automatique
Utilisez le RPi, Azure et Cortana pour automatiser votre maison !

Utilisez le RPi, Azure et Cortana pour automatiser votre maison !

IntroductionIl y a nouvelle technologie tout autour de nous et seulement plus tous les jours à venir. Notre micro contrôleurs deviennent plus rapidement, sont téléphones obtenant plus intelligent et le nuage se renforce. Avec toute cette technologie