Intelligent belysningssystem för terrarier/akvarier (5 / 6 steg)
Steg 5: Förstå programmet
Ladda ner programmet fäst och öppna upp så att du kan referera till den som jag diskutera varje del.
Programmet kopplar fall på knappen knuffas. Därför det förskott på nästa fallet när knappen trycks. När i fallet 0 är bicolor ledde röd för att indikera att det är inaktivt. När knappen trycks och läget ändras, det blinkar grönt och stannar utanför.
Lägen
1.) varmt vitt ljus
Detta är i grunden en enkel varmt vitt ljus.
2.) dag/natt cykel
Detta måste vara min favorit läge ur dem alla och som jag tillbringade mest tid på. Därför ska jag spendera lite tid att bryta ner hur det fungerar. Men först, titta på accelererad video för att få en uppfattning om hur det kommer att fungera. Den faktiska versionen helt enkelt sträcker sig detta ut över 12 timmar från 7 11.00 till 19.00. Systemet använder en realtidsklocka (RTC) modul för att hålla tiden även när strömmen är avstängd. Detta undviker komplikationer med att använda en cykel bygger bort dygnsrytmen eftersom det skulle innebära att användaren måste aktivera systemet vid en exakt tidpunkt för att det ska fungera.
Först och främst var det största problemet som jag var tvungen att lösa här att säkerställa smidig övergång mellan färgerna samt stretching dem jämnt över varje timme perioder. Den svåra biten var blekning varje ledde uppåt och nedåt mellan olika värden samtidigt samtidigt att PWM värden skulle mappas till sekunder varje timme. Det var också nödvändigt att se till att justeringar av färger kan göras enkelt. Efter fumla runt med den atmega328 inre timers för att uppnå en högre PWM var upplösning och med avbrott, bestämde jag mig mot detta synsätt eftersom jag tyckte att det onödigt.
Så småningom, jag insåg jag overthinking hela och jag lyckades räkna ut en mycket enklare och effektivare strategi. Programmet kontrollerar tiden ständigt och och beräknar skillnaden i ljusstyrka mellan varje LED. Då uppdateras varje ledde med PWM värdet som bör det då i timmen. Det är ganska svårt för mig att förklara som programmet gör några små justeringar att hålla övergången smidig. Det vore bäst att kontrollera koden för ytterligare detaljer. Detta tillvägagångssätt i princip tillåter användaren att slå på systemet när som helst utan att det påverkar den dag/natt cykeln.
Val av färg
Efter att ha tillbringat en hel del tid framför timelapses soluppgångar och solnedgångar, jag bestämde mig på en färgpalett som replikerar processen så noggrant som jag kunde få den. Cykeln börjar vid 7: 00 på morgonen och slutar vid 19.00. Det övergångar mellan färg gradvis genom dagen. Det omfattar totalt fem sekvenser, twilight, sunrise, noon, solnedgång och skymning. Efter 19: 00 blir systemet lamporna röd att efterlikna mörker för myror fördriva tiden tillåt för fortsatt observation på natten.
Om du använder detta för ett akvarium eller terrarium, kan du ändra den "natt" fasen efter dina behov. Jag föreställer mig ljusblå skulle vara trevligt men det är till dig.
3.) lyhörd belysning
Detta läge justera ljusnivån baserat på omgivande belysning så ljusstyrkan alltid står kvar på en bekväm och inte är alltför svagt eller bländande ljus. Som det blir mörkare, blir belysningen mörkare också. Ändra till din smak.
En LDR är anställd här i en spänningsavdelare att mäta ljusstyrkan för omgivande ljus som sedan används för att beräkna en lämplig ljusstyrka för de led strips. Detta är läget använder jag oftast när den är inte i dag/natt cykel.
4.) random RGB blekning
Detta läge övertoningar mellan ett slumpmässigt urval av färger smidigt. LEDFader biblioteket används här för att jämna ut den blekning processen och det ser mycket trevligt. Detta visas i videon också.