blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
2
SLEDOVAŤ BLOG
PHP, Arduino programátor
deadawp



Arduino - register 74HC595 + 7-segmentový displej
pridal deadawp 18.7. 2020 o 15:30



Posuvný register 74HC595 sme už v tomto blogu spomínali v súvislosti s možnosťami ich prepojenia a ich využitie v projektoch s Arduinom a Ethernet shieldom či už v režime webservera, alebo klienta s ovládaním celkovo 96 LED diód riadených prostredníctvom webového rozhrania.  

Dnes si ukážeme na možnosti ovládania 7-segmentového displeja prostredníctvom posuvného registra 74HC595. Projekt je škálovateľný a umožňuje pripojenie viacerých registrov a displejov tak ako v minulom projekte. Pre ovládanie posuvného registra 74HC595 používame 3 signály - dátový (SER), hodinový (SRCLK) a preklápací (RCLK).

8-bitový posuvný register 74HC595 môže ovládať 8 výstupov (QA až QH) a to osmicou bitov (jedným bajtom), ktorú do neho zapíšeme príkazom shiftOut. 

7-segmentový displej má na ovládanie 8 vývodov. 7 vývodov riadi jednotlivé segmenty (A až G), posledný vývod riadi bodku (DP). Všetky vývody majú pripojený 220ohm až 1kohm predradný rezistor (rovnako ako u klasických LED diód), ktorý obmedzuje pretekajúci prúd obvodom.

V našom prípade sa využíva iba 7 vývodov riadených z posuvného registra bez ovládania bodky. To znamená, že na ovládanie využívame hodnoty 0 až 127 (celkovo 128 funkčných hodnôt), nakoľko bitová hodnota 128 až 255 zasahuje už do ôsmeho bitu, ktorý sa už nevyužíva (nevyužívame DP signál - bodku). Okrem výpisu jednotlivých číslic prinášajú isté bitové kombinácie posuvného registra, ktoré na displej vypíšu aj inak nepoužívané znaky, ktoré je možné v projektoch využit.

Napríklad znaky: c, d, U, E, H, S, Z, J, o, ° a mnohé ďalšie, ktoré môžu slúžiť na výpis chybových kódov, problémov, diagnostiky, ako to poznáme z mikrovĺnnych trúb, či zváračiek, testerov matičných dosiek. Nájdu preto uplatnenie v širokej palete projektov, kde je možné využiť 7-segmentový displej. 

Pri testovaní prechádzania celého cyklu s následovným zapojením bolo zistené, pri akých hodnotách bajtu sa zobrazujú čísla 0-9.

POZOR, tieto hodnoty platia iba pre shiftOut() metódou MSB FIRST!  
Zapojenie 74HC595 --> Arduino (Uno, R3):

Vcc 5V
GND GND
SER (Data) D6
RCLK (Preklápací --> Latch) D7
SRCLK (Clock) D8
OE GND
SRCLR 5V

Zapojenie 74HC595 --> 7-segmentový displej:

Vývod 74HC595 Vstup 7-segmentového displeja
QA G
QB F
QC A
QD B
QE E
QF D
QG C

Hodnoty pre bajt (osmicu bitov) a vizualizované číslo na 7-segmentovom displeji:

00000001 == 1 (DEC) 0
00110111 == 55 (DEC) 1
01000010 == 66 (DEC) 2
00010010 == 18 (DEC) 3
00110100 == 52 (DEC) 4
00011000 == 24 (DEC) 5
00001000 == 8 (DEC) 6
00110011 == 51 (DEC) 7
00000000 == 0 (DEC) 8
00010000 == 16 (DEC) 9

POZOR, tieto hodnoty platia iba pre shiftOut() metódou MSB FIRST, pri metóde LSB FIRST budú hodnot v celom intervale intertované!

Celé zapojenie aj s vizualizáciou číslic a ostatných znakov všetkých možných 7-bitových kombinácii je možné vyskúšať v simuláre TinkerCAD. Použité je zapojenie so spoločnou anódou, na ktorú je privedených 5V!  Pri zapojení so spoločnou katódou je nutné pripojiť GND! 

Programová implementácia obsahuje výpis čísel 0 až 9 na displeji (bez opakovania) vo funkcii setup(). Jednou zo zakomentovaných častí je aj výpis celého 7-bitového intervalu so sekundovou pauzou na displej.

TinkerCAD projekt: https://www.tinkercad.com/things/6G6qyM6YI4h

Minulý projekt s kaskádou posuvných registrov je možné nájsť na: https://arduino.php5.sk/register-74hc595.php

Zapojenie môže byť rozšírené pre pripojenie viacerých posuvných registrov 74HC595 zapojených do kaskády s väčším počtom 7-segmentových displejov. Tento článok môže slúžiť ako základ pre projekty typu: Digitálna váha, hodiny, vizualizácia nastavených údajov, regulácie v Arduino  projektoch. Častokrát je problémom kontrast 7-segmentových displejov, kedy sa jednotlivé segmenty "zlievajú" a znižuje to čitateľnosť displeja. 


Riešenie je veĺmi jednoduché s využitím farebnej fólie, ktoré zvýši kontrast displeja.



Prístupov 2192
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
Ovládanie Arduina cez UART z počítača
[ 19.11.2020] (príspevkov 0)
ArduinoJson - knižnica pre parsovanie JS...
[ 15.11.2020] (príspevkov 0)
Overenie kradnutých vozidiel - Arduino +...
[ 11.11.2020] (príspevkov 0)
Hladinomer + Zrážkomer - Arduino / ESP82...
[ 2.11.2020] (príspevkov 0)
RFID vrátnik - update Október 2020
[ 29.10.2020] (príspevkov 0)
Digitálny potenciometer, prerušenie, deb...
[ 28.10.2020] (príspevkov 0)
Integrácia zrážkomera RG-11 do projektu ...
[ 22.10.2020] (príspevkov 0)
WiFi Termostat - ESP8266 - WiFiManager -...
[ 28.9.2020] (príspevkov 0)
Izbový termostat - Portovanie programu -...
[ 22.9.2020] (príspevkov 0)
RFID vrátnik - Ukončenie projektu
[ 9.9.2020] (príspevkov 0)