Motion Sensing mikroprocessor kontrolleras Night Light (2 / 7 steg)
Steg 2: kod
ATtiny2313 har endast 2000 byte av blixt minne tillgängligt, men denna skiss har 2572 byte.
Så hur får vi allt som finns?
Vi kommentera ut alla seriell kommunikation i skissen.
Dessa 3 rader kod tog upp en jättestor 1438 byte av flash som inte används i det avslutade projektet ändå.
Använd den seriell kommunikationen när du testar med din Arduino ombord.
Senare när skissen överförs till ATtiny2313, kommentera den seriella ut.
Med följetongen kommenteras ut och vi kommer att lägga till detta projekt-koden blir skiss storleken bara 1324 byte totalt.
Bra vi är trotsigt under 2000 byte max gränsen.
Denna skiss är från ladyada, men har en 2 min försening lägga av mig.
/ * PIR sensor testare * /
int ledPin = 9; Chip Pin-kod är 12. Välj den PIN-kod för LED
int inputPin = 11; Chip Pin much är 14. Välj ingångsstift (för PIR-sensor)
int pirState = låg; Vi börjar, förutsatt att ingen rörelse upptäcks
int val = 0; variabel för att läsa pin status
void setup() {
pinMode (ledPin, produktionen); deklarera LED som utdata
pinMode (inputPin, ingång); deklarera sensor som indata
Serial.BEGIN(9600);
}
void loop() {
Val = digitalRead(inputPin); Läs indatavärde
om (val == hög) {/ / kolla om ingången är hög
digitalWrite (ledPin, hög); slå LED
om (pirState == låg) {
Vi har bara aktiverat
Serial.println ("Motion upptäckt!");
Vi vill skriva ut på utgång ändra, inte
pirState = hög;
Delay(120000); <<<<<<<<<<< Denna försening har lagts till att ge oss den 2 minuten LED i tid - förändring som behövs
}
} annat {
digitalWrite (ledPin, låg); Inaktivera LED
om (pirState == hög) {
Vi har just fyllt av
Serial.println ("Motion slutade!");
Vi vill skriva ut på utgång ändra, inte
pirState = låg;
}
}
}