Cuprins:

Cadouri iluminate: 5 pași (cu imagini)
Cadouri iluminate: 5 pași (cu imagini)

Video: Cadouri iluminate: 5 pași (cu imagini)

Video: Cadouri iluminate: 5 pași (cu imagini)
Video: Cadouri Ieftine Vs Scumpe! #4 *a plans* 2024, Iulie
Anonim
Cadouri iluminate
Cadouri iluminate

Acasă avem două cadouri iluminate care sunt folosite în perioada Crăciunului. Acestea sunt cadouri iluminate simple, folosind un LED roșu-verde cu 2 culori care schimbă aleatoriu culoarea care se estompează și se estompează. Dispozitivul este alimentat de o celulă cu buton de 3 volți. Acesta din urmă a fost motivul acestui proiect, deoarece bateria se epuizează foarte repede când cadourile sunt alimentate mai mult timp.

Pentru a preveni utilizarea unei cantități uriașe de baterii cu butoane, mi-am proiectat propria versiune folosind trei baterii AAA reîncărcabile. Această versiune folosește un LED RGB, deci este posibil și albastru, dar acest lucru nu face parte din designul original. Versiunea mea are următoarele funcții:

  • Controlul 2 prezintă în același timp folosind un microcontroler PIC12F617. Software-ul microcontrolerului a fost scris în limbajul de programare JAL.
  • Porniți și opriți cadoul folosind un buton. Versiunea originală a folosit un comutator în acest scop, dar un buton a fost mai ușor de utilizat.
  • Schimbați aleatoriu culoarea cadourilor prin decolorarea și decolorarea culorilor roșu și verde.
  • Opriți cadourile atunci când tensiunea bateriei scade sub 3,0 Volți. Acest lucru va împiedica descărcarea prea mare a bateriilor reîncărcabile.

După decolorarea unei singure culori, LED-ul rămâne aprins undeva între 3 secunde și 20 de secunde. Deoarece încă mai aveam LED-ul albastru nefolosit, am adăugat caracteristica că ambele pachete vor deveni albastre când timpul de pornire este exact de 10 secunde. Acest lucru nu se întâmplă foarte des, deoarece timpul aleatoriu este generat în căpușele temporizatorului de 40 de milisecunde, așa cum este descris mai târziu.

Pasul 1: Câteva teorii despre decolorarea și decolorarea utilizând modularea lățimii pulsului

Cel mai bun mod de a schimba luminozitatea unui LED nu este prin schimbarea curentului care curge prin LED, ci prin schimbarea timpului în care LED-ul este aprins într-un anumit interval de timp. Acest mod de a controla luminozitatea unui LED se numește Modularea lățimii pulsului (PWM) care a fost descrisă de mai multe ori pe internet, de ex. Wikipedia.

PIC și Arduino au la bord hardware-ul PWM special care simplifică generarea acestui semnal PWM, dar de multe ori au o singură ieșire pentru acest lucru și astfel nu puteți controla decât un LED. Pentru această versiune a trebuit să controlez 5 LED-uri (2 roșii, 2 verzi și 1 albastru combinat), astfel încât PWM trebuia făcut în software folosind un cronometru care generează atât frecvența PWM, cât și ciclul de funcționare PWM.

PIC12F617 are un temporizator la bord cu capacități de reîncărcare automată. Aceasta înseamnă că, odată ce ați setat valoarea de reîncărcare a temporizatorului, acesta va utiliza acea valoare de fiecare dată când a trecut timpul de expirare și astfel temporizatorul funcționează singur la o frecvență specificată. Deoarece sincronizarea este esențială pentru un semnal PWM stabil, temporizatorul funcționează pe o bază de întrerupere, nefiind influențat de timpul pe care programul principal trebuie să îl controleze și să determine timpul aleatoriu pentru LED-uri.

Frecvența PWM trebuie să fie suficient de ridicată pentru a împiedica să vadă pâlpâirea, așa că am ales o frecvență PWM de 100 Hz. Pentru efectul de fade-in și fade-out trebuie să schimbăm ciclul de funcționare și deci luminozitatea LED-ului. Am decis să folosesc un increment de 5 pași pentru a crește sau a reduce luminozitatea pentru a obține efectul de fade-in și fade-out și, deoarece temporizatorul folosește un interval de la 0 la 255 pentru ciclul de funcționare, temporizatorul trebuie să ruleze la 255 / 5 = 51 ori frecvența normală sau 5100 Hz. Acest lucru duce la o întrerupere a temporizatorului la fiecare 196 de noi.

Pasul 2: Lucrul mecanic

Lucrarea mecanică
Lucrarea mecanică
Lucrarea mecanică
Lucrarea mecanică
Lucrarea mecanică
Lucrarea mecanică

Pentru realizarea cadourilor am folosit plastic acrilic alb ca laptele și pentru restul setului am folosit MDF. Pentru a împiedica să vedeți forma LED-ului în pachet atunci când LED-ul este aprins, am pus un capac deasupra LED-urilor care difuzează lumina de la LED. Această copertă a venit de la niște lumânări electronice vechi pe care le-am avut, dar puteți crea și o copertă folosind același plastic acrilic. În imagini vedeți ce am folosit ca echipament și material.

Pasul 3: Electronica

Electronica
Electronica
Electronica
Electronica
Electronica
Electronica
Electronica
Electronica

Diagrama schematică prezintă componentele electronice de care aveți nevoie. După cum sa menționat anterior, 5 LED-uri sunt controlate independent în cazul în care LED-ul albastru este combinat. Deoarece PIC nu poate conduce două LED-uri pe un singur port, am adăugat un tranzistor pentru controlul LED-urilor albastre combinate. Electronica este alimentată de 3 baterii reîncărcabile AAA și poate fi pornită sau oprită apăsând comutatorul de resetare.

Aveți nevoie de următoarele componente electronice pentru acest proiect:

  • 1 microcontroler PIC 12F617 cu soclu
  • 2 condensatoare ceramice: 2 * 100nF
  • Rezistoare: 1 * 33k, 1 * 4k7, 2 * 68 Ohm, 4 * 22 Ohm
  • 2 LED-uri RGB, luminozitate ridicată
  • 1 tranzistor BC557 sau echivalent
  • 1 buton comutator

Puteți construi circuitul pe o placă de calcul și nu necesită mult spațiu, așa cum se poate vedea în imagine. S-ar putea să vă întrebați de ce valorile rezistenței pentru controlul curentului maxim prin LED-uri sunt atât de scăzute. Acest lucru se datorează tensiunii reduse de alimentare de 3,6 volți, în combinație cu căderea de tensiune pe care o are fiecare LED, care depinde de culoarea per LED, vezi și Wikepedia. Valorile rezistorului au ca rezultat un curent maxim de aproximativ 15 mA per LED, unde curentul maxim al întregului sistem este de aproximativ 30 mA.

Pasul 4: Software-ul

Software-ul efectuează următoarele sarcini:

Când dispozitivul este resetat de buton, acesta va porni dispozitivul dacă a fost oprit sau oprește dispozitivul dacă a fost pornit. Dezactivat înseamnă punerea PIC12F617 în modul de repaus, în care consumă cu greu energie.

Generați semnalul PWM pentru a controla luminozitatea LED-urilor. Acest lucru se face folosind un cronometru și o rutină de service de întrerupere care controlează pinii dispozitivului PIC12F617 care pornesc și opresc LED-urile.

Fade-in și fade-out LED-urile și mențineți-le aprinse pentru un timp aleatoriu între 3 și 20 de secunde. Dacă timpul aleator este egal cu 10 secunde, ambele LED-uri vor deveni albastre timp de 10 secunde, după care se folosește modelul normal de fade-in și fade-out roșu-verde.

În timpul funcționării, PIC va măsura tensiunea de alimentare utilizând convertorul analog la digital (ADC) de la bord. Când această tensiune scade sub 3,0 V, va stinge LED-urile și va pune din nou PIC în modul de repaus. PIC ar putea funcționa în continuare bine la 3,0 V, dar nu este bine ca bateriile reîncărcabile să fie complet descărcate.

Așa cum am menționat mai devreme, semnalul PWM este creat folosind un temporizator care utilizează o rutină de servicii de întrerupere pentru a menține un semnal PWM stabil. Fading-in și fading-out ale LED-urilor, inclusiv timpul în care LED-urile sunt aprinse, este controlat de programul principal. Acest program principal folosește o bifă de timer de 40 de milisecunde, derivată din același timer care creează semnalul PWM.

Deoarece nu am folosit nicio bibliotecă JAL specifică pentru acest proiect de data aceasta, a trebuit să creez un generator aleatoriu utilizând un registru liniar de schimbare a feedback-ului pentru generarea timpului aleator și a timpului oprit aleatoriu al LED-urilor.

Pasul 5: Rezultatul final

Image
Image
Rezultatul final
Rezultatul final

Există 2 videoclipuri care arată rezultatul intermediar. Soția mea trebuie să schimbe cuburile în cadouri reale. Un videoclip arată o primă detaliere a rezultatului în care celălalt videoclip îl prezintă cu prezentul original care a dus la acest proiect.

După cum vă puteți aștepta când credeți că ați terminat, apar noi cerințe. Soția mea a cerut dacă luminozitatea LED-urilor poate varia, de asemenea, după ce acestea s-au estompat. Acest lucru este posibil, desigur, deoarece am folosit doar aproximativ jumătate din memoria programului PIC12F617.

Fișierul sursă JAL și fișierul Intel Hex pentru programarea PIC sunt atașate. Dacă sunteți interesat să utilizați microcontrolerul PIC cu JAL - un limbaj de programare ca Pascal - vizitați site-ul web JAL.

Distrează-te făcând acest instructabil și așteaptă cu nerăbdare reacțiile și rezultatele tale.

Recomandat: