INHOUDSOPGAWE:

Verligte geskenke: 5 stappe (met foto's)
Verligte geskenke: 5 stappe (met foto's)

Video: Verligte geskenke: 5 stappe (met foto's)

Video: Verligte geskenke: 5 stappe (met foto's)
Video: Biggy - Dames 2024, November
Anonim
Verligte geskenke
Verligte geskenke

Tuis het ons twee verligte geskenke wat tydens die Kerstyd gebruik word. Dit is eenvoudige verligte geskenke met 'n 2-kleur rooi-groen LED wat willekeurig van kleur verander wat vervaag en vervaag. Die toestel word aangedryf deur 'n knoppiesel van 3 Volt. Laasgenoemde was die rede vir hierdie projek, aangesien die battery baie vinnig leegloop as die geskenke langer aangeskakel word.

Om die gebruik van 'n groot hoeveelheid knoppiesbatterye te voorkom, het ek my eie weergawe ontwerp met drie herlaaibare AAA -batterye. Hierdie weergawe gebruik 'n RGB LED, so blou is ook moontlik, maar dit was nie deel van die oorspronklike ontwerp nie. My weergawe het die volgende funksies:

  • Beheer 2 bied terselfdertyd 'n PIC12F617 -mikrobeheerder aan. Die sagteware vir mikrobeheerders is in die JAL -programmeertaal geskryf.
  • Skakel die geskenk aan en uit met 'n drukknop. Die oorspronklike weergawe het 'n skakelaar vir hierdie doel gebruik, maar 'n drukknop was makliker in gebruik.
  • Verander die kleur van die geskenke lukraak deur die kleure rooi en groen te vervaag en te vervaag.
  • Skakel die geskenke uit as die batteryspanning onder 3.0 Volt daal. Dit sal voorkom dat die herlaaibare batterye te veel ontlaai word.

Nadat die kleur ingekleur is, bly die LED êrens tussen 3 sekondes en 20 sekondes lank aan. Aangesien ek nog die ongebruikte blou LED gehad het, het ek die funksie bygevoeg dat beide pakkette blou word wanneer die tyd presies 10 sekondes is. Dit gebeur nie baie gereeld nie, aangesien die ewekansige tyd gegenereer word in timerbosluise van 40 millisekondes, soos later beskryf.

Stap 1: 'n Teorie oor in- en uitfade met behulp van polsbreedte-modulatie

Die beste manier om die helderheid van 'n LED te verander, is nie deur die stroom wat deur die LED vloei te verander nie, maar deur die tyd wat die LED aan is binne 'n sekere tydsinterval te verander. Hierdie manier om die helderheid van 'n LED te beheer, word Pulse Width Modulation (PWM) genoem wat verskeie kere op die internet beskryf is, bv. Wikipedia.

PIC en Arduino het spesiale PWM -hardeware aan boord wat dit maklik maak om hierdie PWM -sein te genereer, maar hulle het dikwels een uitset hiervoor, en u kan slegs een LED beheer. Vir hierdie weergawe moes ek 5 LED's (2 rooi, 2 groen en 1 gekombineerde blou) beheer, sodat PWM in sagteware gedoen moes word met behulp van 'n timer wat beide die PWM -frekwensie sowel as die PWM -werksiklus genereer.

Die PIC12F617 het 'n ingeboude timer met outomatiese herlaai-moontlikhede. Dit beteken dat sodra u die herlaaiwaarde van die timer ingestel het, die waarde elke keer as die tydsverloop verby is, gebruik, en die timer dus alleen op 'n bepaalde frekwensie werk. Aangesien tydsberekening van kritieke belang is vir 'n stabiele PWM-sein, werk die timer op 'n onderbrekingsbasis en word nie beïnvloed deur die tyd wat die hoofprogram nodig het om die ewekansige on-time vir die LED's te beheer en te bepaal nie.

Die PWM -frekwensie moet hoog genoeg wees om te voorkom dat flikkering voorkom, en daarom het ek 'n PWM -frekwensie van 100 Hz gekies. Vir die fade-in en fade-out-effek moet ons die werksiklus en dus die helderheid van die LED verander. Ek het besluit om 'n stapverhoging van 5 te gebruik om die helderheid te verhoog of te verlaag om die in- en vervaag-effek te kry, en aangesien die timer 'n reikwydte van 0 tot 255 vir die dienssiklus gebruik, moet die timer op 255 / 5 = 51 keer die normale frekwensie of 5100 Hz. Dit lei tot 'n tydonderbreking elke 196 ons.

Stap 2: Die meganiese werk

Die meganiese werk
Die meganiese werk
Die meganiese werk
Die meganiese werk
Die meganiese werk
Die meganiese werk

Vir die maak van die geskenke gebruik ek melkwit akrielplastiek en vir die res van die opstelling gebruik ek MDF. Om te voorkom dat u die vorm van die LED in die verpakking sien as die LED aan is, sit ek 'n deksel bo -op die LED's wat die lig van die LED versprei. Hierdie omslag kom van 'n paar ou elektroniese kerse wat ek gehad het, maar u kan ook 'n omslag maak deur dieselfde akrielplastiek te gebruik. Op die foto's sien u wat ek as toerusting en materiaal gebruik het.

Stap 3: Die elektronika

Die elektronika
Die elektronika
Die elektronika
Die elektronika
Die elektronika
Die elektronika
Die elektronika
Die elektronika

Die skematiese diagram toon die elektroniese komponente wat u benodig. Soos vroeër genoem, word 5 LED's onafhanklik beheer waar die blou LED gekombineer word. Aangesien die PIC nie twee LED's op een poortpen kan dryf nie, het ek 'n transistor bygevoeg om die gekombineerde blou LED's te beheer. Die elektronika word aangedryf deur 3 herlaaibare AAA -batterye en kan aan- of uitgeskakel word deur op die reset -skakelaar te druk.

U benodig die volgende elektroniese komponente vir hierdie projek:

  • 1 PIC -mikrobeheerder 12F617 met sok
  • 2 keramiek kapasitors: 2 * 100nF
  • Weerstande: 1 * 33k, 1 * 4k7, 2 * 68 Ohm, 4 * 22 Ohm
  • 2 RGB LED's, hoë helderheid
  • 1 BC557 transistor of ekwivalent
  • 1 drukknopskakelaar

U kan die kring op 'n broodbord bou en benodig nie veel ruimte nie, soos op die foto gesien kan word. U wonder miskien waarom die weerstandswaardes vir die beheer van die maksimum stroom deur die LED's so laag is. Dit is te danke aan die lae voedingsspanning van 3,6 Volt in kombinasie met die spanningsval wat elke LED het, wat afhang van die kleur per LED, sien ook Wikepedia. Die weerstandswaardes lei tot 'n maksimum stroom van ongeveer 15 mA per LED, waar die maksimum stroom van die hele stelsel ongeveer 30 mA is.

Stap 4: Die sagteware

Die sagteware voer die volgende take uit:

As die toestel met die drukknop herstel word, sal dit die toestel aanskakel as dit af is, of as die toestel afgeskakel word. Uit beteken dat u die PIC12F617 in die slaapmodus moet plaas waarin dit amper geen krag verbruik nie.

Genereer die PWM -sein om die helderheid van die LED's te beheer. Dit word gedoen met behulp van 'n timer en 'n onderbrekingsdiensroetine wat die penne van die PIC12F617 beheer, wat die LED's aan en af skakel.

Vervaag en vervaag die LED's en hou dit aan vir 'n ewekansige tyd tussen 3 en 20 sekondes. As die ewekansige tyd gelyk is aan 10 sekondes, word albei LED's vir 10 sekondes blou, waarna die normale rooi-groen vervaag-in en vervaag-patroon gebruik word.

Tydens die werking meet die PIC die voedingspanning met behulp van die ingeboude Analog to Digital Converter (ADC). As hierdie spanning onder 3.0 V daal, skakel dit die LED's uit en sit die PIC weer in die slaapmodus. Die PIC kan nog steeds goed werk by 3.0 V, maar dit is nie goed dat die herlaaibare batterye heeltemal leeg is nie.

Soos vroeër genoem, word die PWM -sein geskep met 'n timer wat 'n onderbrekingsroetine gebruik om 'n stabiele PWM -sein te behou. Die in- en vervaag van die LED's, insluitend die tyd waarop die LED's aan is, word beheer deur die hoofprogram. Hierdie hoofprogram gebruik 'n tydmerk van 40 millisekondes, afgelei van dieselfde timer wat die PWM -sein skep.

Aangesien ek hierdie keer geen spesifieke JAL -biblioteke vir hierdie projek gebruik het nie, moes ek 'n ewekansige kragopwekker maak met behulp van 'n lineêre terugvoerverskuiwingsregister om die ewekansige tyd- en ewekansige tyd van die LED's te genereer.

Stap 5: Die finale resultaat

Image
Image
Die finale resultaat
Die finale resultaat

Daar is 2 video’s wat die tussenresultate toon. My vrou moet nog steeds die blokkies in werklike geskenke verander. Een video toon 'n close -up van die resultaat, waar die ander video dit wys met die oorspronklike present wat tot hierdie projek gelei het.

Soos u kan verwag as u dink dat u klaar is, verskyn daar nuwe vereistes. My vrou het gevra of die helderheid van die LED's ook kan wissel nadat dit vervaag is. Dit is natuurlik moontlik, aangesien ek slegs die helfte van die programgeheue van die PIC12F617 gebruik het.

Die JAL -bronlêer en die Intel Hex -lêer vir die programmering van die PIC is aangeheg. Besoek die JAL -webwerf as u die PIC -mikrobeheerder met JAL wil gebruik - 'n programmeertaal wat soos Pascal voorkom.

Geniet dit om hierdie instruksies te maak en sien uit na u reaksies en resultate.

Aanbeveel: