LAKI PINGVINI
Nuts and Bolts (4): 74HC164
LEDeni output
Dejan PETROVIĆ
1. oktobar 2019.

N astavljamo seriju tekstova o integralcima i njihovoj praktičnoj upotrebi uz Arduino projekte. Ukoliko imate predlog šta biste voleli da vidite u ovom delu rubrike, slobodno nam se obratite putem foruma ili na neki drugi način. U međuvremenu, mi nastavljamo tamo gde smo stali, a prošlio put smo pisali o 74HCxxx porodici integralnih kola. Sada će biti reči o 74HC164 integralnom kolu, čipu koji pripada porodici pomerača registra i koji se može koristiti u SIPO režimu.

I ovi čipovi su osmobitna integralna kola, gde svako flip-flop kolo odgovara jednom bitu. Karakteriše ih serial input logički sklop, kao i asinhroni input (CLR). Čip prema oznaci pripada CMOS niskim potrošačima sa potrošnjom struje do 80 mikroampera. Izlazni izvodi se mogu opteretiti sa četiri miliampera pri naponu od 4,5 volti, a 25 miliampera maksimalno za ceo čip. Inače čip može da radi sa naponima od dva do šest volti, a mi ćemo ga uz naš Uno napajati sa pet volti, što bi trebalo da nam dozvoli nekih 4,4 miliampera struje po izvodu.

Uporedićemo ovaj čip sa 74HC595 o kome smo već pisali i napraviti paralelu, da bismo videli prednosti i mane, ali i da bismo lakše odredili koji bi bio idealan za određeni projekat. Počećemo od činjenice da 74HC164, za razliku od 74HC595, nema sopstveni skladišni prostor (buffered data), pa samim tim nije pogodan za neke projekte gde se to traži. Sa druge strane, ako ćemo preko njega paliti LED, mana će se pretvoriti u prednost jer ćemo dobiti fleš efekat na našim LED. Drugim rečima, dok 74HC595 ima LATCH, ovaj to nema, te, u zavisnosti od projekta, možemo imati data output na svakom izlazu pri svakom ciklusu kloka. Opet, ako ćemo ga koristiti za LED, ovo će biti vrlo zanimljivo. Problem se može delimično rešiti korišćenjem SPI interfejsa koji je dosta brži, ali zbog same prirode čipa ne u potpunosti.

Pomerač koji ćemo mi koristiti dolazi u DIP14 pakovanju, vrlo praktičnom za rad sa prototipskim pločama. Izvodi VCC i GND preko kojih će se čip napajati su postavljeni dijagonalno kao i kod prethodnih 74HCxxx čipova. Nasuprot VCC čip ima dva izvoda, A i B, oni se negde obeležavaju drugačije (DSA i DSB), ali suština je ista i koriste se za serial data input. Ako je izvod A HIGH, jedan bit će se pomeriti unutar registra, ukoliko postoji clock pulse. S obzirom na to da su i A i B u takozvanim AND vratima (AND gate), da bi se bit pomerio u registru, oba ova izvoda moraju biti ista. Drugim rečima, ako hoćemo da pomerimo taj jedan bit, moramo dovesti HIGH i na A i na B. Ovde vidimo da postoji mala razlika u odnosu na prethodne pomerače koje smo opisivali. Izvodi od QA do QH se nalaze sa strana čipa, po četiri sa obe strane i oni su osmobitni izlazi. Ako je uneti bit logička jedinica, na odgovarajućem Qx izvodu ćemo imati HIGH. CLK izvod je klok pomeračkog registra. Sa HIGH na CLK, govorimo čipu da pomeri bitove na desno za po jedno mesto, gde će na prvo mesto doći novi bit. CLR izvod je pin za „brisanje” registra. Kada je on LOW, obrisaćemo kompletan registar. U suprotnom, moramo ga vezati na HIGH. Više ovakvih pomerača se može vezati u kaskade tako što sa prvog čipa Q7 izvod, osim što povezujemo sa, recimo LED, vezujemo i sa A i B na drugom čipu. Sve ostalo je isto.

Sa Arduinom 74HC164 vezujemo na sledeći način. Na naponske izvode dovodimo pet volti i GND. Naveli smo da su serijski inputi A i B logičke AND kapije i, da bismo pomerali bitove unutar registra, moramo imati HIGH na oba izvoda. Ako imamo HIGH na jednom, a LOW na drugom ili je na oba LOW, pomerač će u registru upisati logičku nulu. Za logičku jedinicu potrebno je da na oba bude HIGH. Mi ćemo, iz navedenog razloga, za naš primer A vezati na pet volti, a B na digitalni pin 7 našeg Unoa. Qx izvode preko otpornika od 680R povezujemo sa LED, a ove dalje na GND. CLK izvod povezujemo sa digitalnim pinom 6 Unoa, a preko njega će naš 74HC164 znati da li ga čeka sledeći bit. CLR izvod vezujemo takođe na pet volti. Možemo ga vezati na neki digitalni pin i držati ga HIGH pa opciju brisanja registra koristiti po potrebi, što nama za naš primer ne treba. Prilikom odabira otpornika treba, kao i uvek, pogledati podatke u tehničkoj dokumentaciji, jer preporučene i maksimalne vrednosti u zavisnosti od primerka mogu da variraju. Ono što jeste zajedničko svim pomeračima registra je da unutrašnje diode dozvoljavaju upotrebu mnogo veće struje u sink konfiguraciji nego u source. Mi u našem primeru nećemo uključiti sve LED odjednom, tako da bi 680R otpornik u source kombinaciji sa crvenom LED bio sasvim u redu. Kao i kod drugih pomerača registra, izlazni izvod koji se ne koristi treba ostaviti otvorenim.

const int clockPin = 6;

const int dataPin = 7;

void setup(){

pinMode(clockPin, OUTPUT);

pinMode(dataPin, OUTPUT);

}

void loop(){

for(int i = 0; i<8; i++){

shiftOut(dataPin, clockPin, MSBFIRST, B00000001 << i);

delay(125);

}

for(int i = 0; i<8; i++){

shiftOut(dataPin, clockPin, MSBFIRST, B10000000 >> i);

delay(125);

}

}

Skeč ne treba puno objašnjavati, a koristili smo funkcije koje smo već pominjali u ranijim primerima. Efekat koji smo postigli je LED Chaser, a na mreži ima puno sličnih primera, gde se u dosta slučajeva koriste digitalni GPIO samog Unoa da bi se direktno uključile LED. Mi smo u ovom primeru za osam LED upotrebili samo dva GPIO na Unu. U štampanom mediju na slikama ne možete da vidite taj ghost efekat koje prave LED, a koje bi trebalo da su u tom trenutku u stanju logičke nule.

Pomerač registra iz naslova se može koristiti za rad sa više LED, a jedan od primera može biti i sedmosegmentni displej gde bi tačka bila osma LED koju će paliti. Možemo ga koristiti u slučajevima gde se ne traže česta pomeranja registara, poput statičkih displeja. Za nešto drugo, bolje je tražiti drugo rešenje. Porodica čipova 74HCxxx je zaista velika i nema smisla pisati o svakom primerku jer - život je kratak. Mi nastavljamo o nekim drugim komadima silicijuma.


PRETHODNI TEKST
SLEDEĆI TEKST
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Aktuelno štampano izdanje
JUN 2025
Doom: The Dark Ages
Doom iz mračnog doba drugačiji je od svih drugih Doomova, jer je Slayer koncipiran kao tenk sa štitom...
Clair Obscur: Expedition 33
Estetika Belle Époquea, gameplay u skladu sa kanonima JRPG-a, vrhunsko pripovedanje i ljubav prema igrama...
Computex 2025, Tajpej, Tajvan
AI NEXT
Ovaj, nekada ultra-PC-specifični sajam, odavno se proširio na srodne tehnologije, biznis rešenja i digitalne usluge, postavši varijanta azijskog C...
Gigabyte GeForce RTX 5070 Gaming OC 12G
Višak samopouzdanja
Kartica je sa hardverske strane vrlo kvalitetna, ali ništa ne može da nadomesti nedostatak snage „pod haubom”...
Asus ProArt P16 (H7606WP)
Pronalazak neverovatnog
Novi ProArt P16 donosi moderna rešenja, u dobro usaglašenom odnosu gabarita i performansi – alatka koju ćete sa ponosom nosati sa sobom...
Logitech ProX Superlight 2
Sve udvostručeno
Ovaj miš predstavlja jasnu indikaciju da najveći proizvođač ne želi da napusti nijedan segment tržišta...
Winhance 25.05
Popravka Prozora
U pitanju je alatka koja omogućava da se brzo rešite (većine) bloatwarea, ali i da obavite optimizaciju rada Windowsa...
TCL NXTPAPER 11 Plus
Momak za sve
Ovo bi bio najbolji tablet „za te pare” i da košta 100 evra više...
.rs: Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije
Unapređeno e Zakazivanje
Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije
Google Mariner, Google Astra i AI autonomni agenti
Uspon tihog softvera
Umesto kliktanja stručnog lica, softver će, već ove godine, u tihom, gotovo nečujnom načinu rada - završavati posao...
Fatal Fury: City of the Wolves
Fatal Fury je oduvek bio čudna cvećka u svetu borilačkih igara; takav je i ostao...
Arc Raiders
Novi extraction shooter iz pera autora dobrih delova franšize Battlefield (i potcenjenog The Finals)...
© 2025 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama