En soluppgång och solnedgång lampa med lysdioder (5 / 7 steg)
Steg 5: Anpassa programvaran
Picaxes är mycket bra för nybörjare eftersom kraven för att hårdvaran är mycket enkla och basic-språket är lätt att lära. Med mindre än 30€ kan du börja utforska den underbara världen av mikrokontroller. Nackdelen med detta billigt chip (18M) är begränsade RAM.
Om du har valt andra funktioner eller ansluta de olika picaxe kan du behöva justera programmet. Men visst du kommer att behöva göra justeringar i övergångarna mellan de enskilda remsorna.
Som ni kan se i noteringen den variabla w6 (ett word-variabel) fungerar som en counter-variabel och som parameter för PWM. Med valt PWM-frekvens på 4kHz värdena för 1% till 99% tjänstgöringstid är 10 till 990 respektive. Med beräkningarna i slingan får vi en nästan exponentiell minskning eller ökning av LED-ljusstyrka. Detta är den optimala när du styra lysdioder med PWM. När du växlar på eller av en remsa, kompenseras detta av programvaran genom att ändra värdet för PWM.
Till exempel låt oss titta på solnedgången. Inledningsvis utgångar 0, 4 och 5 kopplas högt, det betyder respektive remsorna är påslagna via ULN2803A. Sedan minskas loopen ljusstyrkan tills variabeln i w6 är mindre än 700. På denna punkt pin0 slås lågt och pin2 slås hög. W6 är nya värdet till 900.
Detta innebär att lampan med band 0, 4 och 5 på PWM-nivå 700 är nästan lika ljusstark som lampan med remsor 2, 4 och 5 på PWM-nivå 800. För att ta reda på dessa värden måste du testa runt och prova lite olika värden. Prova att bo någonstans i mitten, eftersom när du svagt ner lampan i den första öglan för mycket, inte kan du göra mycket i den andra slingan. Detta kommer att minska den färg-förändring-effekten.
Om du vill justera PWM-inställningar använde jag en subrutin som också använder värdet av w5 för att pausa programmet. Vid denna punkt kommer hastigheten i spelet. Bara under start potentiometern är markerad och värdet lagras i w5. Antalet steg i varje slinga av programmet är fasta, men genom att ändra värdet för w5 från 750 till ca 5100, paus i varje steg ändras från 0.75s till 5s.
Antalet steg i varje slinga kan också justeras genom att ändra fraktionen för exponentiell de- eller öka. Men se till att inte använda till små fraktioner, eftersom den variabla w6 är alltid ett heltal! Om du vill använda 99/100 som ett bråk och gälla som ett värde på 10, som skulle ge dig 9,99 i decimaler men återigen 10 i heltal. Också hålla i åtanke att w6 kan inte överstiga 65325!
För att påskynda testningen, försöka kommentera ut raden med w5 = 5 * w5, detta kommer att snabba upp programmet med faktorn 5! :-)