Étape 7: Arduino Code
Voici le code que j’ai utilisé pour l’Arduino Uno.
Je n’ai jamais fait aucune programmation avant de jouer avec l’Arduino donc je ne sais pas que ce n’est pas parfait. Il y a sans doute plus élégantes manières pour obtenir le même résultat mais cela fonctionne.
À l’avenir, je vais modifier le code pour faire des choses comme ajouter des couleurs aléatoires ou autres effets de couleur. Je pourrais aussi ajouter du code pour expliquer les changements dans la lumière du jour et l’heure d’été.
Pour l’instant, les chiffres s’allument tous les soirs avec une couleur différente. Et chaque matin, ils s’éteignent.
Voici le code :
Croquis de numéros de maison
l’esquisse démarre en affectant à la fois pour le samedi à 18:00
tous les soirs à 18:00 les lumières vont continuer et afficher le
couleur pour la nuit
tous les matins à 06:00 les lumières seront éteindront
#include « LPD8806.h » //library pour bande de LED LPD8806
#include « SPI.h »
int dataPin = 2 ;
int clockPin = 3 ;
Bande de LPD8806 = LPD8806 (32, dataPin, clockPin) ;
#include < Time.h > //this est nécessaire pour obtenir des fonctionnalités de temps
#include < TimeAlarms.h >
void setup()
{
Commencez vers le haut de la bande de LED
Strip.Begin() ;
Mise à jour de la bande, pour commencer, ils sont tous « arrêt »
Strip.Show() ;
Serial.Begin(9600) ;
setTime(18,00,0,1,1,11) ; la valeur temps samedi 18:00 1er janvier 2011
créer des alarmes
Alarm.alarmRepeat(dowSaturday,18,00,10,SaturdayOn) ; Ceci définit la première alarme à 18:00:10 tous les samedis
Alarm.alarmRepeat(dowSunday,06,00,00,SundayOff) ; seconde alarme pour allumer les lampes au large de 06:00
Alarm.alarmRepeat(dowSunday,18,00,00,SundayOn) ;
Alarm.alarmRepeat(dowMonday,6,00,00,MondayOff) ;
Alarm.alarmRepeat(dowMonday,18,00,00,MondayOn) ;
Alarm.alarmRepeat(dowTuesday,6,00,00,TuesdayOff) ;
Alarm.alarmRepeat(dowTuesday,18,00,00,TuesdayOn) ;
Alarm.alarmRepeat(dowWednesday,6,00,00,WednesdayOff) ;
Alarm.alarmRepeat(dowWednesday,18,00,00,WednesdayOn) ;
Alarm.alarmRepeat(dowThursday,6,00,00,ThursdayOff) ;
Alarm.alarmRepeat(dowThursday,18,00,00,ThursdayOn) ;
Alarm.alarmRepeat(dowFriday,6,00,00,FridayOff) ;
Alarm.alarmRepeat(dowFriday,18,00,00,FridayOn) ;
Alarm.alarmRepeat(dowSaturday,6,00,00,SaturdayOff) ;
}
void loop() {}
digitalClockDisplay() ;
Alarm.Delay(1000) ; Attendez une seconde entre l’affichage de l’horloge
}
fonctions à appeler lorsqu’une alarme se déclenche :
void SaturdayOn() {}
colorChase (bande. Color(0,127,127), 1000) ; samedi activer alarme et afficher cette couleur
}
void SundayOff() {}
colorChase (bande. Color(000,000,000), 1000) ; le dimanche matin éteindre bande
}
void SundayOn() {}
colorChase (bande. Color(127,15,30), 1000) ;
}
void MondayOff() {}
colorChase (bande. Color(000,000,000), 1000) ;
}
void MondayOn() {}
colorChase (bande. Color(20,127,20), 1000) ;
}
void TuesdayOff() {}
colorChase (bande. Color(000,000,000), 1000) ;
}
void TuesdayOn() {}
colorChase (bande. Color(20,0,127), 1000) ;
}
void WednesdayOff() {}
colorChase (bande. Color(000,000,000), 1000) ;
}
void WednesdayOn() {}
colorChase (bande. Color(90,20,90), 1000) ;
}
void ThursdayOff() {}
colorChase (bande. Color(000,000,000), 1000) ;
}
void ThursdayOn() {}
colorChase (bande. Color(10,95,120), 1000) ;
}
void FridayOff() {}
colorChase (bande. Color(000,000,000), 1000) ;
}
void FridayOn() {}
colorChase (bande. Color(0,85,85), 1000) ;
}
void SaturdayOff() {}
colorChase (bande. Color(000,000,000), 1000) ;
}
Sub digitalClockDisplay()
{
affichage de l’horloge numérique du temps
Serial.Print(Hour()) ;
printDigits(minute()) ;
printDigits(second()) ;
Serial.println() ;
}
Sub printDigits(int digits)
{
Serial.Print(":") ;
if(digits < 10)
Serial.Print('0') ;
Serial.Print(digits) ;
}
code pour strip LED
void colorChase (uint32_t c, uint8_t attente) {}
int i ;
pour (i = 0; i < strip.numPixels(); i ++) {}
strip.setPixelColor (i, 0) ;
}
pour (i = 0; i < strip.numPixels(); i ++) {}
strip.setPixelColor (i, c) ;
}
Strip.Show() ;
Delay(Wait) ;
}