Den mörka tiden har kom... (3 / 6 steg)
Steg 3: Programvaran...
För programmering av mikrokontroller använde jag den "Arduino: IDE.
Hur man programmerar Attiny marker genom att använda "Arduino" kan ses här. Jag har bifogat de nödvändiga bibliotek. Källkoden är också fäst. Jag har använt följande styrelse konfiguration för sammanställningen: Attiny84 (inre 1MHz klocka) från menyn styrelser, vilka visas efter korrekt installation av "attiny-master" bibliotek. . Efter att sammanställa källkoden, måste den kompilerade "hex" filen brännas i chipet. Föregående länk visar hur chip ska anslutas. Jag använde USBtinyISP programmerare för bränning. Hur bränna filen "hex" kan ses här. Om du har inte lämplig programmerare - du kan prova detta. Efter bränning "hex" filen, måste säkringarna av mikrokontroller anges. Här kan du beräkna önskad säkringar värdena. Jag har använt följande:
Låg 62
Hög DF
Extended FF
Säkringen bränningen beskrivs i länkarna ovan (samma för bränning av filen "hex")
Det inbäddade videoklippet visar inställningarna för bränning och testning av chipet.
Jag vill lägga några extra ord om koden. Det finns två nummer, som används för tröskelvärdena för att växla ON och stänga av enheten. Värdet OFF är 20-40 enheter mindre då värdet ON. Detta skapar vissa hysteres och i denna buller vägen immunitet.
Hur definiera värdet ON?
Du bör sätta trimmer-potentiometern till ett mellersta värde. Efter det bör du mäta spänningsfallet över LDR i nivå med låg intensitet, som du vill använda som den enhet början arbeta. Numret för inkoppling av enheten du kan beräknas på följande sätt
Val = Vldr * 1024/Vsup; där Vsup är utbudet av gå i flisor (i vårt fall 5 V) och Vldr är det uppmätta spänningsfallet över LDR.
Det kan ses att enheten har 3 lägen kontrolleras av 3-positionella slide switch:
1) "OFF" - enheten levereras, men det finns inte någon funktion - röd "Power-LED" är på;
2) "Aktiv" - enheten fjärranalys ljusintensiteten och om det sjunker under tröskeln - det börjar att utlösa lysdioder modulerande slumpmässigt deras intensitet genom användning av PWM för slumpmässiga tidsperioder. I detta läge är det röda "Power LED" på. En vit ledde till höger anger att enheten är klar.
3) "Tvungen" - lysdioder växla självständigt på ljusnivån.
För att göra någon form av verkligt slumptal en analog sinnen ingång kan ändras med tiden potentiella i föreliggande samtrafik mellan båda resistorer R14 och R13. Detta görs genom följande kommando rad:
randomSeed(analogRead(4));
Resistorn R14 kan utelämnas och i så fall denna punkt är överbryggas på försörjningen genom R13. Detta ändras inte vettig prestanda.