Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Public-Domain Esti liber sa distribui acest document prin orice mijloace consideri (email publicare pe !ebsite " blog printare sau orice alt mijloc# atat timp cat nu aduci nici un $el de modi$icari acestuia% Codul sursa din acest document poate $i utili&at in orice $el de scop de natura comerciala sau nu $ara nici un $el de limitari% http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica
LCD 16 X 2, LCD 16 X 4, LCD 20 X 4 Toate aceste 'CD-uri se inter$atea&a cu Arduino exact la $el% (ingura di$erenta este dimensiunea lor% Ast$el 'CD-ul )* + , permite )* coloane si doua linii de caractere (adica in total -, de caractere# 'CD-ul )*+. permite . linii (*. de caractere in total# iar cel de ,/+. permite 0/ de caractere a$isate% Ca sa-l $olosesti cu Arduino ai nevoie de $ire de conectare si de un potentiometru de )/1 pentru reglarea contrastului (nu merge $ara el#% (c2ema de conectare este cea de mai jos (nu este simpla#% Daca esti la primele tale teste cu Arduino din pacate s-ar putea sa gasesti conectarea 'CD-ului o experienta $rustranta% (unt destul de multe $ire de conectat si daca gresesti unul singur nu-ti va $unctiona% 3ti recomand sa $aci montajul incet si sa veri$ici de cateva ori $iecare conexiune% Daca ai ajuns la $inal vei avea atat de multe $ire incat iti va $i di$icil sa ve&i care $ir duce unde% 4eri$ica cu atentie pe parcurs ca sa $ii sigur ca $iecare $ir duce acolo unde trebuie% Daca totusi nu ti-a iesit si vrei sa incerci ceva mai simplu iti recomand s2ield-ul cu 'CD ,+)* (2ttp5""!!!%robo$un%ro"bric6s"s2ield-lcd-)*x,# care nu $ace altceva decat sa-ti ascunda conexiunile complicate% http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica Arduino 5 V Pin1 Potentiometru Arduino GND Pin3 Potentiometru Pin2 Potentiometru VO (PIN3) LCD Arduino GND GND (PIN1) LCD Arduino GND RW (PIN5) LCD Arduino 5 V VCC (PIN2) LCD Arduino Digital 12 R (PIN!) LCD Arduino Digital 11 " (PIN#) LCD Arduino Digital 5 D! (PIN11) LCD http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica Arduino Digital ! D5 (PIN12) LCD Arduino Digital 3 D# (PIN13) LCD Arduino Digital 2 D$ (PIN1!) LCD #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); vid setu!() " lcd.#e$in(1%, 2); lcd.!rint(&hell, 'rld(&); ) vid l!() " lcd.setCursr(*, 1); lcd.!rint(+illis(),1***); ) Codul sursa de mai sus utili&ea&a libraria 'i7uidCr8stal (inclusa in mod standard in mediul de de&voltare Arduino#% (ingura modi$icare pe care va trebui sa o $aci cand $olosesti un alt tip de 'CD este sa sc2imbi parametrii din rutina de initiali&are% Ast$el pentru un 'CD ,/+. linia - se sc2imba la 9lcd%begin(,/ .#9% Alte rutine interesante ale librariei 'i7uidCr8stal sunt mai jos 5 clear() - curata ecranul complet% (e apelea&a $ara parametri : 9lcd%clear(#9 home() - muta cursorul in partea din stanga sus% (e apelea&a $ara parametri : 9lcd%2ome(#9 setCursor() - muta cursorul la po&itia speci$icata% Textul care urmea&a a $i scris este scris la po&itia speci$icata de aceasta metoda% Ast$el pentru a scrie text pe linia , coloana . vom apela 9lcd%setCursor()-#; lcd%print(9TE+T9#;9 noDisplay() - opreste 'CD-ul $ara a pierde textul a$isat% (e apelea&a $ara parametri : 9lcd%noDispla8(#9 display() - porneste 'CD-ul dupa ce a $ost oprit $olosind 9noDispla89% (e apelea&a $ara parametri : 9lcd%displa8(#9 scrollDisplayLeft() - deplasea&a textul a$isat pe 'CD cu un caracter spre stanga% (e apelea&a $ara parametri : 9lcd%scrollDispla8'e$t(#9 scrollDisplayRight() - deplasea&a textul a$isat pe 'CD cu un caracter spre dreapta% (e apelea&a $ara parametri : 9lcd%scrollDispla8<ig2t(#9 http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica LCD 16 X 2 pe I2C, LCD 20 X 4 pe I2C Ambele 'CD-uri sunt 'CD-urile obisnuite despre care am discutat mai sus carora li s-a atasat o placa suplimentara care comunica pe 3,C cu Arduino si setea&a cei 0 pini pentru controlul 'CD-ului la valorile care trebuie ast$el incat pe 'CD sa $ie a$isat text-ul care trebuie% 3n acest $el intre Arduino si 'CD sunt necesare doar doua $ire ((DA si (C'# in a$ara $irului de =ND si alimentare% http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica Conexiunile la Arduino sunt ca in cele doua imagini de mai jos% >ltimii doi pini din mu$a lipita pe placa 'CD-ului nu se $olosesc% 3n rest de la stanga la dreapta avem (DA (se conectea&a la pinul analogic . pe Arduino >N? sau la pinul (DA pe Arduino 'eonardo# (C' (se conectea&a la pinul analogic @ pe Arduino >N? sau la pinul (C' pe Arduino 'eonardo# @4 (se conectea&a la pinul @4 pe Arduino si pinul =ND (se conectea&a la pinul =ND#% http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica Arduino UNO Arduino 5 V LCD 5V Arduino GND LCD GND Arduino Analog ! LCD DA Arduino Analog 5 LCD CL http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica Arduino Leonardo Arduino 5 V LCD 5V Arduino GND LCD GND Arduino DA LCD DA Arduino CL LCD CL >rmatorul pas este actuali&area librariei 'CD ast$el incat sa suporte si comunicarea 3,C% Aergi la adresa 2ttp5""!!!%robo$un%ro"lcdB,/x.Bi,cBnegruBverde si descarca libraria din acea pagina% Este bine sa o incerci prima data pe cea de pe =3TC>B care este intotdeauna la &i% Dupa ce ai descarcat-o inc2ide mediul Arduino si desc2ide $older-ul 9libraries9 din $older-ul in care este instalat mediul Arduino% Dolder-ul 9libraries9 ar trebui sa arate similar cu imaginea de mai jos% Desc2ide si $older-ul 9LiquidCrystal9 ca sa ve&i ce $isiere sunt in interior% Ar trebui sa ve&i ceva similar cu ce este mai jos% http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica (terge apoi tot ceea ce este in acest $older si inlocuieste cu $isierele descarcate anterior% Ar trebui sa $ie similar cu imaginea de mai jos% http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica Porneste acum mediul de de&voltare Arduino si incearca programul de mai jos% #include &-ire.h& #include &LiquidCrystal.h& LiquidCrystal lcd(*); vid setu!() " lcd.#e$in(2*, 4); lcd.set.ac/li$ht(0120); lcd.!rint(&hell, 'rld * (&); lcd.setCursr(*, 1); lcd.!rint(&hell, 'rld 1 (&); lcd.setCursr(*, 2); lcd.!rint(&hell, 'rld 2 (&); lcd.setCursr(*, 3); lcd.!rint(&hell, 'rld 3 (&); )
vid l!() "
) Daca 'CD-ul tau nu arata ca mai sus pe spatele placutei rosii vei gasi un potentiometru de culoare albastra% Acest potentiometru stabileste contrastul 'CD-ului si probabil ca s-a miscat in timpul transportului% Dolosind o surubelnita mica un var$ de cutit ascutit $oar$eca sau pila de ung2ii roteste-l usor si urmareste in acelasi timp textul pe 'CD pana cand devine $oarte clar% (i partea $rumoasa abia acum vine E Cu acest tip de 'CD poti conecta simultan pana la opt 'CD-uri la acelasi Arduino $olosind aceeasi doi pini 3,C% Pentru aceasta intoarce 'CD-ul pe spate si observa cei - jumperi pentru http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica setarea adresei 3,C% 3n mod obisnuit nici unul dintre acesti jumperi nu este lipit asa ca adresa s2ield-ului este &ero (lucru pe care il ve&i in cod la linia LiquidCrystal lcd(0)#% Diecare 'CD va trebuie sa aiba o adresa 3,C di$erita asa ca ceea ce ai de $acut este sa $olosesti un letcon si putin $ludor pentru a conecta unul sau mai multi jumperi impreuna% Adresele sunt in cod binar ast$el ca $olosind cei trei jumperi poti obtine exact opt adrese% Pentru a conecta un jumper incal&este ambele pad-uri apoi adauga $ludor si intinde $ludorul ast$el incat sa $aca contact intre ambele pad-uri ca mai jos% Pentru a conecta mai multe 'CD-uri la acelasi Arduino tot ce ai de $acut este conecte&i toti pinii de (DA impreuna de la toate 'CD-urile toti pinii (C' impreuna si la $el si =ND si @4% 3n prealabil ai grija sa sete&i adrese 3,C di$erite lipind cei trei jumperi de adresa in con$iguratii di$erite% Apoi in cod de$inesti mai multe obiecte de tip 'CD ca mai jos% #include &-ire.h& #include &LiquidCrystal.h& LiquidCrystal lcd1(*); LiquidCrystalc lcd2(1); LiquidCrystal lcd3(2); vid setu!() " lcd1.#e$in(2*, 4); lcd2.#e$in(2*, 4); lcd.3#e$in(2*, 4); lcd1.set.ac/li$ht(0120); lcd1.!rint(&LC31, hell, 'rld * (&); lcd1.setCursr(*, 1); lcd1.!rint(&LC31, hell, 'rld 1 (&); lcd1.setCursr(*, 2); lcd1.!rint(&LC31, hell, 'rld 2 (&); lcd1.setCursr(*, 3); lcd1.!rint(&LC31, hell, 'rld 3 (&); lcd2.set.ac/li$ht(0120); lcd2.!rint(&LC32, hell, 'rld * (&); http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica lcd2.setCursr(*, 1); lcd2.!rint(&LC32, hell, 'rld 1 (&); lcd2.setCursr(*, 2); lcd2.!rint(&LC32, hell, 'rld 2 (&); lcd2.setCursr(*, 3); lcd2.!rint(&LC32, hell, 'rld 3 (&); lcd3.set.ac/li$ht(0120); lcd3.!rint(&LC33, hell, 'rld * (&); lcd3.setCursr(*, 1); lcd3.!rint(&LC33, hell, 'rld 1 (&); lcd3.setCursr(*, 2); lcd3.!rint(&LC33, hell, 'rld 2 (&); lcd3.setCursr(*, 3); lcd3.!rint(&LC33, hell, 'rld 3 (&); ) vid l!() "
) http://www.robofun.ro/forum http://www.robofun.ro Curs Gratuit Arduino si Robotica Aceasta a fost lectia 10. In final, as rea sa te rog sa ne oferi feed!ac" asupra acestei lectii, pentru a ne permite sa le facem mai !une pe urmatoarele. #ste or!a despre un sonda$ cu % intre!ari (oricare este optionala), pe care il poti accesa dand clic" aici. &au ne poti contacta direct prin email la contact'ro!ofun.ro . Iti multumim, #chipa Ro!ofun.R( http://www.robofun.ro/forum