Taula de continguts:

Rellotge de pantalla LED de matriu minúscula: 8 passos
Rellotge de pantalla LED de matriu minúscula: 8 passos

Vídeo: Rellotge de pantalla LED de matriu minúscula: 8 passos

Vídeo: Rellotge de pantalla LED de matriu minúscula: 8 passos
Vídeo: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, Juny
Anonim
Image
Image
Petit rellotge de pantalla LED de matriu
Petit rellotge de pantalla LED de matriu
Petit rellotge de pantalla LED de matriu
Petit rellotge de pantalla LED de matriu
Petit rellotge de pantalla LED de matriu
Petit rellotge de pantalla LED de matriu

Sempre he volgut tenir un rellotge d’escriptori a l’antiga, que sembli alguna cosa de les pel·lícules dels anys 90, amb una funcionalitat força humil: rellotge en temps real, data, llum de fons canviant, sonor i una opció d’alarma. Per tant, he tingut la idea de construir-ne un: un dispositiu digital, basat en un microcontrolador amb totes les funcions que he esmentat anteriorment, i alimentat per USB, ja sigui un PC o qualsevol carregador USB mòbil. Com que volia fer-lo programable, amb menús i ajustos de configuració, la col·locació de MCU era inevitable en aquest projecte. ATMEGA328P IC (que consisteix en cada placa Arduino Uno) va ser escollit per ser el "cervell" del circuit (parlant d'això, només en tenia un munt). La combinació d’algunes peces electròniques com LED RGB, xip de cronometratge de càrrega i botons de pressió, va permetre el naixement de tot el projecte: rellotge d’escriptori de pantalla LED de mida petita.

Per tant, després d’haver cobert l’entitat del projecte, construïm-lo

Pas 1: la idea

La idea
La idea

Com ja es va esmentar anteriorment, el nostre dispositiu conté pantalles de matriu LED de bon aspecte, retroiluminació LED RGB que canvia de color, xip de cronometratge de càrrega ràpida, unitat d’alimentació USB convenient i un armari de mida petita.

Descrivim el diagrama de blocs de funcionament del dispositiu per parts:

1. Unitat d'alimentació:

Com que el dispositiu funciona a 5 volts de corrent continu, el component de la font d'alimentació consta de dos circuits separats:

  • Entrada micro-USB: per a una font directa d’alimentació de carregador / PC.
  • Circuit regulador de tensió lineal de 5V basat en IC LM7805.

El circuit IC LM7805 és opcional, tret que preferiu implementar una disponibilitat d’entrada de subministrament d’energia diferent. Al nostre dispositiu s’utilitza l’alimentació micro-USB.

2. Unitat de microcontrolador:

El microcontrolador ATMEGA328P, actua com un "cervell" de tot el dispositiu. El seu propòsit és comunicar-se amb tots els circuits perifèrics, proporcionar les dades necessàries i controlar la interfície d'usuari del dispositiu. Com que el microcontrolador escollit és ATMEGA328P, necessitarem Atmel Studio i coneixements bàsics de C (els esquemes i les seqüències de programació es descriuen en els passos següents).

3. Circuit de rellotge en temps real:

El segon circuit més important del dispositiu. El seu propòsit és proporcionar dades de data i hora, amb el requisit d’emmagatzemar-les, sense dependència de la connexió d’alimentació d’entrada, és a dir, que s’actualitzen les dades de temps en mode en temps real. Per tal que el component RTC sigui capaç de continuar canviant les dades de data i hora, s’afegeix al circuit una bateria de 3V amb cèl·lula. L'IC és DS1302, el seu funcionament es descriu en altres passos.

4. Interfície d'entrada: polsadors:

Els commutadors PB d’entrada proporcionen una interfície d’entrada per a l’usuari. Aquests commutadors es processen a la MCU i al programa definit pel dispositiu de control.

5. Pantalla LED de matriu

La pantalla del dispositiu consta de dues matrius LED alfanumèriques HCMS-2902 embolicades per IC, cada IC té 4 caràcters de matriu LED de 5 x 7 minúscules. Aquestes pantalles són senzilles d’utilitzar, són compatibles amb la comunicació de 3 fils i són de mida petita, tot el que necessitem en aquest projecte.

6. Llum de fons RGB:

La llum de fons que canvia de color es basa en un LED RGB extern, controlat per senyals PWM que provenen de la MCU. En aquest projecte, el LED RGB té un total de 4 pins: R, G, B i comú, on la paleta de colors R, G, B es controla mitjançant PWM mitjançant MCU.

7. Zumbador:

El circuit de timbre s'utilitza com a sortida de so, principalment amb finalitats d'alarma. L'interruptor BJT s'utilitza per proporcionar prou corrent al component del brunzidor, de manera que el volum serà prou fort per despertar una persona viva.

Pas 2: Parts i instruments

Parts i instruments
Parts i instruments

I. Electrònica:

A. Components integrats i actius:

  • 1 x ATMEGA328P - MCU
  • 2 x HCMS2902: pantalles AVAGO
  • 1 x DS1302 - RTC
  • 1 x 2N2222A - BJT (NPN)

B. Components passius:

  • Resistències:

    • 5 x 10K
    • 1 x 180R
    • 2 x 100R
  • Condensadors:

    • 3 x 0,1uF
    • 1 x 0,47 uF
    • 1 x 100uF
    • 2 x 22pF
  • 1 LED RGB de 4 pins
  • 1 x Buzzer
  • 1 x 32,768 kHz de cristall

C. Connectors:

  • 1 x connector micro-USB
  • Connector de pas estàndard de 2 x 6 pins (100mil).
  • Connector de 2 passos estàndard (100mil) de 4 x pins.
  • 1 x estoig de la bateria amb cèl·lula.

D. Diversos:

  • 3 interruptors de botó SPST
  • 1 x 3V bateria de cèl·lula.

E. Alimentació opcional:

  • 1 x LM7805 - Regulador lineal
  • 2 x 0.1uF Cap
  • 2 x 100uF Cap

II. Mecànica:

  • 1 x tancament de plàstic
  • 4 x accessoris de goma
  • 1 x prototip de placa de soldadura
  • 1 x capçalera MCU (en cas de fallada del microcontrolador)
  • 2 x cargols petits de 8 mm
  • 2 rentadores de 8 mm

III. Instruments i materials:

  • Cables de soldar
  • Tubs de contracció
  • Estany de soldar
  • Soldador
  • Cortador
  • Alicates
  • Pinces
  • Broques
  • Fitxer de mida petita
  • Diversos tornavisos
  • Pinça
  • Multímetre
  • Taula de pa (opcional)
  • Cable micro USB
  • Fitxer de mida mitjana
  • Pistola de cola calenta
  • Programador ISP AVR

IV. Programació:

  • Atmel Studio 6.3 o 7.0.
  • ProgISP o AVRDude
  • Microsoft Excel (per a la creació de caràcters de visualització)

Pas 3: Descripció de l’esquema

Descripció esquemàtica
Descripció esquemàtica

Per tal de facilitar la comprensió del funcionament del circuit, el pas esquemàtic es divideix en set subgrups. Heu de tenir en compte que els noms de xarxa es defineixen a la pàgina esquemàtica també defineixen les connexions entre subcircuits separats del dispositiu.

A. Tauler de components principals:

Com es va esmentar abans, tots els subcircuits adequats que volem que estiguin "dins" del dispositiu es col·loquen en una placa prototip de tall únic. Anem a l'explicació del funcionament dels circuits col·locats a la placa principal:

1. Circuit de microcontrolador:

La MCU que s’utilitza en aquest projecte és un ATMEGA328P. S'alimenta d'una font d'alimentació externa de 5V, en aquest cas: connector micro USB. Tots els pins d'E / S adequats estan connectats segons els requisits de disseny. El mapatge d'E / S de ports és fàcil d'entendre, ja que tots els noms de xarxa es defineixen exactament tal com s'utilitzarà al pas de programació. L'MCU té un circuit senzill de reinici de RC, que s'utilitza tant en la seqüència de programació com en la inicialització de potència.

La part crucial de l’MCU és el circuit de programació. Hi ha un connector de programació de 6 pins: J5, assegureu-vos que les xarxes VCC, GND i RESET siguin comunes al programador ISP extern i a la placa de components principals.

2. Circuit de rellotge en temps real:

El següent circuit és una part perifèrica principal del projecte. DS1302 és un IC de cronometratge de càrrega per defecte, que proporciona valors de data i hora processats a la nostra unitat de processament. DS1302 es comunica amb MCU mitjançant una interfície de 3 fils, similar a la comunicació SPI de 3 fils, a les línies següents:

  • RTC_SCK (Sortida): realitza la conducció i el mostreig de dades que es transmeten a la línia SDO.
  • RTC_SDO (E / S): línia de conducció de dades. Actua com a entrada a la MCU quan es reben dades de data / hora i com a sortida quan es transmeten les dades (vegeu el pas de Programació essencial per obtenir més explicacions).
  • RTC_CE: (Sortida): línia d’activació de la transmissió de dades. Quan MCU estableix ALTA, les dades ja es poden transmetre / rebre.

DS1302 requereix un oscil·lador de cristall extern de 32,768 KHz per al comportament adequat del circuit. Per evitar grans derivacions al sistema de recompte de circuits (els fenòmens de deriva són inevitables en aquests tipus de circuits integrats), cal col·locar dos condensadors de calibració a cada pin de vidre (vegeu les parts X1, C8 i C9 als esquemes). El 22pF va ser un valor òptim després de molts experiments amb el manteniment del temps en aquest projecte, de manera que, quan esteu a punt de soldar el circuit completament, assegureu-vos que hi hagi una opció per substituir aquests condensadors per uns altres valors. Però 22pF per a taulers de mida petita van funcionar bastant bé per a una deriva molt petita (7 segons al mes).

L’últim component, però no menys important, d’aquest circuit: s’hauria de col·locar la bateria de 3V amb cèl·lula a la placa per subministrar prou energia al DS1302 IC perquè continués la seva operació de recompte de temps.

4. Matriu LED de 8 caràcters:

La visualització del dispositiu es basa en circuits integrats de pantalla LED de 2 x 4 caràcters, programats mitjançant una interfície de 3 fils, similar al DS1302 del circuit RTC, amb diferència única, que la línia de subministrament de dades (SDI) es defineix com a sortida de la MCU (tret que vulgueu afegir capacitat de comprovació de l’estat al vostre circuit de visualització). Les pantalles es combinen en una extensió de 3 fils de sèrie, de manera que tots dos circuits integrats actuen com un sol dispositiu de visualització, on hi ha la possibilitat de programar-lo per a tota la definició de caràcters de visualització (vegeu la combinació de la sèrie SPI). Tots els noms de xarxa del circuit coincideixen amb les connexions adequades de la MCU. Tingueu en compte que hi ha xarxes comunes que estableixen la comunicació entre les pantalles i que no és necessari connectar les interfícies de comunicació de les pantalles amb la MCU. La programació i la seqüència de creació de caràcters es defineixen en altres passos. Circuit d'interfície d'usuari:

La interfície d’usuari es divideix en dos subgrups: sistemes d’entrada i sortida: sistema d’entrada: el propi dispositiu té entrada proporcionada per l’usuari definida com a tres commutadors de polsador SPST, amb resistències de tracció addicionals, per tal de conduir la lògica definida ALTA o BAIXA a l’MCU. Aquests commutadors proporcionen un sistema de control per a tot l'algorisme programat, ja que cal ajustar els valors d'hora / data, el control de menú, etc.

6. Sistema de sortida:

A. El circuit de zumbador proporciona sortida de so en ambdós estats, el canvi de menú reconeix l'algorisme de so i d'alarma. El transistor NPN s'utilitza com a commutador, proporcionant prou corrent al brunzidor, fent que soni en una densitat adequada. Buzzer està controlat directament pel programari de MCU. El LED RGB s’utilitza com a part de contrallum del dispositiu. Es controla directament mitjançant MCU, amb quatre opcions per triar la llum de fons: modes VERMELL, VERD, BLAU, PWM o OFF. Tingueu en compte que les resistències connectades en sèrie als pins R, G i B del LED tenen valors diferents, ja que cada color té intensitat diferent sobre un corrent constant. Per als LEDs verds i blaus hi ha les mateixes característiques, quan el vermell té una intensitat una mica més gran. Així, el LED vermell està connectat al valor de resistència més gran, en aquest cas: 180 Ohm (vegeu l'explicació del LED RGB). Connectors:

Els connectors es col·loquen a la placa principal per tal de permetre la comunicació entre components de la interfície externa, com ara: pantalla, LED RGB, interruptors d’entrada d’alimentació i polsadors i placa principal. Cada connector està dedicat a circuits diferents, de manera que la complexitat del muntatge del dispositiu disminueix dràsticament. Com es pot veure als esquemes, cada ordre de xarxes de connectors és opcional i es pot canviar si fa que el procés de cablejat sigui molt més senzill. Després d’haver tractat tots els conceptes d’esquema, anem al pas següent.

Pas 4: soldar

Soldadura
Soldadura
Soldadura
Soldadura
Soldadura
Soldadura

Probablement per a alguns de nosaltres és el pas més dur de tot el projecte. Per tal que sigui molt més fàcil fer funcionar el dispositiu tan aviat com sigui possible, s'hauria de completar el procés de soldadura en la següent seqüència:

1. MCU i connector de programació: es recomana soldar capçalera de 28 pins en lloc de la pròpia MCU per tal de poder substituir l'IC MCU en cas de fallada. Assegureu-vos que el dispositiu es pugui programar i encendre. Es recomana col·locar un adhesiu de descripció de pins al connector de programació (vegeu la tercera imatge).

2. Circuit RTC: després de soldar totes les peces necessàries, assegureu-vos que els condensadors de calibració siguin fàcils de substituir. Si voleu utilitzar la funda de la bateria de cel·la de 3V, assegureu-vos que coincideixi amb les dimensions de la carcassa del dispositiu.

3. Pantalla: s'han de soldar dos circuits integrats de pantalla a la placa separada de mida petita (imatge 1). Després de soldar totes les xarxes necessàries, cal preparar cables fora de bord (foto 4): aquests cables s’han de soldar i conduir al costat del tauler de la pantalla, tingueu en compte que la tensió i la tensió mecànica aplicada als cables no afecten les juntes de soldadura del tauler de visualització.

4. Als cables del pas anterior, s'han de col·locar adhesius d'etiquetes, cosa que facilitaria el procés de muntatge en el pas següent. Pas opcional: afegiu un connector masculí de pin individual a cada cable (estil Arduino).

5. Soldeu els connectors restants de la placa principal, inclosos els components perifèrics. Una vegada més, es recomana col·locar adhesius amb una descripció de pins per a cada connector.

6. Circuit zumbador: el zumbador es troba dins del dispositiu, de manera que s'ha de soldar a la placa principal, no hi ha necessitat del connector d'interconnexió.

7. LED RGB: per tal d’estalviar espai a la placa principal, he soldat les resistències de la sèrie als pins LED, on cada resistència correspon al seu propi color coincident i al pin MCU adequat (foto 5).

Pas 5: Muntatge

Muntatge
Muntatge
Muntatge
Muntatge
Muntatge
Muntatge

Aquest pas defineix l’aspecte del projecte: elèctric i mecànic. Si es van tenir en compte totes les notes recomanades, es realitzarà molt fàcilment el procés de muntatge. La següent seqüència pas a pas proporciona informació completa sobre el procés:

Part A: Recinte

1. Traieu tres forats, segons el diàmetre del botó del polsador (3 mm en aquest cas).2. Practicar un forat dedicat al brunzidor al lateral del recinte. Es pot utilitzar qualsevol diàmetre de broca desitjat. Practicar un forat petit com a base per moldre segons el connector USB que haureu d’utilitzar (en aquest cas, Micro USB). Després, realitzeu una mòlta amb el fitxer de mida petita per tal que coincideixi amb les dimensions del connector. Practicar forats relativament grans com a base per a la mòlta. Realitzeu una mòlta amb un fitxer de mida mitjana, segons les dimensions de la pantalla. Assegureu-vos que hi hagi ICs de visualització a la part externa del recinte. Perforeu un forat de mida mitjana a la part inferior del dispositiu, segons el diàmetre del LED RGB. Part B - Accessoris:

1. Soldeu dos cables a cadascun dels tres botons (GND i senyal). Es recomanen adhesius d’etiquetes i connectors d’un sol pin als cables. Connecteu quatre cables preparats als pins LED RGB. Col·loqueu adhesius d’etiquetes i tubs contraents a les juntes de soldadura. Connecteu quatre potes de goma a la part inferior del dispositiu. Part C - Connexió de les peces:

1. Col·loqueu el LED RGB a la part inferior del recinte, connecteu-lo al connector dedicat de la placa principal. Col·loqueu-lo amb la cola calenta. Col·loqueu tres commutadors de polsador, connecteu-los al connector dedicat de la placa principal i poseu-los amb la cola calenta. Col·loqueu el connector USB i connecteu-lo als pins de la font d'alimentació del connector de programació (VCC i GND). Assegureu-vos que la polaritat de les línies d’alimentació coincideix amb les parts soldades. Col·loqueu-lo amb cola calenta. Col·loqueu el tauler de visualització, connecteu-lo al connector dedicat. Col·loqueu-lo amb la cola calenta.

1. Es recomana afegir parells de rosca i cargol al recinte principal de la placa i a la coberta superior (tal com es mostra en aquest cas).2. Per tal d’evitar la fallada dels cables trencats, es té en compte el seu aspecte dins del recinte.

Pas 6: Introducció breu a la programació

Breu Introducció a la Programació
Breu Introducció a la Programació
Breu Introducció a la Programació
Breu Introducció a la Programació
Breu Introducció a la Programació
Breu Introducció a la Programació

Després de soldar totes les peces, es recomana fer la prova inicial del dispositiu abans de passar al pas final de muntatge. El codi MCU està escrit en C i ATMEGA328P es programa mitjançant qualsevol programador ISP (hi ha diversos tipus de dispositius de programació Atmel: AVR MKII, AVR DRAGON etc. - He utilitzat un programador d’ISP USB barat d’Ebay, controlat pel programari ProgISP o AVRDude). L'entorn de programació ha de ser Atmel Studio 4 i superior (us recomano les versions més recents de programari). Si s’utilitza un programador extern que no és inherent a Atmel Studio, cal donar una ruta d’arxiu.hex al programari de programació (normalment es troba a la carpeta Debug o Release del projecte). Assegureu-vos que abans de continuar amb el pas de muntatge, es pugui programar el dispositiu i que qualsevol procés bàsic de compilació i compilació de projectes dedicats a AVR es basa en el microcontrolador ATMEGA328P (vegeu el tutorial d’Atmel Studio).

Pas 7: la descripció del codi

La descripció del codi
La descripció del codi
La descripció del codi
La descripció del codi

L’algoritme de codi Decice es divideix en dues capes semi-separades: 1. Capa bàsica: comunicació amb circuits perifèrics, definició d’operacions del dispositiu, inicialització i declaracions de components. Capa d’interfície: interacció usuari-dispositiu, funcionalitat del menú, ajust del rellotge / brunzidor / color / alarma. La seqüència del programa es descriu a la imatge. 1, on cada bloc correspon a l'estat MCU. El programa descrit actua com a "sistema operatiu" bàsic que proporciona interfície entre el maquinari i el món exterior. La següent explicació descriu el funcionament essencial del programa per parts: Part A: Core Layer:

1. Inicialització d'E / S MCU: En primer lloc, cal inicialitzar components de maquinari: - Constants utilitzades per codi - E / S de ports - Interfície.- Declaracions de comunicació perifèrica.

2. Funcions generals bàsiques: algunes funcions són utilitzades per blocs de codi separats, que defineixen les operacions en pins controlats pel programari: - Activar / desactivar la comunicació RTC i la placa de visualització. Funcions amunt / rellotge avall.- Mostrar funcions de creació de caràcters. Inicialització perifèrica: després de configurar els ports d'E / S, es produeix la definició de funcions de comunicació entre circuits. En acabar - MCU comença la inicialització de RTC i mostra circuits utilitzant funcions definides anteriorment.

4. Definició de funcions bàsiques: en aquesta etapa, el dispositiu està configurat i està preparat per realitzar comunicacions amb alguns circuits perifèrics. Aquestes funcions defineixen: - Control de commutació de commutació - Funcionament amb LED RGB (especialment PWM) - Generador d'ones quadrades de zumbador

5. Funcions de visualització: a Internet no he trobat gaire informació sobre els circuits integrats HSMS que he utilitzat, així que he escrit la biblioteca només. Les funcions de visualització proporcionen una funcionalitat completa de visualització de caràcters, inclosa la visualització de caràcters ASCII i qualsevol nombre enter. Les funcions s’escriuen de manera generalitzada, de manera que si cal convocar funcions de visualització des de qualsevol part del codi, és fàcil utilitzar-les ja que es generalitzen per operació (per exemple: visualització de cadenes, visualització d’un sol caràcter, etc.).

6. Funcions d'operació RTC: totes les funcions RTC s'escriuen de manera generalitzada (similar al conjunt de funcions de visualització) segons el funcionament de DS1302 IC. El codi es basa en una biblioteca escrita, que està disponible en moltes variacions a gitHub. Com veureu al codi final, el conjunt de funcions de visualització i RTC s’inclouen als fitxers.c i.h separats. Part B: capa d’interfície:

1. Funció principal: a la secció void main (), hi ha la declaració de totes les funcions bàsiques d'inicialització. Just després de la inicialització de tots els components, l'MCU entra en un bucle infinit, on un usuari controla la funcionalitat del dispositiu.

2. Comutadors en temps real, llum de fons i control de pantalla: mentre s'executa en un bucle infinit, l'MCU realitza l'actualització a cada part del dispositiu. Tria quines dades voleu mostrar, quin botó es va prémer i quin mode de llum de fons es va escollir.

3. Funcions del menú d'usuari: aquestes funcions tenen forma d'arbre (vegeu la imatge X), on el sistema de menús i la jerarquia es defineixen com una màquina d'estats. Totes les màquines d’estats controlades per una entrada d’usuari: canvien el polsador, per tant, quan es prem el botó adequat, la màquina d’estats canviarà el seu valor. Està dissenyat de manera que qualsevol dels canvis al dispositiu realitzats al menú es canviï a l'instant.

4. Canvi de menú d'usuari: quan es proporciona l'entrada de l'usuari, l'estat del menú ha de canviar-ne l'estat. Per tant, aquestes funcions proporcionen un control que depèn de l'usuari sobre una màquina d'estats. En aquest cas concret: següent, anterior i OK.

Pas 8: Codi final i fitxers útils

I ja està! En aquest pas, podeu trobar tots els fitxers que necessiteu: - Esquemes elèctrics - Codi font complet - Generador de caràcters de visualització Característica opcional: hi ha una varietat de caràcters disponibles per mostrar-se a la biblioteca de circuits integrats de visualització, però alguns no s'inclouen. Si voleu crear caràcters per vosaltres mateixos, afegiu l'estat de majúscules i minúscules amb una referència ASCII a la funció Print_Character ('') (vegeu les funcions display.c). Espero que us sigui útil aquesta instrucció:) Gràcies per llegir-la.

Recomanat: