Sunteți pe pagina 1din 15

http://www.robofun.

ro

Curs Gratuit Arduino si Robotica

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 Arduino GND Pin2 Potentiometru Arduino GND Arduino GND Arduino 5 V Arduino Digital 12 Arduino Digital 11 Arduino Digital 5

Pin1 Potentiometru Pin3 Potentiometru VO (PIN3) LCD GND (PIN1) LCD RW (PIN5) LCD VCC (PIN2) LCD R (PIN!) LCD " (PIN#) LCD D! (PIN11) LCD

http://www.robofun.ro/forum

http://www.robofun.ro

Curs Gratuit Arduino si Robotica

Arduino Digital ! Arduino Digital 3 Arduino Digital 2

D5 (PIN12) LCD D# (PIN13) LCD D$ (PIN1!) LCD

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); v id setu!() " lcd.#e$in(1%, 2); lcd.!rint(&hell , ' rld(&); ) v id l !() " lcd.setCurs r(*, 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 Arduino GND Arduino Analog ! Arduino Analog 5

LCD 5V LCD GND LCD LCD DA CL

http://www.robofun.ro/forum

http://www.robofun.ro

Curs Gratuit Arduino si Robotica

Arduino Leonardo

Arduino 5 V Arduino GND Arduino Arduino DA CL

LCD 5V LCD GND LCD LCD DA 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(*); v id setu!() " lcd.#e$in(2*, 4); lcd.set.ac/li$ht(0120); lcd.!rint(&hell , ' rld lcd.setCurs r(*, 1); lcd.!rint(&hell , ' rld lcd.setCurs r(*, 2); lcd.!rint(&hell , ' rld lcd.setCurs r(*, 3); lcd.!rint(&hell , ' rld ) v id l ) !() " * (&); 1 (&); 2 (&); 3 (&);

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); v id 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 , lcd1.setCurs r(*, 1); lcd1.!rint(&LC31, hell , lcd1.setCurs r(*, 2); lcd1.!rint(&LC31, hell , lcd1.setCurs r(*, 3); lcd1.!rint(&LC31, hell , ' rld * (&); ' rld 1 (&); ' rld 2 (&); ' rld 3 (&);

lcd2.set.ac/li$ht(0120); lcd2.!rint(&LC32, hell , ' rld * (&);

http://www.robofun.ro/forum

http://www.robofun.ro
lcd2.setCurs r(*, lcd2.!rint(&LC32, lcd2.setCurs r(*, lcd2.!rint(&LC32, lcd2.setCurs r(*, lcd2.!rint(&LC32, 1); hell , ' rld 1 (&); 2); hell , ' rld 2 (&); 3); hell , ' rld 3 (&); ' rld * (&); ' rld 1 (&); ' rld 2 (&); ' rld 3 (&);

Curs Gratuit Arduino si Robotica

lcd3.set.ac/li$ht(0120); lcd3.!rint(&LC33, hell , lcd3.setCurs r(*, 1); lcd3.!rint(&LC33, hell , lcd3.setCurs r(*, 2); lcd3.!rint(&LC33, hell , lcd3.setCurs r(*, 3); lcd3.!rint(&LC33, hell , ) v id 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

S-ar putea să vă placă și