Sadržaj:

Registar izmjena 74HC164 i vaš Arduino: 9 koraka
Registar izmjena 74HC164 i vaš Arduino: 9 koraka

Video: Registar izmjena 74HC164 i vaš Arduino: 9 koraka

Video: Registar izmjena 74HC164 i vaš Arduino: 9 koraka
Video: Leap Motion SDK 2024, Studeni
Anonim
Registar izmjena 74HC164 i vaš Arduino
Registar izmjena 74HC164 i vaš Arduino
Registar izmjena 74HC164 i vaš Arduino
Registar izmjena 74HC164 i vaš Arduino

Registri pomaka vrlo su važan dio digitalne logike, djeluju kao ljepilo između paralelnog i serijskog svijeta. Smanjuju broj žica, upotrebu pinova, pa čak i pomažu u preuzimanju opterećenja s vašeg procesora jer mogu pohraniti njihove podatke. Dolaze u različitim veličinama, s različitim modelima za različite namjene i različitim značajkama. Ono o čemu ću danas razgovarati je 74HC164 8 -bitni, serijski paralelno izlaz, bez zaključavanja, pomak u registru. Zašto? Pa, za jedno, to je jedan od najosnovnijih registara pomaka koji olakšava učenje o tome, ali slučajno je to bio jedini koji sam imao (lol!) Ova instrukcija pokriva kako ovaj čip radi, kako ga spojiti, i povežite ga s arduinom, uključujući neke uzorke skica i LED sklopove. Nadam se da ćete svi uživati!

Korak 1: Dakle, što su registri pomaka?

Dakle, što su registri pomaka?
Dakle, što su registri pomaka?

Kao što je ranije spomenuto, oni dolaze u svim različitim okusima, a spomenuo sam i da koristim 8 -bitni 74HC164, serijski paralelni izlaz, bez zaključavanja, pomak registra pa što to sve znači?!? Prvo, ime 74-znači njegov dio logičke obitelji 74xx, a budući da svojom logikom ne može izravno kontrolirati jako veliku struju (16-20 ma za cijeli čip je uobičajeno), samo prenosi signale, ali to ne znači taj signal ne ide na tranzistor koji može prebaciti veće strujno opterećenje. HC znači da je to CMOS uređaj velike brzine, o tome možete pročitati na donjoj poveznici, ali ono što u osnovi trebate znati je da je niska uređaj za napajanje i radit će od 2 do 5 volti (pa ako koristite arduino od 3,3 volti, u redu) Također može raditi ispravno pri velikim brzinama. Ovaj čip ima tipičnu brzinu od 78 MHz, ali možete ići sporo ili brzo (dok se ne počne gušiti) kako želite www.kpsec.freeuk.com/components/74series.htm 164 je broj modela ovog čipa, postoji njihov veliki grafikon na wikipediaen.wikipedia.org/wiki/List_of_7400_series_integrated_circuits Sljedeća, 8 bita Registar pomaka sastoji se od japanki, japanka je 1 bit memorije, ovaj ha s 8 (ili 1 bajt memorije). Budući da se radi o memoriji, ako ne morate ažurirati registar, možete jednostavno prestati "razgovarati" s njim i on će ostati u onom stanju u kojem ste ga ostavili, sve dok s njim ponovno "ne razgovarate" ili resetirate napajanje. ostali registri logičke serije pomaka 7400 mogu paralelno izlaziti na 16 -bitni serijski izlaz. To znači da vaš arduino šalje podatke serijski (pri uključivanju impulsa jedan za drugim) i registar pomaka postavlja svaki bit na ispravan izlazni pin. Ovaj model zahtijeva samo 2 žice za upravljanje, tako da možete koristiti 2 digitalna pina na arduinu i razbiti ta 2 na još 8 digitalnih izlaza, neki drugi modeli su paralelni u serijskom izlazu, rade istu stvar, ali kao ulazi na arduino (na primjer NES gamepad) bez zasuna To može biti nedostatak ovog čipa ako vam zatreba. Kako podaci ulaze u registar pomaka putem serijske jedinice, oni se pojavljuju na prvom izlaznom pinu, kada uđe impuls takta, prvi bit se pomakne za 1 mjesto, stvarajući efekt pomicanja na izlazima, na primjer 00000001 će se pojaviti na izlazima kao 101001000100001001001000000100000001Ako razgovarate s drugim logičkim uređajima koji dijele isti sat i to ne očekuju, moglo bi doći do problema. Zaključani registri pomaka imaju dodatni skup memorije, pa kada podaci završe s unosom u registar, možete okrenuti prekidač i prikazati izlaze, ali dodaje još jednu žicu, softver i stvari s kojima možete pratiti. U slučaju ove upute kontroliramo LED zaslone, efekt pomicanja se događa tako brzo da ga ne možete vidjeti (osim kada prvi put uključite čip), a kad se bajt nađe u registru pomaka, nema više pomicanja. Mi ćemo kontrolirati vrstu grafikona, 7 segmenata i 16LED matrica matrice 4x4 s ovim čipom i softverom na arduinu koristeći samo 2 digitalna pina (+ napajanje i uzemljenje)

Korak 2: Osnovno ožičenje i rad

Osnovno ožičenje i rad
Osnovno ožičenje i rad
Osnovno ožičenje i rad
Osnovno ožičenje i rad

Ožičenje 74HC164 je 14 -pinski čip, ima 4 ulazna pina, 8 izlaznih pinova, napajanje i uzemljenje, pa počnimo s vrha. Igle 1 i 2 su serijski ulazi, postavljeni su kao logička vrata I, što znači da oboje moraju biti logički visoki (tj. 5 volti) kako bi se bit mogao vidjeti kao 1, nisko stanje (0 volti) na oba će se čitati kao nula. Ovo nam stvarno ne treba i s njim se lakše rješavamo u softveru, pa odaberite jedan i povežite ga s V+ tako da uvijek čita visoko. Odlučio sam se za korištenje kratkospojnika od pina 1 do pina 14 (V+) jer jednostavno možete preskočiti kratkospojnik za ploču preko čipa. Jedan preostali serijski ulaz (pin 2 u mojim shemama) ide na digitalni pin 2 arduina. Igle 3, 4, 5 i 6 na 74HC164 su prva 4 bajta izlaza Pin 7 se spaja na masu Skakanje udesno, pin 8 je pin sata, ovako registar pomaka zna da je sljedeći serijski bit spreman za čitanje, to bi trebalo biti spojeno na digitalni pin 3 na arduinu. Pin 9 treba izbrisati cijeli registar odjednom, ako se spusti, imate mogućnost da ga upotrijebite, ali ništa u ovom nedokučivom ne radi, pa ga povežite s V+pinovima 10, 11 12 i 13 posljednja su 4 bajta izlaza 14 je snaga čipova Operacija Prvo morate postaviti serijski ulaz registra (digitalni pin 2 na arduinu) visoko ili nisko, zatim morate okrenuti iglu sata (digitalni pin 3) s niskog na visoko, registar pomaka će pročitati podatke na serijskom ulazu i pomaknuti izlazne pinove za 1, ponovite 8 puta i postavili ste svih 8 izlaza. To se može učiniti ručno pomoću for petlji i digitalnih zapisa u arduino IDE -u, ali budući da t To je vrlo česta komunikacija na hardverskoj razini (SPI) koja ima jednu funkciju koja to radi umjesto vas. shiftOut (dataPin, clockPin, bitOrder, value) Samo mu recite gdje su podaci i pinovi sata spojeni na arduino, na koji način poslati podatke i što poslati, a za vas se pobrinuo (zgodno)

Korak 3: Projekti

Projekti
Projekti

U redu, dosta predavanja i teorije, napravimo zabavne stvari s ovim čipom! Postoje tri projekta koja možete isprobati u ovom uputstvu, prva dva su laka i mogu se izraditi u trenu. Treći, 4x4 LED matrica, zahtijeva više vremena i razmišljanja o izgradnji, zbog LED ožičenja. Popis dijelova Projekt 1: '2 Wire' bargraf LED kontroler zaslona 1 * 74HC164 Registar pomaka1 * matična ploča bez lemljenja1 * arduino ili arduino kompatibilan (5v) 1 * 330 ohm otpornik 1/4 vata 8 * normalni izlaz crvena LED -ica 12 * kratkospojne žice Projekt 2: '2 žica' 7 segmentni kontroler zaslona 1 * 74HC164 Registar pomaka1 * matična ploča bez lemljenja1 * kompatibilan s arduinom ili arduinom (5v) 1 * 330 ohm otpornik 1/4 vata 1 * zajednički katodni sedmo segmentni zaslon 9 * kratkospojne žice Projekt 3: '2 žica' 4x4 LED matrični zaslon 1 * 74HC164 Registar pomaka1 * arduino ili arduino kompatibilan (5v) 4 * 150 ohma 1 Otpornik od 1/4 vata 8 * 1Kohm Otpor od 1/8 vata (ili veći) 8 * NpN tranzistor (2n3904 ili bolji) 16 * normalna izlazna crvena LED dioda je sredstvo za njegovu konstrukciju i reguliranu snagu od 5 volti koja može podnijeti 160+ma (možete uključite sve LED diode odjednom poput kočionog svjetla)

Korak 4: Projekt 1 [pt 1]: Hardverski kontroler bargraf LED prikaza za '2 žice'

Projekt 1 [pt 1]: Hardverski kontroler za bargrafski LED zaslon s '2 žice'
Projekt 1 [pt 1]: Hardverski kontroler za bargrafski LED zaslon s '2 žice'
Projekt 1 [pt 1]: Hardverski kontroler za bargrafski LED zaslon s '2 žice'
Projekt 1 [pt 1]: Hardverski kontroler za bargrafski LED zaslon s '2 žice'

Spojite arduino i shift registar prema shemi, već imam 10 -segmentni bargrafski prikaz spreman za upotrebu na ploči i to ćete vidjeti na slici, ali možete učiniti istu stvar s pojedinačnim LED diodama Na drugoj stranici Izjavio sam da to nisu upravljački uređaji, da su logički uređaji, sa malim količinama struje koji mogu proći kroz njih. Da bi se radilo s 8 LED dioda, uz održavanje kruga jednostavnim, a ne kuhanjem registra pomaka, potrebno je da prilično ograničimo struju. LED diode su ožičene paralelno i dijele zajedničku masu (zajednička katoda), prije nego što uđu u napajanje napajanje moraju proći kroz otpornik od 330 ohma, ograničavajući ukupnu količinu struje koju bi sve LED diode mogle iskoristiti na 10 mA (na 5 volti). Zbog toga LED diode izgledaju bolesno, ali svijetle i služe za ovaj primjer, kako biste LED diode napajali odgovarajućom strujom, morat ćete umetnuti tranzistor u kojem registar pomaka može uključiti / isključiti izvor veće struje (vidi projekt 3) Za podatkovni pin registara pomaka (pin 2) potreban je za spajanje na arduino digitalni pin # 2 Pin sata na registru pomaka (pin 8) mora se spojiti na arduino digitalni pin # 3

Korak 5: Projekt 1 [pt 2]: '2 žica' Bargraph softver za kontroler LED zaslona

Projekt 1 [pt 2]: Softver za kontroler bargrafovog LED zaslona '2 Wire'
Projekt 1 [pt 2]: Softver za kontroler bargrafovog LED zaslona '2 Wire'
Projekt 1 [pt 2]: Softver za kontroler bargraf LED prikaza '2 Wire'
Projekt 1 [pt 2]: Softver za kontroler bargraf LED prikaza '2 Wire'

Primjer 1: Otvorite datoteku "_164_bas_ex.pde" Unutar arduino IDE -a, to je jednostavna skica koja vam omogućuje samo definiranje uključivanja ili isključivanja LED dioda na bargrafu. Prva 2 retka definiraju brojeve pinova koje ćemo koristiti za podatke i sat, ja upotrijebite #define over const integer, lakše se sjećam i nema prednosti za jedno ili drugo nakon sastavljanja #define data 2 #define clock 3 next je funkcija postavljanja void, radi samo jednom, pa se arduino okreće on, postavlja registar pomaka i nema što drugo raditi. Unutar funkcije postavljanja void postavili smo sat i pinove podataka kao OUTPUT pinove, a zatim pomoću funkcije shiftOut šaljemo podatke u registar pomaka void setup () {pinMode (sat, OUTPUT); // učinimo da pin sata bude izlazni pinMode (podaci, OUTPUT); // učinimo pin podataka izlaznim shiftOut (data, clock, LSBFIRST, B10101010); // pošaljite ovu binarnu vrijednost u registar pomaka} U funkciji shiftOut možete vidjeti njene argumentedata je podatkovni pin, clock je pin sata LSBFIRST se odnosi na to kojim se redoslijedom nalazi, kada ga zapisujete u binarnom zapisu (Bxxxxxxxx) 7. element pored B je najmanji bitni bit Prvo, ovaj se prvi unosi, pa završava na posljednjem izlazu nakon što se svih 8 bitova unese u B10101010 je binarna vrijednost koja se šalje u registar pomaka, i uključit će svako neparno svjetlo, pokušajte se igrati s različitim vrijednostima za uključivanje ili isključivanje različitih uzoraka i na kraju praznu petlju void (jer vam je potrebna čak i ako je ne koristite) void loop () {} // za sada prazna petlja Primjer 2: prvih 8 redaka je isto kao i prvih 8 redaka prvog primjera, zapravo se neće promijeniti za bilo koji drugi projekt, pa #define data 2 #definirati sat 3void setup () {pinMode (clock, OUTPUT); // učinimo da pin sata bude izlazni pinMode (podaci, OUTPUT); // učinimo da pin podataka bude izlaz No sada u postavci void postoji petica za count za 8, koja uzima prazan bajt i pomiče 1 bit u isto vrijeme počevši od krajnjeg lijevog bita i pomičući se desno. Ovo je unatrag od prvog primjera gdje smo krenuli od krajnjeg desnog bita i radili lijevo, ali pomoću MSBFIRST -a funkcija shift out šalje podatke na ispravan način. Također dodajemo kašnjenje u for petlji tako da se uspori dovoljno da bude vidljiv. for (int i = 0; i <8; ++ i) // za 0 - 7 do {shiftOut (podaci, sat, MSBFIRST, 1 << i); // pomak bita logička visoka (1) vrijednost za i delay (100); // odgodite 100 ms ili ga ne biste mogli vidjeti}} void loop () {} // prazna petlja za sada prenesite skriptu i sada biste trebali vidjeti da graf svijetli jedno po jedno svjetlo

Korak 6: Projekt 2: '2 Wire' 7 -segmentni kontroler zaslona

Projekt 2: '2 Wire' 7 -segmentni kontroler zaslona
Projekt 2: '2 Wire' 7 -segmentni kontroler zaslona
Projekt 2: '2 Wire' 7 -segmentni kontroler zaslona
Projekt 2: '2 Wire' 7 -segmentni kontroler zaslona

Pogledajte isječak vašeg 7 -segmentnog zaslona (imao sam samo dvostruki, ali samo polovicu) i upotrijebite donji crtež za spajanje svakog segmenta na ispravan bit na registru pomakabit 1 = pin 3bit 2 = pin 4bit 3 = pin 5bit 4 = pin 6bit 5 = pin 10bit 6 = pin 11bit 7 = pin 12bit 8 = pin 13 (ako želite koristiti decimalnu točku) A katodu zaslona kroz otpornik od 330 ohma i za napajanje uzemljenja sada otvorite seven_seg_demo.pde u arduino IDEF -u prvo vidite gdje definiramo podatke i pinove sata #define data 2 #define clock 3 Zatim postavljamo sve obrasce karaktera u binarnom obliku, ovo je prilično jednostavno, pogledajte donji crtež, ako vam je potreban srednji segment upišite jedan, sljedeći vam je potreban gornji segment, ako je tako, upišite drugi, nastavite to raditi sve dok ne pokrijete svih 8 segmenata, primijetite da je moj krajnji desni bit (bit 8) uvijek 0, to je zato što nikad ne palim decimalu točka. bajt nula = B01111110; bajt jedan = B00000110; bajt dva = B11011010; bajt tri = B11010110; bajt četiri = B10100110; bajt pet = B11110100; bajt šest = B11111100; bajt sedam = B01000110; bajt osam = B11111110; bajt devet sljedeći u void setup -u postavljamo naše podatke i pinove sata na izlaze void setup () {pinMode (clock, OUTPUT); // učinimo da pin sata bude izlazni pinMode (podaci, OUTPUT); // učinimo pin podataka izlazom3} zatim u void petlji koristimo shiftOut za prikaz svakog uzorka (broja) čekamo 1/2 sekunde i prikazujemo sljedeći, 0 do 9, budući da se to radi u funkciji void loop on će računati 0-9 i ponavljajte zauvijek. void loop () {shiftOut (podaci, sat, LSBFIRST, nula); kašnjenje (500); shiftOut (podaci, sat, LSBFIRST, jedan); kašnjenje (500); shiftOut (podaci, sat, LSBFIRST, dva); kašnjenje (500); shiftOut (podaci, sat, LSBFIRST, tri); kašnjenje (500); shiftOut (podaci, sat, LSBFIRST, četiri); kašnjenje (500); shiftOut (podaci, sat, LSBFIRST, pet); kašnjenje (500); shiftOut (podaci, sat, LSBFIRST, šest); kašnjenje (500); shiftOut (podaci, sat, LSBFIRST, sedam); kašnjenje (500); shiftOut (podaci, sat, LSBFIRST, osam); kašnjenje (500); shiftOut (podaci, sat, LSBFIRST, devet); odgoda (500);}

Korak 7: Projekt 3 [pt 1]: '2 Wire' 4x4 LED matrični zaslon

Projekt 3 [pt 1]: '2 Wire' 4x4 LED matrični zaslon
Projekt 3 [pt 1]: '2 Wire' 4x4 LED matrični zaslon
Projekt 3 [pt 1]: '2 Wire' 4x4 LED matrični zaslon
Projekt 3 [pt 1]: '2 Wire' 4x4 LED matrični zaslon

Projekt LED matrice 4x4 prilično je složeniji, ali gotovo je u izgradnji, ja se odlučujem za moje lemljenje na ploči za izradu perforacija, ali bi trebalo biti moguće replicirati se na ploču, samo puno više razmaknutih. razlikuje se po tome što registar pomaka ne upravlja izravno LED diodama, nego se izlazi registra registra pomaka šalju kroz otpornik od 1Kohm na bazu NpN tranzistora, kada je izlaz bita visok, propušta dovoljno struje i napona u tranzistor za prebacivanje veze između kolektora i emitera, kolektori su vezani na "čvrste" regulirane 5 volte. Emiteri tranzistora su spojeni na otpornike od 150 ohma, a otpornici su vezani na anode 4 LED -a u nizu i ograničava red na 20 mAma, iako pri crtanju slika na zaslonu odjednom svijetli samo 1 LED, pa je stoga blizu pune svjetline (u blizini se jako brzo uključuju i isključuju kako bi činili cijelu sliku) Postoje 4 retka i 4 stupaca, svaki redak dobiva otpornik i tranzistor, na svakom stupcu LED katode su povezane, naletjele na kolektor tranzistora, čija je baza također kontrolirana registrom pomaka, i na kraju izašle na masu. Velika verzija sheme www.instructables.com/files/orig/F7J/52X0/G1ZGOSRQ/F7J52X0G1ZGOSRQ.jpg

Korak 8: Projekt 3 [pt 2]: '2 Wire' 4x4 LED matrični zaslon

Projekt 3 [pt 2]: '2 Wire' 4x4 LED matrični zaslon
Projekt 3 [pt 2]: '2 Wire' 4x4 LED matrični zaslon
Projekt 3 [pt 2]: '2 Wire' 4x4 LED matrični zaslon
Projekt 3 [pt 2]: '2 Wire' 4x4 LED matrični zaslon
Projekt 3 [pt 2]: '2 Wire' 4x4 LED matrični zaslon
Projekt 3 [pt 2]: '2 Wire' 4x4 LED matrični zaslon

Registar pomaka kontrolira anodu i katode LED dioda u YX formatu, pogledajte sljedeći bit 1 = stupac 1 (krajnji desni) bit 2 = stupac 2bit 3 = stupac 3bit 4 = stupac 4bit 5 = redak 1 (gornji) bit 6 = redak 2 bita 7 = redak 3 bita 8 = redak 4 Da biste sliku iscrtali kvadratom 4x4 na grafičkom papiru i ispunili one koje želite prikazati, zatim napravite YX tablicu. Ispod ćete vidjeti mapiranje za usporedbu, kao i najbolje što možete učiniti na 4x4 "piksela" Za svaki popunjeni odjeljak zapisujem u kojem se stupcu (Y) nalazi, zatim u kojem se retku nalazi (X) Sada otvorite datoteku _4x4.pde u arduino IDE -u vidjet ćete naša stara 2 prijatelja #define data 2 #definirati sat 3 zatim niz cijelih brojeva int img = {1, 1, 4, 1, 1, 3, 4, 3, 2, 4, 3, 4}; Ako pogledate samo popis mojih zapisanih YX koordinata, bila bi velika muka u ruci pretvoriti te vrijednosti ručno, a mi imamo računalo … neka to učini! Pomaknite se tamo gdje se postavljaju praznine naš sat i pinovi podataka OUTPUTS void setup () {pinMode (clock, OUTPUT); // učinimo da pin sata bude izlazni pinMode (podaci, OUTPUT); // učinimo pin podataka izlazom 3} I zbunjujuće izgleda void petlja, za početak moramo deklarirati neke lokalne varijable void loop () {int Y; int X; out byte; Zatim for petlja, ova petlja mora biti dugačka koliko je unosa u img nizu, za ovu sliku sam koristio samo 6 piksela, tako da čini 12 YX koordinata. Učinim da preskoči svaki drugi broj pomoću i += 2, jer čitamo 2 koordinate po petlji za (int i = 0; i <12; i += 2) // broj točaka u img nizu, ovaj slučaj 12 {Sada čitamo Y unos na u nizu i oduzimamo jedan od njegove vrijednosti, jer bajtovi ne počinju na jednom, počinju na nuli, ali smo brojali od 1 // dobili prvi par YX kabela Y = (img - 1); // oduzimamo jedan budući da broj bitova počinje od 0 Zatim čitamo X unos na [i + 1] u nizu i oduzimamo jedan od njegove vrijednosti, iz istog razloga X = (img [i + 1] - 1); Nakon što imamo vrijednosti YX piksela, radimo nešto bitovno ili matematički i pomičemo se ulijevo. Prvo moramo pročitati vrijednost X i bez obzira na njezinu vrijednost pomaknemo je za toliko mjesta + 4 lijevo, pa ako je X 4 i dodajte 4 to je bit 8 (MSB), ponovno gledajući grafikon … bit 1 = stupac 1 (krajnji desni) bit 2 = stupac 2bit 3 = stupac 3bit 4 = stupac 4bit 5 = redak 1 (gornji) bit 6 = red 2bit 7 = redak 3bit 8 = redak 4Bit 8 je zadnji redNato je vrijednost Y također pomaknuta ulijevo, ovaj put samo od sebe, ništa se ne dodaje. Konačno su ta dva or'ed zajedno u 1 bajt umjesto u 2 pola bajta (grickanje), koristeći bitove ili (simbol |) uzima dva bajta i u osnovi ih zbraja, pretpostavimo da je X = 10000000Y = 00000001 -------------------- ILI = 10000001red 4 stupca 1 izlaz = 1 << (X + 4) | 1 << Y; I na kraju shiftOut za prikaz trenutne slike i nastavite to raditi sve dok nemamo više podataka u nizu … odgodite trenutak i petlju zauvijek, budući da smo podatke premještali ulijevo i da nam MSB treba biti na zadnjem izlaznom pinu izmjenskog registra prvo ga pošaljite. shiftOut (podaci, sat, MSBFIRST, izlaz); // pomaknemo bajt prema našem kašnjenju registra (1); // odgodite ga tako da ima priliku ostaviti svjetlosnu mrlju u vašim očima. Slobodno napravite vlastite slike i efekte, postoje 3 datoteke s uzorcima, smješko i šahovska ploča (koja više liči na pruge), i na kraju slučajni proizvođač iskre

Korak 9: Zaključak

Zaključak
Zaključak
Zaključak
Zaključak
Zaključak
Zaključak

Iznad svega, ovo je prilično zgodan mali čip, i drago mi je da sam ga skinuo sa starog komada elektronike koji je otišao u smeće. Može se koristiti i za druge stvari osim sustava za prikaz, ali svi vole svjetla i trenutne povratne informacije o tome Ono što se događa iznimno je korisno za vizualne mislioce poput mene. Također, oprostite mi kôd, arduino imam tek od trećeg tjedna u listopadu, i bio je to prilično veliki kurs. Ali to je sjajna stvar u vezi sa sustavom, ako sjednete i radite s njim, pun je urednih značajki koje čine upravljanje svijetom pomoću 8 -bitnog mikrokontrolera prilično lakim. Kao i uvijek, pitanja i komentari su dobrodošli i hvala na čitajući, nadam se da ste puno naučili

Preporučeni: