Stap 1: Ontwerp en Circuit.
1 x ATtiny26L-8PU (~ 2$)
1 x TL780 5v spanningsregelaar (~ 0,7$)
1 x N2222 transistor (~ 0.07$)
1 x 9v batterij of 12v batterij van de afstandsbediening om ruimte te besparen
.. .en natuurlijk mijn trouwe STK500, nu met ZIF sockets toegevoegd!
Het basisontwerp is dit: de microcontroller gaat door twee lussen van de timing. Een lange lus om te bepalen wanneer het inschakelen van het apparaat, en een korte lus om te bepalen hoe lang het apparaat om op te houden. Wanneer is het tijd om de problemen veroorzaken, stuurt de microcontroller een logica hoge uit pin 14 (minst significante bits van PORTA). Dit branden de transistor.
Als u de klemmen op de leads op een switch hebt aangesloten, wordt het de weerstand over de overstap naar plotseling dalen van zeer hoge tot minder dan 1 ohm, die voldoende is voor de meeste apparaten te overwegen van de schakeloptie op. Houd in gedachten dat transistoren ook dioden, zijn dus als het werkt niet... de polariteit van de klemmen waarschijnlijk verkeerd is, schakelen ze! Ook dit apparaat vereist een fatsoenlijke 9v batterij, zeggen met over 8v potentiële linker... anders dan dat het veel macht niet gebruiken.
Er zijn een heleboel ongebruikte pinnen, dus natuurlijk zou u hen om meer schakelopties voor meer chaos, maar dit was voldoende voor mijn doeleinden.
De volgende stap is de broncode die ik heb geschreven om dit ding gaan. De standaard lengtes voor de "on" en "uit" Staten ongeveer 10 seconden en 13 minuten respectievelijk zijn. Er zijn opmerkingen in de code op het wijzigen van deze waarden.
Ten slotte, gelieve te excuseren het uitgebreide gebruik van de "nop"-functie (het besteedt een cyclus van de CPU niets doen) aan tweak de timers. Het is onbevallig aangezien het de rjmp functie breken kan als je niet oppast over hoeveel u gebruikt!