8-bitars Arduino hjärtans hjärta (5 / 5 steg)
Steg 5: Koppla in det hela i och ladda firmware
Nu bör åtta bitars hjärtat nu redo att koppla in och ladda upp firmware. Bifogade skissen pulser bara hjärtat upp och ner. Om du har kopierat min design och skriver din egen skiss Tänk på att jag har valt motstånd med lägre ohm än lamporna klarar över en lång tidsperiod. Så om du lämnar alla LED på under en längre tid finns en god chans ska du förstora den. Enkel tumregel: hålla det flytta och hålla mindre än 1/3 lit och du _should_ vara ok (åtminstone det är min uppfattning, rätta mig om jag har fel).
8 bitar hjärta Arduino skiss:
8 bitar hjärta slå
En skiss att köra på de 8 Bit hjärta med anpassade madas timing
och anpassningsbara lysdioder för lätt ordna, som jag behövde.
Av: PuZZleDucK
Licens: GPL3
Datum: 28/01/2014
int arraySize = 17; Antal lysdioder i ditt hjärta... mer medel du älskar mig.
int ledArray [17] = {4,3,2, A0, A1, A2, A3, A4, A5, 12, 11, 10, 9, 8, 7, 6, 5}; Observera "Europeiska" stil med början vid 4.
flyktiga länge = 0; Galning timing...
void setup() {/ / precis som alla våra pins till utgång
för (int jag = 0; jag < arraySize; i ++) {
pinMode (ledArray [i], produktionen);
}
}
void loop() {
tid ++; Advance tid index
om (tid == 2147483647L) {
tid == 0; Slutet, nära början.
}
Med hjälp av modula arithmatic för att lysa upp oposing lysdioder
digitalWrite (ledArray [arraySize-((time-1) % arraySize) -1], hög);
digitalWrite (ledArray [tid % arraySize], hög);
Delay(50); Du kanske tror 100 kan vara mer romantiskt, men jag hittade 50 vara en fin balans mellan tråkigt och beslag förmå.
digitalWrite (ledArray [arraySize-((time-1) % arraySize) -1], låg);
digitalWrite (ledArray [tid % arraySize], låg);
} //loop
Jag använde detta för felsökning... Jag ber att du aldrig behöver det.
men om du gör det är bra så här: blinkN (tid % arraySize, tid % arraySize + 1); Detta kommer att blinka varje stift i sin tur med ett eget löpnummer.
void blinkN (int pin, int räkna) {
för (int jag = 0; jag < greve; i ++) {
digitalWrite (pin, hög);
Delay(100); Du kanske tror 50 skulle vara snabbare... men jag kan inte räkna så fort: p
digitalWrite (pin, låg);
Delay(100);
}
} //blinkN