Glödande "alien's heart"
Så provade jag programmering Attiny45 med Arduino som jag hade båda redan i min låda. Hur man gör det (eller ATtiny85) kan du läsa från MIT ursprungliga artikeln eller en instructable av randofo.
Det är bara en ojämn tona in och ut skriften.
ATtiny har tre ingångar och en annan PWM stift oanvända och det finns gott om utrymme på stripboard så kan jag tillägga något till det i framtiden. Till exempel en sensor, en skaka kunde göra det "beat" snabbare.
Jag valde ett 3V litiumbatteri med högsta amphours tillgängliga som de flesta av dem hade samma pris. Som råkade vara CR2430 som är ganska stor storlek. ATtiny fungerar på spänningar mellan 2,7 och 5,5 så 3V är perfekt. Batterihållare och omkopplare är helt improviserad.
Batterihållaren: jag Attiny's ground pin och LED är marken stift till remsor på stripboard som är relativt centrerade. Sedan lödas jag en tråd (ett snitt av komponent benet) böjd till en U-form genom hål i dessa förankringsskenorna. Då jag genomborrat en bit kartong med ändarna av du och böjda ändarna ner - papp isolerar batteri marken från resten av stripboard, bara de två piercade tråd ändarna göra kontakta. Då jag böjde en längre tunn tråd att passa över batteriet och lödda dess ändar i hörnen av stripboard. Batteriet stannade under det ganska bra, men dessutom jag säkrade det med ett gummiband.
Växeln är en enkel lösa änden av tvinnad tråd, avskalade, konserverad och gjorts robustare med krympslang slang, som kan vara undangömt mellan batteriet och det är anläggningen tråd. Av någon anledning fanns det inga små billiga växlar i butik, så jag sparade lite pengar och rum med det.
ATtiny kod:
/*
"Alien's heart" för Attiny45 (eller 85).
Härrör huvudsakligen från "Fade" skiss.
av liba_hunt
*/
int ljusstyrka = 0; variabel för nuvarande LED ljusstyrka
CONST int fadeAmount = 5; ljusstyrka ändra stegstorlek
booleska middlebeat = sant; variabel för att ange om en snabbare Fade-in i ut bör göras härnäst
int del = 40; variabel för fördröjningstiden mellan förändring av ljusstyrka
void setup() {
pinMode (0, OUTPUT); ATtiny45 (eller 85) har stift 0 och 1 för PWM (analogWrite)
}
void loop() {
analogWrite (0, ljusstyrka); LED på en nuvarande ljusstyrka
ljusstyrka = ljusstyrka + fadeAmount; Ange nästa ljusstyrkan
om (ljusstyrka == 255) {
fadeAmount = - fadeAmount; //reverse riktning mot ljusstyrka förändring
om (middlebeat == true) {//if snabbare fade-off fasen börjar
del = 2; Välj fördröjn kortare
}
annat {//if långsammare fade-off fasen börjar
del = 40; Välj fördröjn längre
}
}
om (ljusstyrka == 0) {
fadeAmount = - fadeAmount; //reverse riktning mot ljusstyrka förändring
om (middlebeat == true) {//if mitt i snabbare fade-på fas
middlebeat = false; Ange middlebeat till false anger det görs
}
annat {//if mitt i långsammare fade-på fas
middlebeat = sant; Ange middlebeat till true för att ange den snabbare fasen har att starta nästa
}
}
fördröjning (del); //delay mellan förändring av LED ljusstyrka
}