![]() | ![]() |
![]() |
| ![]() |
| ||||||||||||||||||||
Arduino: LE diode
Tri boje za ceo spektar
Intenzitet svetlosti LE dioda je direktno vezana za jačinu struje koja kroz njih prolazi. Što više struje, to više svetlosti. Međutim, ukoliko dovedemo više struje nego što je to dozvoljeno, lampica će jednostavno pregoreti. Ako malo obratimo pažnju na električne šeme, videćemo da uz svaku LE diodu ide prateći otpornik. Otpornici su pasivni elektronički elementi čija je funkcija da pruže otpor toku struje. Na taj način se ograničava maksimalna vrednost strujnog toka koja je bezbedna za naš uređaj. Da bi odredili veličinu otpornika, potrebno je da poznajemo određene karakteristike LE diode sa kojom radimo. Iako svi proizvođači uz svoje proizvode navode tehničke specifikacije, prilikom kupovine preko interneta često dobijamo narudžbinu bez bilo kakvih pratećih informacija. Zato nam ne preostaje ništa drugo nego da koristimo standardne vrednosti, koje nisu uvek optimalne, ali su dovoljne za normalno funkcionisanje. Glavne karakteristike koje nas interesuju su: radni napon, maksimalna jačina struje i preporučena jačina struje. Dva osnovna parametra svetlećih dioda su jačina struje i napon. Da bi videli svetlost, potrebno je da napon izvora energije bude veći od radnog napona. U sledećoj tabeli su prikazani podaci sa karakterističnim vrednostima radnog napona u zavisnosti od boje svetlosti: Kao što možemo zaključiti iz priloženog, što je manja talasna dužina svetlosti, potrebno je više napona. Ukoliko ne posedujemo podatke o maksimalnoj jačini struje i preporučenoj jačini struje, okvirno možemo uzeti da se vrednosti za sve LE diode kreću u opsegu od 18-30 miliampera i pri tome se vodimo pravilom da onima koje imaju manje vrednosti radnog napona dajemo manje struje, dok onima kod kojih je ta vrednost veća, propuštamo više struje. Tako ćemo, recimo, za crvenu svetleću diodu uzimati da je potrebna jačina struje u rangu 18-20 miliampera, za žutu 20-22 miliampera, a za zelenu i plavu 23-26 miliampera. Treba voditi računa o tome da maksimalne vrednosti skraćuju vek trajanja uređaja, pa se preporučuje da se koristi 80% predviđene jačine struje. Ukoliko smatrate da jačina svetlosti LE diode nije dovoljno intenzivna, možete pokušati sa promenom vrednosti otpornika za nekih 10% njegove trenutne vrednosti. Računanje električnog otpora se izvodi preko starog dobrog Omovog zakona: (R – otpor, Ui – napon izvora, Urn – radni napon, I – jačina struje) Uzmimo za primer da želimo da priključimo svetleću diodu crvene boje na naš Arduino, koji radi sa naponom od pet volti: R= (5 V - 1,8 V) / 0,02 A = 160 oma Za radni napon crvene LE diode uzeli smo srednju vrednost koja se kreće u okviru 1,6-2 volta i oduzeli je od napona Arduina (pet volti), pa smo to podelili sa 0,02 ampera (20 miliampera) i dobili minimalnu vrednost otpornika od 160 oma. Za plavu LE diodu imamo sledeću kalkulaciju: R= (5 V - 3,3 V) / 0,025 A = 68 oma
// niz portova za LED int ledNiz[] = {8, 7, 6, 5, 4, 3, 2, 1}; int pinovi = 7; // ukupno pinova (8) int pauza = 100; void setup() { for (int pin = 0; pin < pinovi; pin++) { // svi pinovi na OUTPUT pinMode(ledNiz[pin], OUTPUT); } } void loop() { // od prve do poslednje for (int pin = 0; pin < pinovi; pin++) { digitalWrite(ledNiz[pin], HIGH);// upali LED delay(pauza); digitalWrite(ledNiz[pin], LOW); // ugasi LED } // od poslednje do prve for (int pin = pinovi – 1; pin >= 0; pin--) { digitalWrite(ledNiz[pin], HIGH);// upali LED delay(pauza); digitalWrite(ledNiz[pin], LOW); // ugasi LED } }
Funkcija pina 13 (OE, Output Enable) je da dozvoli slanje stanja bitova latch registra na izlazne pinove. I ovde je standardno stanje logička nula, a najčešće se ovaj konektor fiksno povezuje na liniju GND, čime se omogućava konstantno prikazivanje podataka. Zanimljiva je funkcija pina 9 (Q7’), koji služi kao mesto izlaza serijskih podataka iz šift registra (Serial Out). Zahvaljujući njemu, moguće je iskombinovati veći broj 74HC595 kola u šift registar veličine 16, 24, 32, 40 ili još više bitova. To se postiže povezivanjem pina broj 9 na prvom čipu sa pinom 14 na sledećem.
Iako nisu u pitanju idealne vrednosti, u primeru smo koristili otpornike od 220 oma, kojih smo imali na raspolaganju u većoj količini. Žutom džamper žicom smo povezali D3 pin Arduina sa pinom 14 (DS) levog čipa, narandžastom pin D2 sa pinom 12 (ST_CP), a ljubičastom pin D1 sa pinom 11 (SH_CP). Bela žica povezuje pin 9 levog čipa sa pinom 14 (DS) desnog čipa i na taj način omogućavamo serijski prenos podataka među njima. int clock = 1; // SH_CP ulaz na 74HC595 int latch = 2; // ST_CP -//- int data = 3; // DS -//- void setup() { // svi pinovi su OUTPUT pinMode(clock, OUTPUT); pinMode(latch, OUTPUT); pinMode(data, OUTPUT); } void loop() { // upali sve digitalWrite(latch, LOW); shiftOut(data, clock, MSBFIRST, 0xFF); shiftOut(data, clock, MSBFIRST, 0xFF); digitalWrite(latch, HIGH);//B11111111-11111111 delay(1000); // upali neparne digitalWrite(latch, LOW); shiftOut(data, clock, MSBFIRST, 0xAA); shiftOut(data, clock, MSBFIRST, 0xAA); digitalWrite(latch, HIGH);//B10101010-10101010 delay(1000); // upali parne digitalWrite(latch, LOW); shiftOut(data, clock, MSBFIRST, 0x55); shiftOut(data, clock, MSBFIRST, 0x55); digitalWrite(latch, HIGH);//B01010101-01010101 delay(1000); // ugasi sve digitalWrite(latch, LOW); shiftOut(data, clock, MSBFIRST, 0x00); shiftOut(data, clock, MSBFIRST, 0x00); digitalWrite(latch, HIGH); delay(1000); }
shiftOut(DS pin, SH_CP pin, redosled, vrednost) Prva dva parametra ukazuju na to koji su pinovi Arduina povezani sa pomenutim nožicama integralnog kola. Argument redosled ukazuje na način pomeranja bitova. Može da bude MSBFIRST ili LSBFIRST i od njega zavisi da li će upisivanje bitova ići od najmanjeg ka najvećem ili obratno. Argument vrednost predstavlja osmobitni broj koji šaljemo šift registru. Mi smo koristili heksadecimalni prikaz brojeva pošto on olakšava definisanje šablona binarnih brojeva. Ako bi hteli da napravimo raspored od po dve lampice koje svetle, iza kojih dolaze dve koje ne svetle, to bi se binarnim brojevima pisalo kao: B11001100, a heksadecimalnim kao 0xCC. Višebojne (RGB) LED
digitalWrite(11, HIGH); // ukljuci crvenu digitalWrite(10, HIGH); // ukljuci zelenu delay(1000); digitalWrite(11, LOW); // iskljuci crvenu digitalWrite(10, LOW); // iskljuci zelenu delay(1000);
digitalWrite(11, LOW); // ukljuci crvenu digitalWrite(9, LOW); // ukljuci plavu delay(1000); digitalWrite(11, HIGH); // iskljuci crvenu digitalWrite(9, HIGH); // iskljuci plavu delay(1000);
int crvena = 0; int zelena = 0; int plava = 0; int pauza = 250; void setup() { // izlazni pinovi pinMode(11, OUTPUT); // crvena pinMode(10, OUTPUT); // zelena pinMode(9, OUTPUT); // plava } void loop() { crvena = random(255); zelena = random(255); plava = random(255); analogWrite(11, crvena); analogWrite(10, zelena); analogWrite(9, plava); delay(pauza); } Kod je dovoljno jasan i svodi se na generisanje slučajnih vrednosti za sve tri boje, a zatim se te vrednosti šalju na izlazne pinove u pseudo-analognom PWM obliku putem funkcije analogWrite(). Svetleće diode su zanimljivi elektronički elementi koji nisu teški za korišćenje, a istovremeno obezbeđuju dosta zabave i imaju širok spektar primena. Osim toga, videli smo da upotreba integrisanih kola za pomeranje sadržaja ne predstavlja nikakav bauk. U sledećem nastavku ćemo se pozabaviti tehnikama koje obuhvataju korišćenje uređaja kreiranih na osnovu svetlećih dioda, organizovanih u segmente i matrice. Igor S. RUŽIĆ |
| ||||||||||||||||||||||
![]() | |
![]() | ![]() |
Home / Novi broj | Arhiva • Opšte teme | Internet | Test drive | Test run | PD kutak | CeDeteka | WWW vodič • Svet igara Svet kompjutera Copyright © 1984-2018. Politika a.d. • Redakcija | Kontakt | Saradnja | Oglasi | Pretplata • Help • English | |
SKWeb 3.22 |