Taula de continguts:

Mòduls de pantalla LED Arduino i TM1638: 11 passos
Mòduls de pantalla LED Arduino i TM1638: 11 passos

Vídeo: Mòduls de pantalla LED Arduino i TM1638: 11 passos

Vídeo: Mòduls de pantalla LED Arduino i TM1638: 11 passos
Vídeo: Драм-секвенсор Arduino: 8 дорожек, 16 шагов на такт, 8 тактов на паттерн 2024, Juliol
Anonim
Mòduls de pantalla LED Arduino i TM1638
Mòduls de pantalla LED Arduino i TM1638

Si necessiteu una manera ràpida i senzilla d’afegir entrades i sortides d’usuari a un projecte, aquests mòduls de visualització són interessants i divertits.

Contenen vuit dígits de LED vermell de 7 segments, vuit LEDs de color vermell / verd i també vuit botons per a l’entrada de l’usuari. Les unitats també es poden encadenar, permetent fins a cinc alhora, i s'inclou un cable curt amb cada mòdul, a més d'alguns espaciadors i perns curts, com es mostra a la imatge.

Pas 1:

Imatge
Imatge

Els espaiadors són prou llargs per elevar el PCB per sobre d’una superfície, tot i que per muntar les taules a qualsevol lloc que us sigui útil en necessitareu de més llargues. És possible que també vulgueu eliminar els endolls IDC si voleu muntar el mòdul a prop de la superfície d'un tauler. Aquesta seria una tasca senzilla de desoldar, ja que són endolls passants.

Pas 2:

Imatge
Imatge

La placa està controlada per un IC TM1638.

Es tracta d'un circuit controlador de LED i interfície de "Titan Micro Electronics". També podeu comprar aquests CI a PMD Way. També podeu descarregar el full de dades per obtenir més informació.

Pas 3: Introducció: maquinari

Introducció: maquinari
Introducció: maquinari

Maquinari: la connexió a una placa compatible amb Arduino (o a una altra MCU) és bastant senzilla. Els pinouts es mostren a la part posterior del PCB i coincideixen amb l’adaptació del cable de cinta. Si mireu l’extrem del cable com a tal.

El forat superior dret és el pin 1, sent el pin superior esquerre el pin 2, el pin inferior dret nou i el pin inferior esquerre deu. Per tant, els pinouts són:

  1. Vcc (5 V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. no connectat.

Per a l'ús d'Arduino, els pins 1 ~ 4 són els mínims necessaris per utilitzar un mòdul. Cada mòdul addicional necessitarà un altre pin digital connectat a STB2, STB3, etc. Més informació sobre això més endavant. Tingueu en compte que cada mòdul configurat a la lluminositat màxima amb cada LED encès consumeix 127 mA, de manera que seria aconsellable utilitzar alimentació externa amb més d’un mòdul i altres connexions amb plaques Arduino.

Pas 4: Introducció: programari

Programari: descarregueu i instal·leu la biblioteca T1638 des d’aquí. Gràcies i felicitacions a rjbatista a gmail dot com per la biblioteca. La inicialització de mòduls a l’esbós és senzilla. Incloeu la biblioteca amb:

#incloure

a continuació, utilitzeu un dels següents per a cada mòdul:

Mòdul TM1638 (x, y, z);

x és el pin digital Arduino connectat al pin del cable del mòdul 4, y és el pin digital Arduino connectat al pin del cable del mòdul 3 i z és el pin estroboscòpic. Per tant, si teniu un mòdul amb dades, rellotge i estroboscòpic connectats als pins 8, 7 i 6, utilitzeu:

Mòdul TM1638 (8, 7, 6);

Si teníeu dos mòduls, amb un estroboscòpic del mòdul primer connectat a Arduino digital 6 i un estroboscòpic del mòdul dos connectat al digital 5, utilitzeu:

Mòdul TM1638 (8, 7, 6); mòdul TM1638 (8, 7, 5);

i així successivament per obtenir més mòduls. Ara per controlar la pantalla …

Pas 5: els LED bicolors

Els LED bicolors
Els LED bicolors

Controlar els LEDs vermells / verds és fàcil. Com a referència, es numeren de zero a set d’esquerra a dreta. Per activar o apagar un LED únic, utilitzeu el següent:

module.setLED (TM1638_COLOR_RED, x); // Estableix el número LED x en redmodule.setLED (TM1638_COLOR_GREEN, x); // Estableix el número LED de color verd en module.setLED (TM1638_COLOR_RED + TM1638_COLOR_GREEN, 0); // Estableix el LED número x en vermell i verd

Utilitzar el mètode anterior pot ser senzill, és una mica ineficient. Una manera millor és abordar tots els LEDs en una sola declaració. Per fer-ho, enviem a la pantalla dos bytes de dades en hexadecimal. El MSB (byte més significatiu) consta de vuit bits, cadascun dels quals representa un LED verd encès (1) o apagat (0). El LSB (byte menys significatiu) representa els LED vermells.

Una manera senzilla de determinar el valor hexadecimal per controlar els LED és senzilla, ja que teniu una fila de LED: els primers vuit són de color verd i els segons vuit són de color vermell. Establiu cada dígit en 1 per a activat i 0 per a desactivat. Converteix els dos nombres binaris a hexadecimal i utilitza aquesta funció:

module.setLEDs (0xgreenred);

On el verd és el nombre hexadecimal dels LED verds i el vermell és el nombre hexadecimal dels LED vermells. Per exemple, per activar els tres primers LED en vermell i els tres últims en verd, la representació binària serà:

00000111 11100000 que en hexadecimal és E007.

Per tant, utilitzaríem:

module.setLEDs (0xE007);

que produeix la imatge tal com es mostra més amunt.

Pas 6: pantalla de 7 segments

Per esborrar la pantalla numèrica (però no els LED de sota), simplement utilitzeu:

module.clearDisplay ();

o per encendre tots els segments I tots els LED, utilitzeu el següent

module.setupDisplay (true, 7); // on 7 és intensitat (de 0 a 7)

Per mostrar números decimals, utilitzeu la funció:

module.setDisplayToDecNumber (a, b, fals);

on a és l’enter, b és la posició del punt decimal (0 per a cap, 1 per al dígit 8, 2, per al dígit 7, 4 per al dígit 6, 8 per al dígit 4, etc.) i l’últim paràmetre (veritable / false) activa o desactiva els zeros inicials. El següent esbós mostra l’ús d’aquesta funció:

#include // defineix un mòdul al pin de dades 8, al pin de rellotge 9 i al pin estroboscòpic 7 del mòdul TM1638 (8, 9, 7); sense signar llarg a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); retard (1); } per a (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); retard (1); }}

… amb els resultats que es mostren al vídeo.

Pas 7:

Image
Image

Una de les funcions més interessants és la possibilitat de desplaçar text per una o més pantalles. Per fer-ho, en realitat no necessiteu cap explicació, ja que l’esbós de demostració inclòs:

tm_1638_scrolling_modules_example.pde

inclòs amb la biblioteca TM1638 és fàcil de seguir. Només cal que inseriu el text a la cadena const char , assegureu-vos que els mòduls estiguin connectats segons la definició del mòdul al començament de l’esbós i que estigueu configurat. Per veure els caràcters disponibles, visiteu la pàgina de funcions. Tingueu en compte que la pantalla només té set segments, de manera que és possible que alguns personatges no semblin perfectes, però en context us donarà una bona idea; consulteu el vídeo en aquest pas.

Pas 8:

Finalment, també podeu dirigir-vos individualment a cada segment de cada dígit. Penseu en el contingut d'aquesta matriu:

valors de bytes = {1, 2, 4, 8, 16, 32, 64, 128};

cada element representa els dígits 1 ~ 8. El valor de cada element determina quin segment del dígit s'activa. Per als segments a ~ f, dp els valors són 1, 2, 4, 6, 16, 32, 64, 128. Així doncs, els resultats d'utilitzar la matriu anterior en la funció següent:

module.setDisplay (valors);

serà segons la imatge.

Pas 9:

Imatge
Imatge

Naturalment, podeu combinar valors per a cada dígit per crear els vostres propis caràcters, símbols, etc. Per exemple, utilitzant els valors següents:

valors de bytes = {99, 99, 99, 99, 99, 99, 99, 99};

hem creat segons la imatge en aquest pas.

Pas 10: els botons

Els valors dels botons es retornen com a valor de byte de la funció:

module.getButtons ();

Com que hi ha vuit botons, cadascun representa un bit d'un número binari que es retorna com un byte. El botó de l'esquerra retorna un decimal i el dret de 128. També pot retornar premudes simultànies, de manera que si premeu els botons un i vuit es tornen 129. Considereu l'esbós següent, que retorna els valors del botó que premeu en forma decimal, i després es mostra el valor:

#include // defineix un mòdul al pin de dades 8, al pin de rellotge 9 i al pin estroboscòpic 7 del mòdul TM1638 (8, 9, 7); botons de bytes; void setup () {} void loop () {botons = module.getButtons (); module.setDisplayToDecNumber (botons, 0, fals); }

i els resultats del vídeo.

Aquests taulers de visualització són útils i esperem que trobin una llar als vostres projectes. Aquest article us el proporciona pmdway.com: ofereix tot per a fabricants i aficionats a l'electrònica, amb lliurament gratuït a tot el món.

Recomanat: