Indholdsfortegnelse:

Flere elektroniske lys: 3 trin
Flere elektroniske lys: 3 trin

Video: Flere elektroniske lys: 3 trin

Video: Flere elektroniske lys: 3 trin
Video: ТИТАН БЛИЗОК #3 видео игра Shadow Fight 2 бой с тенью от Фанни Геймс ТВ 2024, November
Anonim
Flere elektroniske lys
Flere elektroniske lys

Elektroniske stearinlys er blevet sendt mange gange på Instructables, så hvorfor det her?

Herhjemme har jeg disse små halvgennemsigtige julehuse, der har en LED-indsigt og et lille batteri. Nogle huse har lysdioder med en stearinlyseffekt, og nogle har lysdioder, der bare er tændt. De små batterier er relativt tomme, og da jeg ville have en stearinlyseffekt i alle huse, besluttede jeg at gøre det til et PIC -projekt. Selvfølgelig kan du også gøre det til et Arduino -projekt.

Så hvad gør dette elektroniske lys specielt? PIC og Arduino har alle Pulse Width Modulation (PWM) hardware ombord, der kan bruges til at skabe en lyseffekt ved hjælp af en LED, men i mit tilfælde ville jeg have 5 uafhængige elektroniske stearinlys ved hjælp af en controller, og det er ikke til stede, i hvert fald ikke som jeg ved af. Løsningen jeg brugte er at lave disse fem uafhængige PWM -signaler helt i software.

Trin 1: Pulsbreddemodulation i software

Pulse Width Modulation er blevet beskrevet flere gange, f.eks. i denne Arduino -artikel:

PIC og Arduino har speciel PWM -hardware ombord, der gør det enkelt at generere dette PWM -signal. Hvis vi vil lave et eller flere PWM -signaler i software, har vi brug for to timere:

  1. En timer, der bruges til at generere PWM -frekvensen
  2. En timer, der bruges til at generere PWM -driftscyklussen

Begge timere genererer og afbryder, når de er færdige, og derfor håndteres PWM -signalet fuldstændigt afbrydelsesdrevet. Til PWM -frekvensen bruger jeg timer 0 i PIC'en og lader den flyde over. Med et internt oscillatorur på 8 MHz og en forudskala på 64 er formlen: Fosc / 4 /256 /64 = 2.000.000 / 256 /64 = 122 Hz eller 8, 2 ms. Frekvensen skal være høj nok, så det menneskelige øje ikke kan registrere den. En frekvens på 122 Hz er tilstrækkelig til det. Det eneste, denne timer -afbrydelsesrutine gør, er at kopiere driftscyklussen for en ny PWM -cyklus og tænde alle lysdioder. Det gør dette for alle 5 lysdioder uafhængigt.

Værdien af timeren til at håndtere PWM -driftscyklussen afhænger af, hvordan vi laver lyseffekten. I min tilgang simulerer jeg denne effekt ved at øge driftscyklussen med en værdi på 3 for at øge lysstyrken på LED'en og reducere den med en værdi på 25 for at reducere lysstyrken på LED'en. På denne måde får du en stearinlignende effekt. Da jeg bruger en minimumsværdi på 3, er antallet af trin til at styre den fulde driftscyklus med en byte 255 /3 = 85. Det betyder, at PWM -driftscyklustimeren skal køre med en frekvens på 85 gange frekvensen af PWM frekvens timer, som er 85 * 122 = 10.370 Hz.

Til PWM -driftscyklussen bruger jeg timer 2 i PIC. Dette er en timer med automatisk genindlæsning, og den bruger følgende formel: Periode = (Reload + 1) * 4 * Tosc * Timer2 forudskaleret værdi. Med en genindlæsning på 191 og en forskala på 1 får vi en periode på (191 + 1) * 4 * 1/8.000.000 * 1 = 96 us eller 10.416 Hz. PWM -driftscyklussen afbryder rutinen, om driftscyklussen er gået, og slukker den LED, som driftscyklussen er afsluttet for. Hvis driftscyklussen ikke er bestået, reduceres den til en driftscyklustæller med 3 og afslutter rutinen. Det gør dette for alle lysdioder uafhængigt. I mit tilfælde tager denne afbrydelsesrutine omkring 25 os, og da den kaldes hver 96 os, bruges allerede 26% af CPU'en til at styre PWM -driftscyklussen i software.

Trin 2: Hardware og nødvendige komponenter

Hardware og nødvendige komponenter
Hardware og nødvendige komponenter

Det skematiske diagram viser det endelige resultat. Selvom jeg kun styrer 5 lysdioder uafhængigt, tilføjede jeg en sjette LED, der kører sammen med en af de 5 andre lysdioder. Da PIC ikke kan drive to lysdioder på en portstift, tilføjede jeg en transistor. Elektronikken forsynes med en 6 volt / 100 mA DC -adapter og bruger en lavfaldsspændingsregulator til at lave en stabil 5 Volt.

Du har brug for følgende komponenter til dette projekt:

  • 1 PIC mikrokontroller 12F615
  • 2 keramiske kondensatorer: 2 * 100nF
  • Modstande: 1 * 33k, 6 * 120 Ohm, 1 * 4k7
  • 6 orange eller gule lysdioder, høj lysstyrke
  • 1 BC557 transistor eller tilsvarende
  • 1 Elektrolytkondensator 100 uF / 16 V
  • 1 lavspændingsregulator LP2950Z

Du kan bygge kredsløbet på et brødbræt og kræver ikke meget plads, som det kan ses på billedet.

Trin 3: Den resterende software og resultat

Den resterende del af softwaren er hovedsløjfen. Hovedløkken øger eller formindsker lysdiodernes lysstyrke ved tilfældigt at justere driftscyklussen. Da vi kun øger med en værdi på 3 og falder med en værdi på 25, skal vi sikre os, at faldene ikke sker så ofte som trinene.

Da jeg ikke brugte nogen biblioteker, var jeg nødt til at lave en tilfældig generator ved hjælp af et lineært feedback -skiftregister, se:

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

Lyseffekten påvirkes af, hvor hurtigt PWM -driftscyklussen ændres, så hovedsløjfen bruger en forsinkelse på ca. 10 ms. Du kan justere denne tid for at ændre lyseffekten til dine behov.

Den vedhæftede video viser slutresultatet, hvor jeg brugte en hætte over LED'en for at forbedre effekten.

Jeg brugte JAL som programmeringssprog til dette projekt og vedhæftede kildefilen.

God fornøjelse med at gøre dette instruerbart og ser frem til dine reaktioner og resultater.

Anbefalede: