Dus probeerde ik Attiny45 met Arduino programmeren als ik beide al in mijn lade hadden. Hoe dat te doen (of ATtiny85) u kan lezen van MIT originele artikel of een instructable door randofo.
Het is gewoon een ongelijke fade in- en uitzoomen script.
De ATtiny heeft drie ingangen en een ander PWM pin ongebruikte en er is voldoende ruimte op de klemmenstrook zodat ik iets aan het in de toekomst toevoegen misschien. Bijvoorbeeld een sensor, een schok kan maken "beat" sneller.
Ik koos voor een 3V lithiumbatterij met hoogste amphours beschikbaar, zoals de meeste van hen dezelfde prijs hadden. Die toevallig CR2430 thats vrij grote formaat. ATtiny werkt op spanningen tussen 2.7 en 5.5, zodat de 3V perfect is. Batterijhouder en schakelaar zijn volledig geïmproviseerde.
De batterijhouder: Ik regelde de ATtiny grond pin en LED de grond pin te strippen op de klemmenstrook die relatief zijn gecentreerd. Dan ik een draad (een afgesneden component been) in een U-vormige door openingen in deze grond rails gebogen gesoldeerd. Dan ik een stuk karton met de uiteinden van de u doorboord en gebogen de uiteinden - het karton batterij grond uit de rest van de klemmenstrook, alleen de twee isoleert doorboorde draad einden maken contact. Toen ik gebogen een langer dunne draad te passen over de batterij en de uiteinden aan de hoeken van de klemmenstrook gesoldeerd. De batterij bleef onder het vrij goed, maar bovendien ik het beveiligd met een rubberband.
De schakelaar is een eenvoudige losse einde van gestrande draad, ontdaan, vertind en steviger met Kabelbinder buis, die kan worden geplooid tussen de accu en het bedrijf draad gemaakt. Voor sommige reden waren er geen schakelopties voor kleine goedkope in winkel, dus ik gered wat geld en kamer mee.
De ATtiny-code:
/* "Alien's heart" for Attiny45 (or 85). Derived largely from "Fade" sketch. by liba_hunt */ int brightness = 0; // variable for current LED brightness const int fadeAmount = 5; // brightness change step size boolean middlebeat = true; //variable to indicate if a quicker fade-in-out should be done next int del = 40; //variable for delay time between change of brightness void setup() { pinMode(0, OUTPUT); //ATtiny45 (or 85) has pins 0 and 1 for PWM (analogWrite) } void loop() { analogWrite(0, brightness); //LED on a current brightness brightness = brightness + fadeAmount; //set next brightness level if (brightness == 255) { fadeAmount = -fadeAmount;//reverse direction of brightness change if (middlebeat == true) {//if quicker fade-off phase starting del = 2; //set delay shorter } else {//if slower fade-off phase starting del = 40; //set delay longer } } if (brightness == 0) { fadeAmount = -fadeAmount;//reverse direction of brightness change if (middlebeat == true) { //if in the middle of quicker fade-on phase middlebeat = false; //set middlebeat to false to indicate it's done } else { //if in the middle of slower fade-on phase middlebeat = true; //set middlebeat to true to indicate the quicker phase has to start next } } delay(del);//delay between change of LED brightness }