Inhoudsopgave:

Meerdere elektronische kaarsen: 3 stappen
Meerdere elektronische kaarsen: 3 stappen

Video: Meerdere elektronische kaarsen: 3 stappen

Video: Meerdere elektronische kaarsen: 3 stappen
Video: Installeer MEERDERE Buitenlampen op EEN SCHAKELAAR 2024, Juli-
Anonim
Meerdere elektronische kaarsen
Meerdere elektronische kaarsen

Elektronische kaarsen zijn vaak op Instructables geplaatst, dus waarom deze?

Thuis heb ik deze kleine semi-transparante kersthuisjes die een LED-inzicht hebben en een kleine batterij. Sommige huizen hebben LED's met een kaarseffect en sommige hebben LED's die gewoon aan zijn. De kleine batterijen zijn relatief snel leeg en omdat ik in alle huizen een kaarseffect wilde hebben, besloot ik er een PIC-project van te maken. Natuurlijk kun je er ook een Arduino-project van maken.

Dus wat maakt deze elektronische kaars speciaal? PIC en Arduino hebben allemaal Pulse Width Modulation (PWM) hardware aan boord die kan worden gebruikt om een kaarseffect te creëren met behulp van een LED, maar in mijn geval wilde ik 5 onafhankelijke elektronische kaarsen hebben met één controller en die is niet aanwezig, althans niet dat ik weet. De oplossing die ik gebruikte is om deze vijf onafhankelijke PWM-signalen volledig in software te maken.

Stap 1: Pulsbreedtemodulatie in software

Pulsbreedtemodulatie is verschillende keren beschreven, b.v. in dit Arduino-artikel:

PIC en Arduino hebben speciale PWM-hardware aan boord die het eenvoudig maakt om dit PWM-signaal te genereren. Als we één of meerdere PWM-signalen in software willen maken, hebben we twee timers nodig:

  1. Eén timer die wordt gebruikt om de PWM-frequentie te genereren
  2. Eén timer die wordt gebruikt om de PWM-duty cycle te genereren

Beide timers genereren en onderbreken wanneer ze zijn voltooid en dus wordt de verwerking van het PWM-signaal volledig interruptgestuurd uitgevoerd. Voor de PWM frequentie gebruik ik timer 0 van de PIC en laat deze overlopen. Met een interne oscillatorklok van 8 MHz en een prescale van 64 is de formule: Fosc/4 / 256 / 64 = 2.000.000 / 256 / 64 = 122 Hz of 8, 2 ms. De frequentie moet hoog genoeg zijn zodat het menselijk oog het niet kan detecteren. Daarvoor is een frequentie van 122 Hz ruim voldoende. Het enige dat deze timer-interrupt-routine doet, is de duty-cycle kopiëren voor een nieuwe PWM-cyclus en alle LED's inschakelen. Het doet dit voor alle 5 LED's onafhankelijk van elkaar.

De waarde van de timer om de PWM-taakcyclus af te handelen, hangt af van hoe we het kaarseffect maken. In mijn benadering simuleer ik dit effect door de duty cycle te verhogen met een waarde van 3 om de helderheid van de LED te verhogen en deze te verlagen met een waarde van 25 om de helderheid van de LED te verlagen. Zo krijg je een kaarsachtig effect. Aangezien ik een minimale waarde van 3 gebruik, is het aantal stappen om de volledige duty cycle met één byte te regelen 255 / 3 = 85. Dit betekent dat de PWM duty cycle timer moet lopen met een frequentie van 85 keer de frequentie van de PWM-frequentietimer die 85 * 122 = 10.370 Hz is.

Voor de PWM duty cycle gebruik ik timer 2 van de PIC. Dit is een timer met automatisch herladen en gebruikt de volgende formule: Periode = (Herladen + 1) * 4 * Tosc * Timer2 prescale-waarde. Bij een herlaadbeurt van 191 en een voorschaal van 1 krijgen we een periode van (191 + 1) * 4 * 1/8.000.000 * 1 = 96 us of 10.416 Hz. De PWM duty cycle interrupt routine controleert of de duty cycle is verstreken en schakelt de LED uit waarvoor de duty cycle is voltooid. Als de duty-cycle niet wordt gehaald, wordt een duty-cycle-teller met 3 verlaagd en wordt de routine beëindigd. Het doet dit voor alle LED's onafhankelijk van elkaar. In mijn geval duurt deze interrupt-routine ongeveer 25 us en aangezien deze elke 96 us wordt genoemd, wordt al 26% van de CPU gebruikt voor het beheer van de PWM-duty cycle in software.

Stap 2: De hardware en vereiste componenten

De hardware en vereiste componenten
De hardware en vereiste componenten

Het schematische diagram toont het eindresultaat. Hoewel ik slechts 5 LED's onafhankelijk bestuur, heb ik een 6e LED toegevoegd die samen met een van de 5 andere LED's loopt. Omdat de PIC geen twee LED's op één poortpin kan aansturen, heb ik een transistor toegevoegd. De elektronica wordt gevoed door een 6 volt / 100 mA DC adapter en maakt gebruik van een low drop spanningsregelaar om een stabiele 5 Volt te maken.

Voor dit project heb je de volgende onderdelen nodig:

  • 1 PIC-microcontroller 12F615
  • 2 Keramische condensatoren: 2 * 100nF
  • Weerstanden: 1 * 33k, 6 * 120 Ohm, 1 * 4k7
  • 6 oranje of gele LED's, hoge helderheid
  • 1 BC557-transistor of equivalent
  • 1 Elektrolytische condensator 100 uF / 16 V
  • 1 laagspanningsregelaar LP2950Z

Je kunt de schakeling bouwen op een breadboard en heeft niet veel ruimte nodig, zoals op de foto te zien is.

Stap 3: De resterende software en resultaat

Het resterende deel van de software is de hoofdlus. De hoofdlus verhoogt of verlaagt de helderheid van de LED's door de duty cycle willekeurig aan te passen. Aangezien we alleen verhogen met een waarde van 3 en verlagen met een waarde van 25, moeten we ervoor zorgen dat de verlagingen niet zo vaak voorkomen als de verhogingen.

Omdat ik geen bibliotheken gebruikte, moest ik een willekeurige generator maken met behulp van een lineair feedback-schuifregister, zie:

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

Het kaarseffect wordt beïnvloed door hoe snel de PWM-werkcyclus wordt gewijzigd, dus de hoofdlus gebruikt een vertraging van ongeveer 10 ms. U kunt deze tijd aanpassen om het kaarseffect aan uw behoeften aan te passen.

De bijgevoegde video toont het eindresultaat waarbij ik een dop over de LED heb gebruikt om het effect te verbeteren.

Ik heb JAL als programmeertaal voor dit project gebruikt en het bronbestand bijgevoegd.

Veel plezier met het maken van deze Instructable en kijk uit naar uw reacties en resultaten.

Aanbevolen: