Taula de continguts:

Espelmes electròniques múltiples: 3 passos
Espelmes electròniques múltiples: 3 passos

Vídeo: Espelmes electròniques múltiples: 3 passos

Vídeo: Espelmes electròniques múltiples: 3 passos
Vídeo: Fauxflame Module Demonstration Video 2024, Desembre
Anonim
Espelmes electròniques múltiples
Espelmes electròniques múltiples

Les espelmes electròniques s’han publicat moltes vegades a Instructables, per què aquesta?

A casa tinc aquestes petites cases de Nadal semitransparents que tenen una visió LED i una bateria petita. Algunes cases tenen LEDs amb efecte d’espelma i d’altres que només estan encès. Les bateries petites estan buides relativament ràpidament i, com que volia tenir un efecte espelma a totes les cases, vaig decidir convertir-lo en un projecte PIC. Per descomptat, també el podeu convertir en un projecte Arduino.

Llavors, què fa que aquesta espelma electrònica sigui especial? PIC i Arduino tenen maquinari de modulació d’amplitud de pols (PWM) que es pot utilitzar per crear un efecte espelma mitjançant un LED, però en el meu cas volia tenir 5 espelmes electròniques independents amb un controlador i que no estiguin presents, almenys no que ho sé. La solució que he utilitzat és fer que aquests cinc senyals PWM independents siguin completament programaris.

Pas 1: modulació de l'amplada de pols al programari

La modulació de l'amplada de pols s'ha descrit diverses vegades, per exemple. en aquest article d’Arduino:

PIC i Arduino tenen maquinari PWM especial a la placa que facilita la generació d’aquest senyal PWM. Si volem fer un o més senyals PWM al programari, necessitem dos temporitzadors:

  1. Un temporitzador que s’utilitza per generar la freqüència PWM
  2. Un temporitzador que s’utilitza per generar el cicle de treball PWM

Tots dos temporitzadors generen i s'interrompen quan es completen, de manera que la manipulació del senyal PWM es realitza totalment amb interrupció. Per a la freqüència PWM faig servir el temporitzador 0 del PIC i el deixo desbordar. Amb un rellotge oscil·lador intern de 8 MHz i una prescala de 64, la fórmula és: Fosc / 4/256/64 = 2.000.000 / 256/64 = 122 Hz o 8, 2 ms. La freqüència ha de ser prou elevada perquè l’ull humà no pugui detectar-la. Una freqüència de 122 Hz és suficient per a això. L'única cosa que fa aquesta rutina d'interrupció del temporitzador és copiar el cicle de treball d'un nou cicle PWM i encendre tots els LED. Ho fa per als 5 LED de forma independent.

El valor del temporitzador per gestionar el cicle de treball PWM depèn de com fem l’efecte espelma. En el meu enfocament, simulo aquest efecte incrementant el cicle de treball amb un valor de 3 per augmentar la brillantor del LED i disminuir-lo amb un valor de 25 per disminuir la brillantor del LED. D’aquesta manera s’obté un efecte semblant a una espelma. Com que faig servir un valor mínim de 3, el nombre de passos per controlar el cicle de treball complet amb un byte és de 255/3 = 85. Això vol dir que el temporitzador del cicle de treball PWM ha de funcionar amb una freqüència de 85 vegades la freqüència del Temporitzador de freqüència PWM que és 85 * 122 = 10.370 Hz.

Per al cicle de treball PWM utilitzo el temporitzador 2 del PIC. Es tracta d’un temporitzador amb recàrrega automàtica i que utilitza la fórmula següent: Període = (Reload + 1) * 4 * Tosc * Valor de preescala del temporitzador2. Amb una recàrrega de 191 i una prescala d’1 obtenim un període de (191 + 1) * 4 * 1 / 8.000.000 * 1 = 96 us o 10.416 Hz. El cicle de treball PWM interromp la comprovació rutinària de si el cicle de treball ha passat i apaga el LED per al qual es completa el cicle de treball. Si no es passa el cicle de treball, disminueix un comptador de cicles de treball amb 3 i finalitza la rutina. Això ho fa per a tots els LED de forma independent. En el meu cas, aquesta rutina d’interrupcions ens porta uns 25 us i, com que es diu cada 96 us, el 26% de la CPU s’utilitza per gestionar el cicle de treball PWM al programari.

Pas 2: el maquinari i els components necessaris

El maquinari i els components necessaris
El maquinari i els components necessaris

El diagrama esquemàtic mostra el resultat final. Tot i que només controlo 5 LEDs de forma independent, he afegit un sisè LED que funciona junt amb un dels altres 5 LED. Com que el PIC no pot accionar dos LED en un pin de port, he afegit un transistor. L’electrònica s’alimenta mitjançant un adaptador de CC de 6 volts / 100 mA i utilitza un regulador de baixa tensió per obtenir un voltatge estable de 5 volts.

Necessiteu els components següents per a aquest projecte:

  • 1 microcontrolador PIC 12F615
  • 2 condensadors ceràmics: 2 * 100nF
  • Resistències: 1 * 33k, 6 * 120 Ohm, 1 * 4k7
  • 6 LED taronja o groc, alta brillantor
  • 1 transistor BC557 o equivalent
  • 1 condensador electrolític 100 uF / 16 V
  • 1 regulador de baixa tensió LP2950Z

Podeu construir el circuit en una taula de treball i no requereix gaire espai, com es pot veure a la imatge.

Pas 3: el programari i el resultat restants

La part restant del programari és el bucle principal. El bucle principal augmenta o disminueix la brillantor dels LED ajustant el cicle de treball aleatòriament. Com que només incrementem amb un valor de 3 i disminuïm amb un valor de 25, hem d'assegurar-nos que els decrements no es produeixin tan sovint com els increments.

Com que no feia servir cap biblioteca, vaig haver de crear un generador aleatori mitjançant un registre de desplaçament de retroalimentació lineal, vegeu:

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

L'efecte espelma està influït per la rapidesa amb què es canvia el cicle de treball PWM, de manera que el bucle principal utilitza un retard d'uns 10 ms. Podeu ajustar aquest temps per canviar l’efecte de l’espelma a les vostres necessitats.

El vídeo adjunt mostra el resultat final en què he utilitzat una tapa sobre el LED per millorar l'efecte.

He utilitzat JAL com a llenguatge de programació per a aquest projecte i he adjuntat el fitxer font.

Diverteix-te fent això instructiu i esperant les teves reaccions i resultats.

Recomanat: