Arduino učionica: 1. -BLINK program 3. deo!

Još malo pa ćemo napisati naš prvi program, ali pre toga da povežemo sve kako treba i da objasnimo ponešto o tome. Ovo će biti opširniji tekst jer treba da pojasnimo mnogo stvari, ubuduće neće biti potrebno toliko objašnjavanja jer se podrazumeva da ste zapamtili sve što je pisalo u dosadašnjim tekstovima.

3.0. Prvi projekat

Kada se dobije ideja za realizaciju nekog projekta, prvo što treba uraditi je uvideti šta je sve potrebno za realizaciju. Mi želimo da napravimo sličan projekat kao što je Blink, dakle trebaju nam 1 LED dioda, 2 muško-muška jumpera i 1 otpornik od 330Ω. Kolo ćemo povezivati na protoploči, dakle i ona nam je potrebna. Nakon pravilnog povezivanja sledi programiranje tj. pisanje koda, a na kraju isprobavanje da li on radi kako smo zamislili.

 

3.1. Povezivanje elektronike

3.1.1. Uvod

Hajde prvo da definišemo šta znači pojam STRUJA. Struja predstavlja usmereno kretanje naelektrisanih čestica. Postoje pozitivno naelektrisane čestice –šupljine, i negativno naelektrisane čestice –elektroni. Da bi kroz neko kolo struja proticala potreban nam je izvor napajanja. Pored toga, neophodno je da kolo bude zatvoreno, jer ako ima prekid u kolu struja neće proticati.

Tehnički smer struje je usvojen da je od pozitivnog  ka negativnom potencijalu, dakle struja je usmerena od + ka – .

sema

Na slici je prikazana najelementarnija šema nakog elektronskog kola. Slovom U je obeležen jednosmerni izvor napajanja (ove horizontalne linije su simbol za neki elektrohemijski izvor napajanja kao što su npr. baterije), a slovima Rp je obeležen neki potrošač u kolu. Potrošač može biti bilo šta, sijalica, grejač itd. Takođe imamo i strelicu koja pokazuje smer kretanja struje, dakle od + kraja ka – kraju.

U većini računica slovo U predstavlja električni napon. Napon je razlika potencijala između 2 tačke. Te 2 tačke mogu biti polovi na bateriji, jedan pol baterije je +6V (V = Volt, merna jedinica za napon), a drugi -6V, i iz toga zaključujemo da je napon te baterije 12V.

3.1.2. Diode

Sada kada bar malo razumete pojam struje i napona možemo nastaviti dalje. Dioda je elektrotehnička komponenta koja se koristi za usmeravanje napona i struje, kao i za čuvanje nekog kola od inverznog napona i struje. Dakle, dioda propušta struju samo u jednom smeru, te je zato pogodna za zaštitu uređaja od inverzne struje, ako se kojim slučajem pojavi struja koja je suprotnog smera od struje koju očekujemo kroz neko kolo. Kao što rekosmo, koristi se i za usmeravanje, to usmeravanje se odnosi na pretvaranje naizmenične struje u jednosmernu, jer propušta struju u jednom smeru. Da nema njih, mi ne bismo imali jednosmernu struju, kompjutere, mobilne telefone, internet. 🙂

dioda

Na slici je prikazan šematski simbol za diodu. Dioda je okrenuta u smeru proticanja struje, dakle od + ka -, kao što smo obeležili na slici. Elektroda (metalni priključak) koji je povezan za + naziva se anoda, a elektroda koja je povezana za – naziva se katoda.

LED diode koje ćemo mi koristiti u ovom projektu se razlikuju od običnih dioda po tome što usled proticanja struje kroz nju ona emituje svetlost. Ove diode se koriste za indikaciju, ugrađuju se u veliku većinu uređaja kao indikatori da je nešto aktivno, u nekim uređajima trepću (kao npr. u ruterima kada imamo protok podataka onda imamo Send/Receive LED koja treperi), itd. LED diode se takođe koriste za pravljanje ekrana, svetala…

LED

Sada imamo LED diodu na slici. Ove dve crvene strelice koje su ukoso podignute predstavljaju to emitovanje svetlosti usled kog dolazi zbog proticanja struje. Crvene su jer to znači da emituje crvenu svetlost, ali nama nije bitna boja, možemo koristiti bilo koju boju.

LED diode, u zavisnosti od vrste, koriste više ili manje struje različitih napona. Neke najklasičnije koje se koriste za ovakve projekte kao što je naš su LED diode koje troše 20mA (A = Amper, merna jedinica za jačinu električne struje), napona 2.2V.

Sada se javlja mali problem. Imamo diode koje rade na 2.2V, a naš Arduino nam daje signal na pinu 5V, spalićemo diodu!!!??? Ne, nećemo. 🙂 Tu nam služe otpornici.

3.1.3. Otpornici

Otpornici su elektrotehničke komponente koje imaju veliku specifičnu otpornost. Njihova uloga je da oslabe, tj. ograniče struju u nekom kolu kako ne bi došlo do pregorevanja neke komponente. Takođe otpornici se koriste kao razdelnici napona i struje.

oznacavanje

Na slici su prikazani simboli otpornika koji se koriste u crtanju šema. Prvi simbol je američki, a drugi evropski. Susretaćemo se sa oba.

Ove komponente nisu polarisane, dakle struja sme proticati u oba smera, što nam olakšava povezivanje kola jer ne moramo obraćati pažnju na koju stranu ćemo okrenuti otpornik, za razliku kada povezujemo diode, elektrolitske kondenzatore i slično.

Postoje otpornici različitih otpornisti, ali i vrsta. Najosnovnija podela otpornika je podela na fiksne otpornike i na promenljive otpornike. Uglavnom mi ćemo u početku raditi samo sa fiksnim otpornicima, oni nemaju promenljivu otpornost. Promenljivi otpornici su potenciometri, fotootpornici, PTC i NTC otpornici… Mi ćemo se susretati sa potenciometrima, dakle to su otpornici promenljive otpornosti. Njihovu otpornost menjamo mehanički tako što okrećemo klizać po otporničkom materijalu i tako menjamo otpornost između dva kraja tog otpornika, ali o tome ćemo detaljnije kasnije, kada ih budemo koristili.

U ovom našem prvom projektu otpornik će nam služiti da ograniči struju da nam se ne spali LED dioda. Dakle moramo prilagoditi struju i napon za njenih 20mA i 2.2V, uz pomoć otpornika, a pre toga moramo izračunati koliki nam otpor otpornika treba, to ćemo izračunati sledećom formulom:

ogranicavanje_struje_na_led

R predstavlja otpornost otpornika, dakle to želimo da izračunamo. VS je napon izvora, dakle napon koji nam Arduino daje na pinu je 5V. Vf je napon LED diode, što je 2.2V, taj napon predstavlja pad napona na njoj. Slovom i je označena struja LED diode a to je 20mA (0.02A).

Kada ubacimo vrednosti u formulu dobićemo da nam je R = 140, dakle treba nam otpornik od 140Ω. U ovim situacijama obično se koriste otpornici sa većom otpornosti, npr. 220Ω ili 330Ω, jer može se desiti da LED diode nisu iste ili da su slabije pa nam treba veći otpor kako bismo ih sačuvali od pregorevanja. U svakom slučaju što je sigurno sigurno je, koristićemo 330Ω.

sema2

Ovako izgleda naša šema. Imamo LED i otpornik. Anoda diode povezana je sa pinom na arduinu, a katoda sa otpornikom. Otpornik je na drugom kraju povezan sa Ground pinom. Ground pin ili magistrala predstavlja tačku nultog potencijala, kako bi omogućilo da struja iz pina Arduina koji je na potencijalu 5V ima gde ta teče. Struja teče usled razlike u potencijalima, kao što smo ranije rekli da struja teče od + ka – tako je i ovde, samo što GND nije negativnog potencijala nego je u odnosu na pin od 5V manjeg potencijala i onda se tu pravi napon između te 2 tačke i omogućuje se strujanje elektrona.

Sada se postavlja pitanje kako ovo povezati? Pa lako, uz pomoć protoploče i jumpera.

3.1.4. Povezivanje

Posmatrajući protoploču možemo videti samo mnoštvo rupica i javljaju nam se pitanja, šta, kako, gde treba povezati? Vrlo je jednostavno. Na protoploči rupice su povezane jedna sa drugom ili vertikalno ili horizontalno. Povezane su metalnim kanalima ili „listićima“ koji se nalaze iza plastike. Pogledajmo sliku. Sa spoljih strana vidimo po 2 linije crvene i plave boje. Te sve rupice su povezane jedna sa drugom vertikalno, dakle sve plavo je povezano i sve crveno, sa jedne strane. Tako je isto i sa druge. A sada, izmedju tih „hot“ i „ground rail“ (crvena i plava/vruća i ground magistrala), nalazi se mnogo redova po 5 rupica, pa zatim jedan prorez u plastici, i onda opet po 5 rupica. Tih 5 rupica su povezane horizontalno jedna sa drugom.

protoploca

Jos jednom, brojevi 1, 5, 10, 15..itd, koje vidimo na obodu ploče predstavljaju broj reda, a pri vrhu imamo A, B, C, D, E…itd, slova koja predstavljaju kolonu. Rupica na mestu 1. reda A kolone je povezana sa rupicama B, C, D i E kolone. Tako je isto rupica u 1. redu F kolone povezana sa rupicama G, H, I, i J kolone. Isto je tako i za 2, 3, 4…50 red, sve rupice su povezane horizontalno u grupi po 5, jer se nalazi plastični prorez. A plave i crvene linije predstavljaju magistrale za napajanje. U crvenu ide „hot“ tj. jumper koji povezujemo sa +5V napajanjem na Arduinu, a u plavu, tj. „gnd“ ide jumper koji povezujemo sa GND pinom na Arduinu. Gledajte da vam svaka masa tj. gnd bude povezana međusobno. (masa je naš izraz koji se koristi za ground)

Untitled Sketch_bb - Copy

Evo povezivanja. Ovako treba da izgledanaše kolo da bi radilo. Zelenim jumperom povezan je pin 2 sa anodom LED diode. Anoda LED diode je nožica koja JE DUŽA od druge, a ta druga je katoda i ona se povezuje sa otpornikom. Drugi kraj otpornika se povezije sa GND.

Ako ste nestrpljivi da vidite da li vaše kolo radi, umesto na pin 2 možete jumperom povezati anodu na 5V pin na Arduinu, naravno dok je Arduino priključen na USB. Trebalo bi da LED sija. Ako ne sija pogledajte da li ste sve lepo povezali, da li ste na pravu stranu okrenuli LED, da li je duža nožica priključena na pin 2 a kraća za otpornik. Takođe obratite pažnju kada ubacujete nožice komponenti u rupice, nemojte mnogo gurati da ih ne biste iskrivili, ali gledajte i da budu dovoljno uvučene kako bi bio obezbeđen dobar kontakt.

 

3.2. Pisanje programa

Nakon što smo se uverili da smo sve povezali kako treba i da nam sve radi možemo početi sa pisanjem programa.

Kao što smo rekli u prethodnom delu, svaki Arduino program mora se sastojati iz funkcija setup() i loop(). Prva koju ćemo napisati je funkcija setup() u kojoj ćemo uneti neke od početnih naredbi koje su nam potrebne samo jedan put da se izvrše. Nakon toga sledi funkcija loop() gde ćemo uneti sve ostale naredbe koje želimo da se izvršavaju.

kod

Ovako bi trebalo da izgleda naš kod. Nakon svake naredbe napisao sam i komentar kako bih pojasnio šta ta naredba radi. Komentari se pišu nakon“ //“ komentar ili izmedju znakova  „*/“ komentar“/*“.

Komentari mogu biti vrlo korisni u pisanju nekih dužih programa kako bi se kasnije lakše razumeo kod, ukoliko se npr. nakon nekoliko nedelja ukaže greška u programu i ako mora kod da se otvara i menja, mnogo ga je teško razumeti tada i onda programerima trebaju komentari da bi se setili zašto su koristili određene funkcije i na kojim mestima.

Vratimo se na naš kod. Dakle, u prve 3 linije koda mi smo nešto definisali. Definisali smo 3 promenljive koje su celobrojnog tipa. Šta su to promenljive?

3.2.1. Promenljive

Promenljive su određeni podatak koji koristimo u programu. Za svaki podatak računar (ili mikrokontroler) mora ostaviti određeno mesto u memoriji i određenu količinu memorije. Promenljive mogu biti bilo kakav znakovni ili brojevni podatak. U našem primeru imamo promenljivu LED_PIN koja ima celobrojnu vrednost 2, i mi smo nakon definisanja te promenljive umesto broja 2 pisali ime promenljive, jer imaju isto značenje, samo je nama na taj način lakše da se snalazimo i da gradimo naš program.

Recimo da želimo da naš program sabere 2 broja koja će uneti korisnik, ta 2 broja moraju se sačuvati negde u nekoj memoriji, ta memorija je RAM memorija. Dakle svaka promenljiva zauzima parče memorije i u zavisnosti od tipa promenljive može zauzeti više ili manje memorije. Da bismo napravili prostor u memoriji za neku promenljivu potrebno je deklarisati je, tj. odrediti joj tip i ime.

Tipovi promenljivih:

Celobrojne promenljive: INT, SHORT INT, LONG INT

int broj1 = 328;

short int broj2 = 328;

long int broj3 = 32855958;

INT

Ovaj tip promenljive skladišti cele vrednosti, cele brojeve u memoriju. Svaka int promenljiva ima kapacitet od 16 bit-a i zbog toga u njoj je mogu skladištiti celi brojevi od -215 do +215

 

SHORT, LONG

Uz korišćenje int promenljivih susretaćemo se i sa short int i long int tipovima promenljivih. Short int promenljiva ima iste karakteristike kao sama int promenljiva, dok long int moze skladistiti cele brojeve ali većeg opsega vrednosti. Konkretno, može čuvati brojeve od -231 do +231 i zbog toga long int promenljive zauzimaju 32 bit-a memorije.

Realne promenljive: FLOAT, DOUBLE

float  broj1 = 2.3258;

double broj2  = 2.325877585;

Ova dva tipa promenljivih skladiste realne brojeve, ili fragmente od nekih celih vrednosti.

FLOAT promenljive imaju precizanost samo 7 decimalnih mesta dok promenljive tipa DOUBLE mogu skldištiti mnogo manje brojeve ili mnogo preciznije brojeve, čak do 15 decimalnih mesta, ali zbog toga zauzimaju više prostora u memoriji nego FLOAT promenljive.

BOOLEAN promenljive:

boolean stanje1 = TRUE;

boolean stanje2 = FALSE;

Ova promenljiva može imati samo 2 vrednosti, tačno ili netačno, tj TRUE ili FALSE.

Karakterne promenljive: CHAR

char znak = ‘A’;

Ova promenljiva čuva bilo koji karakter iz ASCII tablice. U sebi može sadržati samo 1 karakter, koji može biti neki znak, broj ili slovo. Prilikom definisanja char promenljivih njihova vrednost se piše između jediničnih apostrofa ‘znak’ .


Pored navedenih tipova promenljivih treba pomenuti i void promenljive. To su promenljive koje nemaju definisan tip i one mogu sadržati bilo koji tip promenljive. Najčešću primenu imaju pri pravljenju funkcija.

Davanje imena promenljivim

Prilikom davanja imena nekoj promenljivoj potrebno je obratiti pažnju na način zapisa tog imena. Na početku imena ne sme stajati nikakav znak niti broj, dakle ime promenljive mora početi slovom, ali je nebitno da li je slovo malo ili veliko. Od znakova može se koristiti samo donja crta _ , i brojevi.

Primeri davanja imena:


int ceo broj = 5; netačno, jer u imenu postoji prazno mesto tj. razmak, a razmak nije dozvoljen u imenima promenljivih

int ceo_broj = 5; ovo je ispravan način davanja imena promenljivoj

int 1_broj = 5; netačno, jer ime počinje brojem

 

Deklarisanje promenljivih

Kao što možemo zaključiti, sintaksa promenljive uvek je:

tip ime;

ovo se zove deklarisanje promenljive jer smo joj samo dali ime i odredili kojeg će biti tipa

tip ime = vrednost;

ovo se zove definisanje ili inicijalizovanje promenljive jer smo joj odredili i tip i ime i dodelili smo joj neku vrednost.


Pozdrav do sledećeg posta! 🙂

Nastavak pročitajte OVDE!

Autor:

Aleksa Ristić

Student, bloger, veliki entuzijast i kreativac

Advertisements

2 thoughts on “Arduino učionica: 1. -BLINK program 3. deo!

  1. Повратни пинг: 1. -BLINK program 2.deo! – Arduinisti

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s