INHOUDSOPGAWE:

Arduino en TM1638 LED -skermmodules: 11 stappe
Arduino en TM1638 LED -skermmodules: 11 stappe

Video: Arduino en TM1638 LED -skermmodules: 11 stappe

Video: Arduino en TM1638 LED -skermmodules: 11 stappe
Video: Цифровой модуль Led&Key (TM1638) подключаем к Arduino Pro Micro 2024, Julie
Anonim
Arduino en TM1638 LED -skermmodules
Arduino en TM1638 LED -skermmodules

As u 'n vinnige en maklike manier nodig het om gebruikersinvoer en -uitsette by 'n projek te voeg, is hierdie vertoonmodules interessant en lekker.

Dit bevat agt 7-segment rooi LED-syfers, agt rooi/groen LED's en ook agt knoppies vir gebruikersinvoer. Die eenhede kan ook daisy-vasgeketting wees, wat tot vyf gelyktydig toegelaat kan word, en 'n kort kabel is by elke module ingesluit, asook 'n paar afstandhouers en boute, soos in die prentjie getoon.

Stap 1:

Beeld
Beeld

Die afstandhouers is net lank genoeg om die PCB bo 'n oppervlak te lig, maar om die planke op enige nuttige plek te monteer, benodig u langer. U kan ook die IDC -voetstukke verwyder as u die module naby die oppervlak van 'n paneel wil monteer. Dit is 'n eenvoudige ontlontaak, aangesien dit voetstukke is.

Stap 2:

Beeld
Beeld

Die bord word beheer deur 'n TM1638 IC.

Dit is 'n LED- en koppelvlakbestuurder -IC van "Titan Micro Electronics". U kan hierdie IC's ook by PMD Way koop. U kan ook die datablad aflaai vir meer besonderhede.

Stap 3: Aan die gang - hardeware

Aan die gang - hardeware
Aan die gang - hardeware

Hardeware-Die verbinding met 'n Arduino-versoenbare bord (of ander MCU) is redelik eenvoudig. Die pinouts word aan die agterkant van die printplaat getoon en pas by die passtuk op die lintkabel. As u na die einde van die kabel as sodanig kyk.

Die gat regs bo is pen een, met die linker boonste pen twee, die onderste regter pen nege en onderste linker pen tien. Daarom is die pinouts:

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

Vir Arduino -gebruik is penne 1 ~ 4 die minimum wat nodig is om een module te gebruik. Elke bykomende module benodig 'n ander digitale pen wat gekoppel is aan STB2, STB3, ens. Meer hieroor later. Let daarop dat elke module wat op volle helderheid is met elke LED aan, 127 mA verbruik, dus dit sal verstandig wees om eksterne krag te gebruik met meer as een module en ander verbindings met Arduino -borde.

Stap 4: Aan die gang - sagteware

Sagteware - laai die T1638 -biblioteek af en installeer dit hier. Dankie en eer aan rjbatista by gmail dot com vir die biblioteek. Die inisiëring van modules in die skets is eenvoudig. Sluit die biblioteek in met:

#insluit

gebruik dan een van die volgende vir elke module:

TM1638 -module (x, y, z);

x is die Arduino digitale pen wat gekoppel is aan die module kabel pen 4, y is die Arduino digitale pen wat gekoppel is aan die module kabel pen 3, en z is die strofe pen. As u dus een module met data, horlosie en strobe aan penne 8, 7 en 6 gekoppel het, sou u die volgende gebruik:

TM1638 -module (8, 7, 6);

As u twee modules gehad het, met die module se strobe gekoppel aan Arduino digital 6 en module twee se strobe aan digitaal 5, sou u die volgende gebruik:

TM1638 module (8, 7, 6); TM1638 module (8, 7, 5);

en so meer vir meer modules. Nou om die skerm te beheer …

Stap 5: Die tweekleurige LED's

Die tweekleurige LED's
Die tweekleurige LED's

Dit is maklik om die rooi/groen LED's te beheer. Ter verwysing word hulle van nul tot sewe van links na regs genommer. Om 'n enkele LED aan of uit te skakel, gebruik die volgende:

module.setLED (TM1638_COLOR_RED, x); // stel LED nommer x in op redmodule.setLED (TM1638_COLOR_GREEN, x); // stel LED -nommer x in op groen module.setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // stel LED nommer x op rooi en groen

Die gebruik van die bogenoemde metode is eenvoudig, maar dit is ietwat ondoeltreffend. 'N Beter manier is om al die LED's in een verklaring aan te spreek. Om dit te kan doen, stuur ons twee grepe data in heksadesimaal na die skerm. Die MSB (die belangrikste byte) bestaan uit agt bisse, wat elk 'n groen LED aandui (1) of af (0). Die LSB (minste beduidende byte) verteenwoordig die rooi LED's.

'N Maklike manier om die heksadesimale waarde vir die beheer van die LED's te bepaal, is eenvoudig; die prentjie het een ry LED's - die eerste agt is groen en die tweede agt rooi. Stel elke syfer op 1 vir aan en 0 vir af. Skakel die twee binêre getalle om na heksadesimaal en gebruik hierdie funksie:

module.setLEDs (0xgroenrooi);

Waar groen die heksadesimale getal vir die groen LED's is en rooi die heksadesimale getal vir die rooi LED's. Byvoorbeeld, om die eerste drie LED's as rooi en die laaste drie as groen aan te skakel, sal die binêre voorstelling wees:

00000111 11100000, wat in heksadesimaal E007 is.

Ons sou dus gebruik maak van:

module.setLEDs (0xE007);

wat die beeld produseer soos hierbo getoon.

Stap 6: Die 7-segment skerm

Om die numeriese skerm te verwyder (maar nie die LED's hieronder nie), gebruik eenvoudig:

module.clearDisplay ();

of om elke segment EN al die LED's aan te skakel, gebruik die volgende

module.setupDisplay (waar, 7); // waar 7 intensiteit is (van 0 ~ 7)

Gebruik die funksie om desimale getalle te vertoon:

module.setDisplayToDecNumber (a, b, false);

waar a die heelgetal is, b is die posisie vir die desimale punt (0 vir geen, 1 vir syfer 8, 2, vir syfer 7, 4 vir syfer 6, 8 vir syfer 4, ens) en die laaste parameter (waar/ vals) skakel voorste nulle in of uit. Die volgende skets toon die gebruik van hierdie funksie aan:

#include // definieer 'n module op data -pen 8, klokpen 9 en strobospen 7 TM1638 -module (8, 9, 7); ongetekend lank a = 1; leemte -opstelling () {} leegte -lus () {vir (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); vertraging (1); } vir (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); vertraging (1); }}

… met die resultate in die video.

Stap 7:

Image
Image

Een van die interessantste kenmerke is die moontlikheid om teks oor een of meer skerms te blaai. Om dit te kan doen, is nie regtig 'n verduideliking nodig nie, aangesien die meegaande demonstrasie -skets:

tm_1638_scrolling_modules_example.pde

wat by die TM1638 -biblioteek ingesluit is, word maklik gevolg. Voeg net u teks in die const char string in, sorg dat die module (s) aan die begin van die skets volgens die module definisie bedraad is en dat u gereed is. Besoek die funksiebladsy om die beskikbare karakters te sien. Let daarop dat die skerm slegs sewe segmente bevat, sodat sommige karakters miskien nie perfek lyk nie, maar in konteks 'n goeie idee sal gee-kyk na die video in hierdie stap.

Stap 8:

Uiteindelik kan u ook elke segment van elke syfer individueel aanspreek. Oorweeg die inhoud van hierdie skikking:

greepwaardes = {1, 2, 4, 8, 16, 32, 64, 128};

elke element verteenwoordig syfers 1 ~ 8. Die waarde van elke element bepaal watter segment van die syfer aangeskakel word. Vir segmente a ~ f, dp is die waardes 1, 2, 4, 6, 16, 32, 64, 128. Die resultate van die gebruik van die skikking hierbo in die volgende funksie:

module.setDisplay (waardes);

sal volgens die beeld wees.

Stap 9:

Beeld
Beeld

U kan natuurlik waardes vir elke syfer kombineer om u eie karakters, simbole, ens. Gebruik byvoorbeeld die volgende waardes:

greepwaardes = {99, 99, 99, 99, 99, 99, 99, 99};

ons het volgens die beeld in hierdie stap geskep.

Stap 10: Die knoppies

Die waardes van die knoppies word as 'n bytewaarde van die funksie teruggestuur:

module.getButtons ();

Aangesien daar agt knoppies is, verteenwoordig elkeen 'n bietjie van 'n binêre getal wat as byte teruggegee word. Die knoppie aan die linkerkant gee desimale een terug, en die regterkant gee 128. Dit kan ook gelyktydige druk gee, sodat druk op knoppies een en agt 129 gee. Beskou die volgende skets, wat die waardes van die druk van die knoppies in desimale vorm teruggee die waarde:

#include // definieer 'n module op data -pen 8, klokpen 9 en strobospen 7 TM1638 -module (8, 9, 7); grepe knoppies; leemte -opstelling () {} leemte -lus () {knoppies = module.getButtons (); module.setDisplayToDecNumber (knoppies, 0, vals); }

en die resultate in die video.

Hierdie vertoonborde is nuttig en vind hopelik 'n tuiste in u projekte. Hierdie pos word deur pmdway.com aan u gebring - bied alles vir vervaardigers en elektronika -liefhebbers, met gratis aflewering wêreldwyd.

Aanbeveel: