Flux lampa (4 / 5 steg)
Steg 4: Programmera Arduino
För programmering del av våra projekt skrev vi en Arduino program till:
- automatiskt justera temperatur och ljusstyrka av LED-baserade på tid på dagen
- användaren kan ställa in aktuell timme och minut med pekskärmen och uppdatera realtidsklocka
- Visa aktuell tid på huvudmenyn
- användaren kan ange när de vaknar med hjälp av pekskärmen
- Låt användaren justera lägsta och högsta färgtemperatur och LED ljusstyrka med hjälp av pekskärmen
- lagra användarens inställningar på Arduinoen EEPROM så de kan hämtas efter makt är frånkopplad
Vår kod bygger på följande bibliotek:
- Adafruit GFX bibliotek (mer info här)
- Adafruit ILI9341 bibliotek (detta är specifika för skärmen vi använt - något mer info här)
- ILI9341_due bibliotek (detta lagt till funktioner i Adafruit biblioteket och är betydligt snabbare - mer info här)
- Adafruit FT6206 bibliotek (detta är specifika för den kapacitiva pekskärmen vi använt - mer info här)
- SdFat bibliotek (mer info här)
- Adafruit RTClib (mer info här)
- och en hel massa Arduino standardbibliotek (mer info här)
Observera att ILI9341_due biblioteket har utformats för Arduino Due. Medan den går ganska fort på Arduinos mindre kraftfull än Due, kan det fortfarande ta upp mycket utrymme beroende på vilka funktioner som du använder. Tyvärr, detta orsakade vår kod kräver ca 44KB flash. Detta innebär att det bara passar på Arduino Due, Mega och noll. Dock om du kan ändra vår kod för att använda olika grafik bibliotek, ska sedan det passa på nästan alla Arduino (detta inte skulle vara trivialt, ändå).
Om du vill använda koden skrev vi för vårt projekt, kan du hämta filen bifogas nedan. Observera att vi ansluten CS, D/C och CCS stiften på pekskärmen till olika pins på Arduino än de som angetts i Adafruit guide (även placeringen fungerar bra på Uno, det är mindre bekvämt på Mega). Du kan uppdatera vilket stift som används av koden genom att ändra variablerna CS_PIN, DC_PIN och CCS_PIN finns på runt linje 40. Du måste också hämta särskilda bitmappen förutsatt (som bör döpas om till "colors.bmp"), kopiera den till ett MicroSD-kort, och sätta in MicroSD-kortet i pekskärmen för allt att arbeta. Observera att förhandsgranskningen av bilden kan titta konstigt på grund av särskilda formatet vi (se avsnittet "Läser in bilder från ett SD-kort" här).
Vi vill tacka Tanner Helland för att utveckla kod att konvertera färgtemperaturer till RGB-värden, som räddade oss från att parameterstyra detta själva. Du kan hitta hans inlägg i ämnet här.