Stap 2: Code
De ATtiny2313 heeft slechts 2000 bytes van flitsgeheugen beschikbaar, maar deze schets heeft 2572 bytes.
Dus hoe krijgen we alles wat er is?
We commentaar uit alle seriële communicatie in de schets.
Deze 3 coderegels nam een maar liefst 1438 bytes van flash die niet worden gebruikt in het voltooide project anyway.
Gebruik de seriële communicatie wanneer u met je Arduino board test.
Later wanneer de schets is overgedragen aan de ATtiny2313, commentaar van de seriële out.
Met de serie uitgecommentarieerd- en de code die wij voor dit project toevoegen zullen de schets grootte worden alleen 1324 bytes totaal.
Groot zijn wij uitdagend onder de maximale limiet van 2000 bytes.
Deze sketch komt uit ladyada, maar heeft een 2 min vertraging toevoegen door mij.
/ * PIR sensor tester * /
int ledPin = 9; Aantal van de SPELD van de chip is 12. Kies de pin voor de LED
int inputPin = 11; Chip Pin straat is 14. Kies de invoer pin (voor PIR sensor)
int pirState = laag; We beginnen, ervan uitgaande dat geen bewegingsdetectie
int val = 0; variabele voor het lezen van de Pinstatus
VOID Setup {}
pinMode (ledPin, OUTPUT); declareren van LED als de uitgang
pinMode (inputPin, INPUT); sensor declareren als input
Serial.begin(9600);
}
void loop {}
Val = digitalRead(inputPin); lezen van de invoerwaarde
Als (val == HIGH) {/ / controleren als de ingang hoog is
digitalWrite (ledPin, hoge); Zet LED ON
Als (pirState == LOW) {}
We hebt zojuist ingeschakeld
Serial.println ("bewegingsdetectie!");
Wij willen alleen afdrukken op de uitvoer veranderen, niet staat
pirState = hoog;
delay(120000); <<<<<<<<<<< Deze vertraging is toegevoegd met het geven van ons de 2 minuten LED op tijd - verandering zo nodig
}
} else {}
digitalWrite (ledPin, laag); uitschakelen LED
Als (pirState == HIGH) {}
We hebben net draaide van
Serial.println ("Motion eindigde!");
Wij willen alleen afdrukken op de uitvoer veranderen, niet staat
pirState = laag;
}
}
}