Alors j’ai essayé les Attiny45 avec Arduino de programmation, comme je l’avais déjà dans mon tiroir. Comment faire cela (ou ATtiny85) vous pouvez lire de l’article original de MIT ou une instructable par randofo.
C’est juste une inégale fade in et out script.
Le ATtiny possède trois entrées et un autre goupille PWM inutilisé et il y a beaucoup de place sur le veroboard si j’ajouterais quelque chose pour elle à l’avenir. Par exemple un capteur, une secousse pourrait rendre « beat » plus rapidement.
J’ai choisi une pile au lithium de 3V avec plus haut ampères heure disponible, comme la plupart d'entre eux avaient même prix. Qui se trouvait être CR2430 qui est assez grande taille. ATtiny travaille sur les tensions entre 2,7 et 5.5 le 3V est donc parfait. Commutateur et le support de batterie sont totalement improvisées.
Le support de batterie : je me suis arrangé la broche de terre du ATtiny et LED terrestre de broche à bandes sur le veroboard qui sont relativement centré. Ensuite, j’ai soudé un fil (une coupure de jambe de composant) plié en forme de U dans les trous dans ces rails au sol. Puis j’ai percé un morceau de carton avec les extrémités du vous et plier les extrémités vers le bas - le carton isole terrain batterie du reste de la veroboard, seulement les deux fil percé extrémités faire contact. Puis j’ai plié un fil plus mince pour s’adapter sur la batterie et soudé à ses extrémités aux coins de veroboard. La batterie est resté en dessous assez bien, mais en outre j’ai fixé avec un élastique.
L’interrupteur est une simple imprudence de torons, dépouillé, étamé et rendu plus robuste avec une longueur de gaine thermorétractable, qui peut être rentrée entre la batterie et c' est un câble holding. Pour une raison quelconque, il n’y a aucun petit commutateur à bas prix en magasin, alors j’ai enregistré quelque argent et chambre avec qui.
Le code ATtiny :
/* "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 }