Stap 7: Arduino Code
Hieronder is de code die ik voor de Arduino Uno gebruikte.
Ik heb nooit gedaan eventuele codering alvorens te spelen rond met de Arduino, zodat ben ik zeker dat het is niet perfect. Er zijn ongetwijfeld meer elegante manieren om hetzelfde resultaat maar dit werkt.
In de toekomst ga ik tweak van de code om te doen dingen als willekeurige kleuren of andere kleureffecten toevoegen. Ik zou ook toevoegen wat code ter verantwoording voor de veranderingen in daglicht en zomertijd.
Voor nu is de cijfers oplichten van elke nacht met een andere kleur. En elke ochtend gaan ze af.
Hier is de code:
Huis nummers schets
de schets wordt gestart door het instellen van de tijd voor zaterdag om 18:00
elke avond om 18:00 de lichten zal gaan over en weer de
kleur voor de nacht
elke ochtend om 6:00 zal de lichten afgaan
#include "LPD8806.h" //library voor LPD8806 LED-strip
#include "SPI.h"
int dataPin = 2;
int clockPin = 3;
LPD8806 strip = LPD8806 (32, dataPin, clockPin);
#include < Time.h > //this is vereist om de mogelijkheden van de tijd
#include < TimeAlarms.h >
VOID Setup
{
Opstarten van de LED-strip
strip.begin();
Update van de strip, om te beginnen zijn ze allemaal 'uit'
strip.show();
Serial.begin(9600);
setTime(18,00,0,1,1,11); tijd instellen tot zaterdag 18:00 Jan 1 2011
maken van de alarmen
Alarm.alarmRepeat(dowSaturday,18,00,10,SaturdayOn); Hiermee stelt u het eerste alarm om elke zaterdag 18:00:10
Alarm.alarmRepeat(dowSunday,06,00,00,SundayOff); tweede alarm lichten uit 6:00 AM
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); Wacht één seconde tussen weergave van de klok
}
functies moet worden aangeroepen wanneer een alarm wordt gegenereerd:
VOID SaturdayOn() {}
colorChase (strip. Color(0,127,127), 1000); op zaterdag inschakelen alarm en weergave van deze kleur
}
VOID SundayOff() {}
colorChase (strip. Color(000,000,000), 1000); op zondagochtend uitschakelen strip
}
VOID SundayOn() {}
colorChase (strip. Color(127,15,30), 1000);
}
VOID MondayOff() {}
colorChase (strip. Color(000,000,000), 1000);
}
VOID MondayOn() {}
colorChase (strip. Color(20,127,20), 1000);
}
VOID TuesdayOff() {}
colorChase (strip. Color(000,000,000), 1000);
}
VOID TuesdayOn() {}
colorChase (strip. Color(20,0,127), 1000);
}
VOID WednesdayOff() {}
colorChase (strip. Color(000,000,000), 1000);
}
VOID WednesdayOn() {}
colorChase (strip. Color(90,20,90), 1000);
}
VOID ThursdayOff() {}
colorChase (strip. Color(000,000,000), 1000);
}
VOID ThursdayOn() {}
colorChase (strip. Color(10,95,120), 1000);
}
VOID FridayOff() {}
colorChase (strip. Color(000,000,000), 1000);
}
VOID FridayOn() {}
colorChase (strip. Color(0,85,85), 1000);
}
VOID SaturdayOff() {}
colorChase (strip. Color(000,000,000), 1000);
}
VOID digitalClockDisplay()
{
digitale klokweergave van de tijd
Serial.Print(Hour());
printDigits(minute());
printDigits(second());
Serial.println();
}
VOID printDigits(int digits)
{
Serial.Print(":");
if(digits < 10)
Serial.Print('0');
Serial.Print(digits);
}
code voor LED-strip
VOID colorChase (uint32_t c, uint8_t wachten) {}
int i;
voor (ik = 0; ik < strip.numPixels(); i ++) {}
strip.setPixelColor (i, 0);
}
voor (ik = 0; ik < strip.numPixels(); i ++) {}
strip.setPixelColor (i, c);
}
strip.show();
delay(wait);
}