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
MAJ 2025
Microsoft Majorana 1
Kvantna topologija
Topološki kvantni računar otporan je na uticaj kosmičkog zračenja, ali i dalje mora da se ohladi skoro do apsolutne nule...
AMD Ryzen 9 9950X3D
Jedan, da svima vlada
Ako vam je potreban najbrži procesor, i za igranje, i za ozbiljnije zadatke, Ryzen 9 9950X3D nema konkurenciju...
Gigabyte GeForce RTX 5070 Ti Aero OC 16G i GeForce RTX 5070 Ti Gaming OC 16G
I za kreativce, i za igrače
Sasvim sposoban da se nosi sa 4K rezolucijom u svim igrama i pruži sasvim pristojne performanse, dok u 1440p apsolutno blista...
Asus ROG Strix Scar 18 (G835LX)
Fantastična zver i kako je kupiti (3)
Laptop namenjen onima koji „ne žale pare” da imaju ono što je trenutno najbolje i najbrže...
Deset najboljih Microsoft PowerToys alatki
Najbolji od najboljih
PowerToys Run je alatka kojoj treba da se okrenete ukoliko vam sistemska rutina za pretragu ne odgovara...
Apple iPhone 16e
Malo muzike za mnogo para
Problem nije samo cena i slabiji grafički podsistem, već i trajanje baterije...
Cemu 2.6
Wii U emulacija
Cemu omogućava pokretanje i privođenje kraju oko 57 procenata igara „napisanih” za Wii U...
.rs: nove usluge eUprave - novi propisi - najava 5G
Mnogo eNoviteta
U novom esDnevniku roditelji će dobijati notifikacije za ocene i izostanke...
Trgovinski rat Istoka i Zapada
Velika igra, nesagledive posledice
Kao u igri „kukavice”, dve supersile kreću se velikom brzinom jedna prema drugoj, izazivajući drugu da prva skrene...
Blue Prince
Jedinstveni dijamant i jedna od najoriginalnijih igara u poslednjih nekoliko godina...
Tempest Rising
Skupa i ambiciozna fotokopija legendarnog RTS klasika Command & Conquer...
South of Midnight
Magična igra koja izgleda kao živa bajka, animirana u stilu filmskog serijala „Spiderverse”...
© 2025 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama