Sisällysluettelo:

Useita elektronisia kynttilöitä: 3 vaihetta
Useita elektronisia kynttilöitä: 3 vaihetta

Video: Useita elektronisia kynttilöitä: 3 vaihetta

Video: Useita elektronisia kynttilöitä: 3 vaihetta
Video: Dc moottorin pyörimissuunnan vaihto 2024, Marraskuu
Anonim
Useita elektronisia kynttilöitä
Useita elektronisia kynttilöitä

Elektronisia kynttilöitä on julkaistu monta kertaa Instructables -sivustossa, joten miksi tämä?

Kotona minulla on nämä pienet puoliksi läpinäkyvät joulutalot, joissa on LED-näkemys ja pieni akku. Joissakin taloissa on kynttilävaikutteisia LED -valoja, ja joissakin on vain palavat LED -valot. Pienet paristot tyhjenevät suhteellisen nopeasti ja koska halusin saada kynttiläefektin kaikissa taloissa, päätin tehdä siitä PIC -projektin. Tietenkin voit muuttaa sen myös Arduino -projektiksi.

Mikä tekee tästä elektronisesta kynttilästä erityisen? Kaikissa PIC: ssä ja Arduinossa on PWM (Pulse Width Modulation) -laitteisto, jota voidaan käyttää kynttiläefektin luomiseen LED -valolla, mutta minun tapauksessani halusin saada 5 itsenäistä elektronista kynttilää yhdellä ohjaimella, mutta sitä ei ainakaan ole jonka tiedän pois. Käyttämäni ratkaisu on tehdä nämä viisi itsenäistä PWM -signaalia kokonaan ohjelmistossa.

Vaihe 1: Pulssinleveyden modulointi ohjelmistossa

Pulssileveyden modulaatiota on kuvattu useita kertoja, esim. tässä Arduinon artikkelissa:

PIC: llä ja Arduinolla on erityinen PWM -laitteisto, joka helpottaa tämän PWM -signaalin luomista. Jos haluamme lähettää yhden tai useamman PWM -signaalin ohjelmistossa, tarvitsemme kaksi ajastinta:

  1. Yksi ajastin, jota käytetään PWM -taajuuden luomiseen
  2. Yksi ajastin, jota käytetään PWM -käyttöjakson luomiseen

Molemmat ajastimet tuottavat ja keskeyttävät, kun ne on suoritettu, joten PWM -signaalin käsittely suoritetaan täysin keskeytyskäytöllä. PWM -taajuudelle käytän PIC: n ajastinta 0 ja annan sen ylittää. Kun sisäinen oskillaattorikello on 8 MHz ja esiasteikko 64, kaava on: Fosc / 4 /256 /64 = 2.000.000 / 256 /64 = 122 Hz tai 8, 2 ms. Taajuuden on oltava riittävän korkea, jotta ihmissilmä ei pysty havaitsemaan sitä. 122 Hz: n taajuus riittää siihen. Ainoa, mitä tämä ajastinkeskeytysrutiini tekee, on kopioida uuden PWM -syklin käyttöjakso ja kytkeä kaikki LEDit päälle. Se tekee tämän kaikille 5 LEDille itsenäisesti.

PWM -käyttöjakson käsittelemiseen käytettävän ajastimen arvo riippuu siitä, miten teemme kynttiläefektin. Lähestymistavassani simuloin tätä vaikutusta lisäämällä käyttöjaksoa arvolla 3 LEDin kirkkauden lisäämiseksi ja vähentämällä sitä arvolla 25 LEDin kirkkauden vähentämiseksi. Näin saat kynttilän kaltaisen vaikutelman. Koska käytän vähimmäisarvoa 3, koko käyttöjakson ohjaaminen yhdellä tavulla on 255/3 = 85. Tämä tarkoittaa, että PWM -käyttöjaksoajastimen on toimittava 85 kertaa taajuudella PWM -taajuusajastin, joka on 85 * 122 = 10,370 Hz.

PWM -käyttöjaksossa käytän PIC: n ajastinta 2. Tämä on ajastin, jossa on automaattinen lataus, ja se käyttää seuraavaa kaavaa: Jakso = (Lataa + 1) * 4 * Tosc * Ajastin2 -esiasteikko. Kun uudelleenlataus on 191 ja esiasteikko 1, saamme ajanjakson (191 + 1) * 4 * 1/8.000.000 * 1 = 96 us tai 10.416 Hz. PWM -käyttöjakso keskeyttää rutiinitarkastukset, jos käyttöjakso on kulunut, ja sammuttaa LED -valon, jonka käyttöjakso on päättynyt. Jos käyttöjaksoa ei ylitetä, se pienentää käyttöjaksolaskuria numerolla 3 ja lopettaa rutiinin. Se tekee tämän kaikille LEDeille itsenäisesti. Minun tapauksessani tämä keskeytysrutiini kestää noin 25 meitä ja koska sitä kutsutaan joka 96: ksi, jo 26% CPU: sta käytetään PWM -käyttöjakson hallintaan ohjelmistossa.

Vaihe 2: Laitteisto ja tarvittavat komponentit

Laitteisto ja tarvittavat komponentit
Laitteisto ja tarvittavat komponentit

Kaaviossa näkyy lopputulos. Vaikka ohjaan vain 5 LEDiä itsenäisesti, lisäsin kuudennen LEDin, joka toimii yhdessä jonkin muun 5 LEDin kanssa. Koska PIC ei voi ajaa kahta LEDiä yhteen porttiin, lisäsin transistorin. Elektroniikkaa syötetään 6 voltin / 100 mA: n tasavirtasovittimella, ja se muodostaa vakaan 5 voltin matalan pudotusjännitteen säätimen.

Tätä projektia varten tarvitset seuraavat komponentit:

  • 1 PIC -mikrokontrolleri 12F615
  • 2 keraamista kondensaattoria: 2 * 100 nF
  • Vastukset: 1 * 33 k, 6 * 120 ohmia, 1 * 4 k7
  • 6 Oranssi tai keltainen LED, korkea kirkkaus
  • 1 BC557 -transistori tai vastaava
  • 1 elektrolyyttikondensaattori 100 uF / 16 V
  • 1 matalan jännitteen säädin LP2950Z

Voit rakentaa piirin leipälevylle, eikä se vaadi paljon tilaa, kuten kuvassa näkyy.

Vaihe 3: Jäljellä oleva ohjelmisto ja tulos

Ohjelmiston loppuosa on pääsilmukka. Pääsilmukka lisää tai vähentää LEDien kirkkautta säätämällä käyttöjaksoa satunnaisesti. Koska kasvatamme vain arvoa 3 ja vähennämme arvoa 25, meidän on varmistettava, että vähennykset eivät tapahdu niin usein kuin lisäykset.

Koska en käyttänyt kirjastoja, minun piti tehdä satunnaisgeneraattori käyttämällä lineaarista palautteen siirtorekisteriä, katso:

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

Kynttilävaikutukseen vaikuttaa se, kuinka nopeasti PWM -käyttöjaksoa muutetaan, joten pääsilmukka käyttää noin 10 ms: n viiveen. Voit säätää tätä aikaa muuttaaksesi kynttiläefektiä tarpeidesi mukaan.

Liitteenä olevassa videossa näkyy lopputulos, jossa käytin korkkia LEDin päällä tehosteen parantamiseksi.

Käytin JAL -ohjelmointikieltä tässä projektissa ja liitin lähdetiedoston.

Pidä hauskaa tämän ohjeen tekemisestä ja odotan reaktioitasi ja tuloksiasi.

Suositeltava: