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 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

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