Stap 6: Magic
De truc om de 1-pin-systeem is dat analoge pin 2 in Arduino Tiny is hetzelfde als digitale pin 4, dus we de dezelfde LED als een sensor en een uitgang gebruiken kunnen. Je kan hetzelfde doen met een analoge pin van een Arduino, maar het zou werken onze nogal duur!
Wanneer we de AVR opstart lopen we de "setup"-routine, die de spanning gegenereerd op basis van licht raken van de LED meer dan 40 seconden meet, met behulp van code die vergelijkbaar is met die tijdens de "lus" routine gebruikt. Wij nemen het gemiddelde van deze als de drempel van de duisternis en 128 waarden meten. Dit betekent dat we niet hoeven te weten van de eigenschappen van de LED op voorhand. Zolang het produceert een signaal dat we moeten kunnen gebruiken.
Elke keer dat de macht wordt verwijderd of de chip wordt teruggesteld zullen we deze drempel sensing routine weer lopen. Dus als de chip wordt ingesteld tijdens de nacht om welke reden het kan leiden tot een drempel die zelden zal worden overschreden. Even als het herstelt in het zonnetje zou dan het licht waarschijnlijk blijven op de hele tijd. Het leven is vol gevaar.
We kunnen eventueel de drempelwaarde schrijven naar EEPROM maar als we dat deden dan we alleen een schot krijgen zou bij het maken van de verbinding van de batterij. Een verdere ontwikkeling zou op korte twee pinnen (bijvoorbeeld pin 7 (PB2) verbinding te maken met VCC) totdat we tevreden met onze drempel bent en vervolgens snip die pin om te voorkomen dat verdere EEPROM schrijft. Ik kan werken aan een update van die soort.
Als u geslepen ideeën hebt dan i's houden om ze te horen.
Nu, om te werken neen de volgende versie - Throwduino RGB, ik verwacht!