Arc en ciel ambiant horloge (2 / 3 étapes)

Étape 2: Schémas et programmation...

Vous pouvez générer ce projet de plusieurs façons selon les schémas.

Une maquette peut être utilisé, mais vous pouvez également coller toutes les pièces (chambres) derrière la bague de conduit et son visage dans un "sandwich" comme mode séparé par double côté adhésif (photos de cette viendra ici bientôt). On peut aussi construire son propre circuit imprimé pour héberger toutes les pièces.

J’ai choisi d’utiliser un usb embarqué arduino nano pour faciliter la tâche de fournir la puissance à l’unité. Une version plus petite et plus compacte pourrait être construite à l’aide d’un convertisseur USB vers TTL comme celle ci-dessous d’ebay, mais vous devra trouver un autre moyen de fournir la puissance (5Volts) parce qu’après la programmation de l’arduino, le convertisseur TTL doit aller :

Fichier de programmation contient des annotations pour votre compréhension.

Il y a plusieurs bibliothèques pour DS3231 là-bas, afin que je fournis ici celui que j’utilise. Aussi note que vous pouvez trouver une version de DHT11 qui déjà comprend R1 (habituellement est assis sur un petit bord et ne sont pas un composant brut). Dans ce cas, omettez R1.

Donc, vous réunir toutes les pièces comme indiqué et programmer votre arduino avec votre ordinateur. Si vous décidez d’utiliser le module mini sans port usb, vous pouvez ensuite débrancher et retirer l’adaptateur TTL. Ce faisant vous permet d’économiser espace et l’alimentation.

Code réel :

< p > #include //I2C communication bibliothèque < br > #include « ds3231.h » //Real horloge bibliothèque #include //Fast conduit bibliothèque #include //DHT humidité-température capteur < /p >< p > #define LED_PIN 5 //Control broche pour LEDs #define COLOR_ORDER GRB //Define couleur protocole #define WS2811 CHIPSET //Chipset pour WS2811 #define NUM_LEDS 12 //Declare nombre de //Declare #define luminosité 35 leds led luminosité < /p >< p > dht DHT ; Initialiser la goupille de DHT #define DHT11_PIN 2 //Data pour DHT < /p >< p > CRGB leds [NUM_LEDS] ; Reconnaissions nombre de LED à système < /p >< p > ora octets ; Heures variables byte mindec ; Dix minutes octets variable minmon ; Unité minutes octets variable secondes = 0 ; Secondes variable int counter1 ; Variable de compteur pour données montrent idex int = 0 ; Variable pour arc-en-ciel indice int ihue = 0 ; Variable pour température de flotteur de teinte arc-en-ciel ; Température humidité int variable ; Variable d’humidité < /p >< p > void setup() {FastLED.addLeds (leds, NUM_LEDS) ; FastLED.setBrightness (luminosité) ; Serial.Begin(9600) ; Initialiser le port série Wire.begin() ; Initialiser la bibliothèque de communication I2C DS3231_init(0x00) ; Initialiser l’horloge en temps réel pour 1 Hz onde carrée sortie pinMode (8 entrées) ; Mettre la broche pour la touche mode heure/date d’entrée digitalWrite (8, hauts) ; Allumez pullup résistances pinMode (9, entrée) ; Mettre broche pour heure/date set bouton entrer digitalWrite (9, HIGH) ; Allumez pullup résistances //Initialize système avec un arc en ciel pour (int i = 0; j’ai < 12; i ++) {rainbow();} pour (int j = 0; j < 12; j ++) {leds [j] = CRGB::Black ; FastLED.delay(100);} } < /p >< p > void loop() {if((DS3231_get_addr(0x0E) & 0 x 20) == 0){DS3231_init(0x20);} //Init température capteur = DS3231_get_treg() ; //Get température de CCF struct ts t; //Structure pour la récupération et le stockage des données de temps de CCF DS3231_get(&t) //Get temps de t structure int chk = DHT.read11(DHT11_PIN) ; //Obtain variable d’humidité humidité ligne données = DHT.humidity ; //Get humidité et magasin à la variable mindec = 0; //Initialize variable pour dix minutes minmon = 0; //Initialize variable pour minutes unité < /p >< p > FastLED.clear() ; Claire tout afficher //Displaying temps réel si (t.hour > = 12) {leds [t.hour 12] = CRGB::Blue ; ora=t.hour-12;} else {leds[t.hour]= CRGB::Blue ; ora=t.hour;} si (t.min < 10 & & t.min!=0) {leds[t.min]=CRGB::Yellow;minmon=(t.min);} autre {mindec=int((t.min/10)*2) ; minmon=(t.min-((mindec/2)*10)) ; si (mindec == minmon & & minmon! = 0) {leds [mindec] = CRGB::Orange;} d’autre {leds [mindec] = CRGB :: Red ; LED [minmon] = CRGB::Yellow ; Si (minmon == 0) {leds [minmon] = CRGB::Black;}} } //Correcting chevauchement des couleurs/indications si (ora == minmon) {leds [ora] = CRGB::Green;} si (ora == mindec) {leds [ora] = CRGB::Purple;} si (ora == minmon & & ora == mindec) {leds [ora] = CRGB::White;} //Toggle secondes pour être secondes effet si (secondes == 0) {leds[int(t.sec/5)]=CRGB::DimGrey;leds[int(t.sec/5)] .nscale8 (64); secondes ++;} else {secondes--;} FastLED.show() ; Delay(800) ; counter1 ++ ; Augmenter le compteur d’affichage temp/hum si (counter1 > 70) {//Time jusqu'à affichage température et l’humidité counter1 = 0; //Initialize contre pour les prochaines données Voir la //Display température si (température < = 0) {pour (int j = NUM_LEDS; j > = 0; j--) {leds [j] = CRGB::White ; leds[j].nscale8(64) ; delay(20);}} Subzero températures apparaissent dans le fond blanc d’autre {pour (int j = NUM_LEDS; j > = 0; j--) {leds [j] = CRGB::Green ; leds[j].nscale8(64);delay(20);}} si (température < 10) {leds[int(temperature)] = CRGB::Yellow;} else {mindec=int((temperature/10)) ; minmon=(temperature-(mindec*10)) ; si (mindec == minmon) {leds [mindec] = CRGB::Orange;} d’autre {leds [mindec] = CRGB::Red ; leds [minmon] = CRGB::Yellow;}} FastLED.show() ; Afficher la température à fond vert pour 4 secondes delay(4000) ; Affichage d’humidité pour (int j = NUM_LEDS; j > = 0; j--) {leds [j] = CRGB::Teal ; leds[j].nscale8(48);delay(20);} si (humidité < 10) {leds[int(humidity)] = CRGB::Yellow;} else {mindec=int((humidity/10)) ; minmon=(humidity-(mindec*10)) ; si (mindec == minmon) {leds [mindec] = CRGB::Orange;} d’autre {leds [mindec] = CRGB::Red ; LED [minmon] = CRGB::Yellow;}} FastLED.show() ; Montrer l’humidité en arrière-plan de la Sarcelle pour 4 s delay(4000) ; Appel effet arc-en-ciel pour (int i = 0; j’ai < 12; i ++) {rainbow();} pour (int j = 0; j < 12; j ++) {leds [j] = CRGB::Black ; FastLED.delay(100);} } / / Heure réglée avec les touches < /p >< p > if(!digitalRead(8) & & digitalRead(9)) {//Increment heure si bouton maintenu dowm delay(100) ; //100ms retard pour éviter accidentel bouton déclenchement t.hour = t.hour + 1; //Increment l’heure si (t.hour > 23){t.hour=0;} Wire.beginTransmission(DS3231_I2C_ADDR) ; Wire.Write(2) ; Wire.Write((t.Hour/10*16)+(t.Hour%10)) ; Wire.endTransmission() ; } < /p >< p > si ()
! digitalRead(9) & & digitalRead(8)) {//Increment minutes si la touche enfoncée delay(100) ; //100ms retard pour éviter accidentel bouton déclenchement t.min = t.min + 1; //Increment minutes si (t.min > 59){t.min=0;} Wire.beginTransmission(DS3231_I2C_ADDR) ; Wire.Write(1) ; Wire.Write((t.min/10*16)+(t.min%10)) ; Wire.endTransmission() ; } if(!digitalRead(9) < /p >< p > & &! digitalRead(8)) {//Reset secondes si les deux touches enfoncées de delay(100) ; //100ms retard pour éviter accidentel bouton déclenchement t.sec = 0; //Reset secondes Wire.beginTransmission(DS3231_I2C_ADDR) ; Wire.Write(0) ; Wire.Write((t.sec/10*16)+(t.sec%10)) ; Wire.endTransmission() ; } < /p >< p >} < /p >< p > rainbow() Sub //Rainbow fonction {idex ++; ihue = ihue + 22 ; if (idex > = NUM_LEDS) {idex = 0;} si (ihue > = 255) {ihue = 0;} leds[idex]=CHSV(ihue,255,255) ; FastLED.show() ; FastLED.delay(100) ; } < /p >

Articles Liés

Arc en ciel Neo horloge

Arc en ciel Neo horloge

Cette horloge a été faite comme un cadeau, mais j'étais tellement heureux avec ce que j'ai pensé que je ferais une instructable pour elle. L'horloge utilise 2 Neo Pixel anneaux de Adafruit Industries ainsi que le microcontrolleur Arduino Pro Mini et
Arc en ciel Mega Pong horloge

Arc en ciel Mega Pong horloge

il s'agit de mon point de vue sur l'horloge de Pong classique avec une rétro-éclairage RGB qui change chaque fois que la date est affichée.Un grand Merci à mrnick1234567 et à sonJe ne voulais pas la lumière pour changer aléatoirement à travers la jou
Arc en ciel Tie-Dye soie Wrap

Arc en ciel Tie-Dye soie Wrap

Projet arc-en-ciel Tie-Dye soie enveloppe ! Une façon simple de faire quelque chose de particulièrement agréable. Où d'autre pouvez vous obtenir ligoté en noeuds, teints, mettre dans l'eau chaude, qui sort encore plus beau qu'avant! ? Juste ici !Cett
Comment filer un fil dégradé arc-en-ciel

Comment filer un fil dégradé arc-en-ciel

Ce Instructable va démontrer comment la main filer un fil dégradé. Un fil dégradé est un où le changement de couleurs uniformément d'une couleur à l'autre et chaque couleur est présenté une seule fois. Contrairement aux autres fils multicolores, où c
Arc en ciel beurre

Arc en ciel beurre

Le beurre est un ingrédient extrêmement polyvalent et a gagné sa place dans chaque foyer unique. Quand le concours de l'arc en ciel est venu, j'ai eu cette idée de faire du beurre de l'arc-en-ciel et je suis heureux que j'ai fait enfin aujourd'hui. L
Arc en ciel Word Clock

Arc en ciel Word Clock

enfin j'ai réussi à terminer l'arc-en-ciel Word Clock !Une fois de plus, celui-ci a été inspiré par Doug et ses créationsJ'ai une fixation avec RGB LED pour le moment et je voulais faire quelque chose d'un peu différent.Ainsi, même si elle est toujou
Fruit loops au fromage : une autre façon de faire cuire un arc-en-ciel au fromage

Fruit loops au fromage : une autre façon de faire cuire un arc-en-ciel au fromage

j'ai voulu montrer à la communauté d' facilement cuire un gâteau au fromage à partir de zéro. Mon inspiration provenait Rainbow Cheesecake de Tolstoi78. Merci!!!Etape 1: Le bon équipementLa plus importante pièce d'équipement pour la cuisson d'un gâte
Comment faire un réveil d’arc-en-ciel d’argile

Comment faire un réveil d’arc-en-ciel d’argile

ce instyructable vous montrera comment faire un réveil d'arc-en-ciel d'argile!!Étape 1: matériaux Toutes les couleurs de l'argile que vous voulezÉtape 2: Faire les numéros: 1 Prenez un morceau d'argile et de faire une petite ligne droite.Étape 3: Fai
Jar de l’arc-en-ciel - RGB Pixel bande contrôlé par Arduino

Jar de l’arc-en-ciel - RGB Pixel bande contrôlé par Arduino

notre article le plus populaire sur notre écran à Faires Maker est toujours le bocal de l'arc-en-ciel. Un client a déjà répliqué il donc nous avons pensé que nous partagerions comment nous avons fait en sorte que vous pouvez faire vos propres !https:
Gâteau de crème glacée arc-en-ciel

Gâteau de crème glacée arc-en-ciel

Gâteau à la crème de glace sont yummilicious congelés traiter. Bien sûr, c'est le grand succès de tous les groupes d'âge. Hier, j'ai fait cette crème glacée arc-en-ciel pour mon enfant. Elle l'aime beaucoup:) Elle est attirée par les couleurs, que j'
Arc en ciel Acryl Wallclock

Arc en ciel Acryl Wallclock

Construire quelque chose peut être amusant. Sur mesure en fonction de vos goûts et votre conception, vous colorer etc. choix. J'ai fait un pour ma chambre à l'aide de granules acryl. J'ai utilisé presque toutes les couleurs dans un arc-en-ciel... dan
Arc en ciel surligneur

Arc en ciel surligneur

Faites votre propre Bricolage Rainbow surligneur inspiré par les tendance surligneur de prisme de la belle dentelle amer !J'étais tellement déçu pour voir leur surligneur prisme épuisé, alors j'ai pris à ma propre version DIY de ce surligneur arc-en-
Arcs-en-ciel de ruban de soie

Arcs-en-ciel de ruban de soie

Je me souviens de fabrication ces brillamment barrettes pour cheveux de couleur pour mes filles il y a plusieurs années et je voulaient en faire un pour ma petite-fille. Il est allé ensemble très vite et alors que je faisais, j'ai pensé: « ce serait
Arc en ciel Challah

Arc en ciel Challah

Pain tressé assez arc-en-ciel !Étape 1: pâte Mélange de levure :c 1 1/4 d'eau tiède4 c. à thé de levure sèche active1 c. à thé de sucreAsperger d'eau avec le sucre, puis avec de la levure et laisser fleurir pendant 10 minutes, remuerPour la pâte :Dan