Sisällysluettelo:
- Vaihe 1: Pulssinleveyden modulointi ohjelmistossa
- Vaihe 2: Laitteisto ja tarvittavat komponentit
- Vaihe 3: Jäljellä oleva ohjelmisto ja tulos
Video: Useita elektronisia kynttilöitä: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
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:
- Yksi ajastin, jota käytetään PWM -taajuuden luomiseen
- 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
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:
Arduino Connect useita I2C -laitteita: 6 vaihetta
Arduino Connect useita I2C -laitteita: Tässä opetusohjelmassa opimme yhdistämään useita moduuleja I2C -yhteydellä arduinoon Katso video! Tässä tapauksessa käytämme esimerkkinä 4 OLED -näyttöä, mutta voit käyttää mitä tahansa muita I2C -moduuleja/ Huomautus: 4 OLED -näyttöä
Arduino Kuinka liittää useita servomoottoreita - PCA9685 Opetusohjelma: 6 vaihetta
Arduino Kuinka kytkeä useita servomoottoreita - PCA9685 -opetusohjelma: Tässä opetusohjelmassa opimme yhdistämään useita servomoottoreita PCA9685 -moduulin ja arduinon avulla. PCA9685 -moduuli on erittäin hyvä, kun haluat liittää useita moottoreita, voit lukea lisää tästä https : //www.adafruit.com/product/815Katso Vi
Suuri versio 1 ohmin Smd -vastuksesta, joka tarjoaa 1 ohmin vastuksen ilman elektronisia komponentteja: 13 vaihetta
Suuri versio 1 ohmin Smd -vastuksesta, joka tarjoaa 1 ohmin vastuksen ilman mitään elektronisia komponentteja: Todellisessa elämässä smd -vastukset ovat hyvin pieniä, kooltaan lähes 0,8 mm x 1,2 mm. Täällä aion tehdä suuren smd -vastuksen, joka on erittäin valtava verrattuna tosielämän smd -vastukseen
Kuinka saada ilmaisia elektronisia osia!: 7 vaihetta (kuvilla)
Kuinka saada ILMAISIA elektronisia osia !: Sähköisten osien hankintakustannukset hankkeistamme Radio Shackilta tai Maplinilta ovat nykyään melko kalliita … Ja useimmilla meistä on rajallinen budjetti tavaroiden ostamiseen. Mutta … Jos tiedät salaisuuksia siitä, miten saat sähköisiä osia ilmaiseksi, saatat olla
Mistä ostaa elektronisia komponentteja ja valita LED: 5 vaihetta
Mistä ostaa elektronisia komponentteja ja valita LED: Tämä opastettava on näyttää, mistä laitteistosuunnittelija etsii osia. Se on suunnattu ihmisille, jotka haluavat harrastaa elektroniikkaa harrastuksena eivätkä tiedä mistä hankkia asioita. Käyn läpi myös LED -esimerkin