Satura rādītājs:

Vairākas elektroniskās sveces: 3 soļi
Vairākas elektroniskās sveces: 3 soļi

Video: Vairākas elektroniskās sveces: 3 soļi

Video: Vairākas elektroniskās sveces: 3 soļi
Video: Kā izveidot eParaksts mobile ar eID karti 2024, Novembris
Anonim
Vairākas elektroniskās sveces
Vairākas elektroniskās sveces

Elektroniskās sveces ir daudzkārt publicētas vietnē Instructables, tad kāpēc šī?

Mājās man ir šīs mazās daļēji caurspīdīgās Ziemassvētku mājas, kurām ir LED ieskats un maza baterija. Dažās mājās ir gaismas diodes ar sveces efektu, un dažās ir tikai iedegtas gaismas diodes. Mazās baterijas izlādējas salīdzinoši ātri, un, tā kā es gribēju visās mājās radīt sveces efektu, es nolēmu to padarīt par PIC projektu. Protams, jūs varat to pārvērst arī par Arduino projektu.

Kas tad padara šo elektronisko sveci īpašu? Visi PIC un Arduino ir aprīkoti ar pulsa platuma modulācijas (PWM) aparatūru, ko var izmantot, lai radītu sveces efektu, izmantojot LED, bet manā gadījumā es gribēju, lai būtu 5 neatkarīgas elektroniskas sveces, izmantojot vienu kontrolieri, bet vismaz nav ko es zinu. Risinājums, ko izmantoju, ir programmatūrā pilnībā izveidot šos piecus neatkarīgos PWM signālus.

1. darbība: impulsa platuma modulācija programmatūrā

Pulsa platuma modulācija ir aprakstīta vairākas reizes, piem. šajā Arduino rakstā:

PIC un Arduino ir aprīkota ar īpašu PWM aparatūru, kas vienkāršo šī PWM signāla ģenerēšanu. Ja mēs vēlamies programmatūrā izveidot vienu vai vairākus PWM signālus, mums ir nepieciešami divi taimeri:

  1. Viens taimeris, ko izmanto, lai ģenerētu PWM frekvenci
  2. Viens taimeris, ko izmanto PWM darba cikla ģenerēšanai

Abi taimeri ģenerē un pārtrauc, kad tie ir pabeigti, un tādējādi PWM signāla apstrāde tiek veikta pilnībā ar pārtraukumu. PWM frekvencei es izmantoju PIC taimeri 0 un ļauju tam pārplūst. Ar 8 MHz iekšējo oscilatora pulksteni un 64 iepriekšējo skalu formula ir šāda: Fosc / 4 /256 /64 = 2.000.000 / 256 /64 = 122 Hz vai 8, 2 ms. Frekvencei jābūt pietiekami lielai, lai cilvēka acs to nevarētu noteikt. Tam pietiek ar 122 Hz frekvenci. Vienīgais, ko šī taimera pārtraukšanas rutīna dara, ir kopēt jauna PWM cikla darba ciklu un ieslēgt visas gaismas diodes. Tas tiek darīts neatkarīgi no visām 5 gaismas diodēm.

Taimera vērtība PWM darba cikla apstrādei ir atkarīga no tā, kā mēs radām sveces efektu. Savā pieejā es simulēju šo efektu, palielinot darba ciklu ar vērtību 3, lai palielinātu gaismas diodes spilgtumu, un samazinot to ar vērtību 25, lai samazinātu gaismas diodes spilgtumu. Tādā veidā jūs iegūstat svecēm līdzīgu efektu. Tā kā es izmantoju minimālo vērtību 3, soļu skaits, lai kontrolētu pilnu darba ciklu ar vienu baitu, ir 255/3 = 85. Tas nozīmē, ka PWM darba cikla taimeris jādarbina ar frekvenci, kas ir 85 reizes lielāka par PWM frekvences taimeris, kas ir 85 * 122 = 10,370 Hz.

PWM darba ciklam es izmantoju PIC 2. taimeri. Šis ir taimeris ar automātisku pārlādēšanu, un tam tiek izmantota šāda formula: Periods = (Atkārtoti ielādēt + 1) * 4 * Tosc * Taimera 2 iepriekšēja mēroga vērtība. Ar 191 atkārtotu ielādi un 1 mērogu mēs iegūstam periodu (191 + 1) * 4 * 1/8.000.000 * 1 = 96 ASV vai 10.416 Hz. PWM darba cikls pārtrauc ikdienas pārbaudes, ja darba cikls ir pagājis, un izslēdz LED, kurai darba cikls ir pabeigts. Ja darba cikls netiek nokārtots, tas samazina darba cikla skaitītāju ar 3 un beidz darbību. Tas tiek darīts neatkarīgi no visām gaismas diodēm. Manā gadījumā šī pārtraukšanas rutīna aizņem apmēram 25 mūs, un, tā kā to sauc ik pēc 96 mums, jau 26% CPU tiek izmantoti PWM darba cikla pārvaldībai programmatūrā.

2. darbība: aparatūra un nepieciešamie komponenti

Aparatūra un nepieciešamie komponenti
Aparatūra un nepieciešamie komponenti

Shēma parāda galīgo rezultātu. Lai gan es neatkarīgi kontrolēju tikai 5 gaismas diodes, es pievienoju 6. gaismas diodi, kas darbojas kopā ar vienu no 5 citām gaismas diodēm. Tā kā PIC nevar vadīt divas gaismas diodes vienā porta tapā, es pievienoju tranzistoru. Elektronika tiek barota ar 6 voltu / 100 mA līdzstrāvas adapteri, un tiek izmantots zema krituma sprieguma regulators, lai izveidotu stabilu 5 voltu spriegumu.

Šim projektam jums ir nepieciešami šādi komponenti:

  • 1 PIC mikrokontrolleris 12F615
  • 2 keramikas kondensatori: 2 * 100nF
  • Rezistori: 1 * 33k, 6 * 120 omi, 1 * 4k7
  • 6 oranžas vai dzeltenas gaismas diodes, augsts spilgtums
  • 1 BC557 tranzistors vai līdzvērtīgs
  • 1 elektrolītiskais kondensators 100 uF / 16 V
  • 1 zema krituma sprieguma regulators LP2950Z

Jūs varat izveidot ķēdi uz maizes dēļa un neprasa daudz vietas, kā redzams attēlā.

3. darbība: atlikušā programmatūra un rezultāts

Atlikušā programmatūras daļa ir galvenā cilpa. Galvenā cilpa palielina vai samazina gaismas diožu spilgtumu, nejauši pielāgojot darba ciklu. Tā kā mēs palielinām tikai ar vērtību 3 un samazināsim ar vērtību 25, mums ir jāpārliecinās, ka samazinājumi nenotiek tik bieži kā pieaugumi.

Tā kā es neizmantoju nevienu bibliotēku, man bija jāizveido izlases ģenerators, izmantojot lineāro atgriezeniskās saites maiņas reģistru, skatiet:

en.wikipedia.org/wiki/Linear-feedback_shif…

Sveces efektu ietekmē tas, cik ātri tiek mainīts PWM darba cikls, tāpēc galvenā cilpa izmanto aptuveni 10 ms aizkavi. Jūs varat pielāgot šo laiku, lai mainītu sveces efektu atbilstoši savām vajadzībām.

Pievienotajā video ir redzams gala rezultāts, kurā es izmantoju vāciņu virs gaismas diodes, lai uzlabotu efektu.

Es izmantoju JAL kā programmēšanas valodu šim projektam un pievienoju avota failu.

Izklaidējieties, padarot šo pamācību un gaidām jūsu reakcijas un rezultātus.

Ieteicams: