Julgran PCB (5 / 7 steg)
Steg 5: Programmering & kod
Jag använde en programmerare som USBtiny. Känn dig fri att använda vad du har tillgängliga. Jag tror du kan använda en arduino som ISP om du inte har en AVR programmerare händig. Jag såg inte till arduino kod eller ens om arduino kan programmera attiny13's. Jag kan tänka mig kan det bra ändå.Koppla in programmeraren att matcha konfigurationen i föregående steg.
Du behöver den hex filen (jag fäst det i zip-filen så kan du hämta det). Eller du kan också kompilera det själv om du vill ändra koden. Om du inte vet vilken programvara du använder, kan du alltid använda gratisprogrammet Atmel Studio 6 .
Koden använder i princip XOR flip / flop staten led. Väljer det som ledde till flip baserat på ett slumpmässigt nummer modulus 3. Detta sätt lysdioder kan vara på samtidigt som var och en har sina egna random chansen att bo. Det gör en flip / beslut flop sekunders x där x är en annan slumptal. Jag vet att det är meningslöst, men det också blandar utsäde varje gång det loopar. Så använder den fortfarande den samma slumpmässiga nummer varje gång det blir aktiverat. Ett bättre sätt vore att läsa indata från pin 3 eller 2 (PB3 eller PB4, respektive).
Koden är ganska enkelt:
#include < avr/io.h >
#include < util/delay.h >
#include < stdlib.h >
int main(void)
{
DDRB = 1 << PB0;
DDRB | = 1 << PB1;
DDRB | = 1 << PB2;
PORTB = 0;
int n;
While(1)
{
n = ((n+57) * 13) % 10057;
srand(n);
int r = rand () %3;
om (r == 0) PORTB ^ = 1 << PB0;
om (r == 1) PORTB ^ = 1 << PB1;
om (r == 2) PORTB ^ = 1 << PB2;
int r3 = rand () % 10.
för (int t = 0; t < r3; t ++) {_delay_ms(75);}
}
Return 0;
}