Despre ecranul LCD 16x2 I2C
Afisajul LCD 16x2 este o componenta foarte raspandita in proiectele cu Arduino, pentru ca permite afisarea a doua randuri a cate 16 caractere fiecare. Interfata I2C este un mare avantaj, reducand numarul de pini necesari la doar doua linii de comunicatie (SDA si SCL). In acest proiect, LCD-ul este folosit pentru a afisa intrebarea si cele patru optiuni de raspuns, doua pe fiecare rand, astfel incat sa fie clar si usor de citit.Componente necesare
1 x Placa de dezvoltare compatibila Arduino Uno R3
1 x Ecran LCD1602 cu modul I2C/IIC
1 x Modul cu 4 butoane
10 fire tata - mama
Schema de conectare

Cod sursa
Dupa ce ai realizat circuitul, e timpul sa introduci codul sursa, pentru a descarca codul sursa clic AICI.
Conecteaza placa de dezvoltare compatibila Arduino Uno la computer folosind portul USB. Apoi, mergi la meniul Tools si selecteaza tipul de placa si portul serial pe care il folosesti (optiunile Board si Port).
Pentru acest proiect este necesar sa descarci biblioteca LiquidCrystal by Arduino Adafruit. Pentru a incarca codul pe placa, apasa butonul Upload (simbolul cu sageata spre dreapta). In partea de jos a ferestrei, vei putea urmari mesajele de stare: Compiling Sketch, Uploading si Done. Odata ce incarcarea s-a finalizat cu succes, placa Arduino va incepe sa ruleze codul pe care l-ai incarcat.
Cum folosim vectori si matrici in proiectele Arduino
In programarea pentru Arduino, vectorii si matricile sunt structuri de date care ne permit sa stocam mai multe valori intr-o singura variabila, fiind foarte utile atunci cand avem de lucrat cu seturi de date legate intre ele, cum ar fi liste de masuratori, intrebari, raspunsuri sau valori de senzori.
In jocul nostru de intrebari si raspunsuri afisate pe LCD 16x2, le folosim pentru a stoca intrebarile, raspunsurile si raspunsurile corecte intr-o forma clara si usor de accesat.
Un vector este o colectie de elemente de acelasi tip, numerotate incepand de la 0. In proiectul nostru, avem un vector care contine toate intrebarile jocului:
String intrebari[4] = {
"Anod si catod?",
"Unitatea capacitatii?",
"Ce face releul?",
"Simbol pt. rezistor?"
};
Aici:
-
String este tipul de date (text).
-
intrebari este numele vectorului.
-
[4] indica faptul ca vectorul contine 4 elemente (4 intrebari).
-
Fiecare intrebare este accesata prin index: intrebari[0] pentru prima intrebare, intrebari[1] pentru a doua etc.
String raspunsuri[4][4] = {
{"A:Dioda", "B:Rezist", "C:Transf", "D:Condens"},
{"A:Volt", "B:Farad", "C:Ohm", "D:Henry"},
{"A:Redres", "B:Comuta", "C:Mas.tens", "D:Amplif"},
{"A:R", "B:U", "C:L", "D:Z"}
};
Aici:
-
Primul index
[rand]
reprezinta numarul intrebarii. -
Al doilea index
[coloana]
reprezinta optiunea de raspuns. -
De exemplu,
raspunsuri[0][1]
este raspunsul B la prima intrebare ("B:Rezist").
char corect[4] = {'A', 'B', 'B', 'A'};
Fiecare element din vector contine litera raspunsului corect pentru intrebarea corespunzatoare.
De exemplu:
-
corect[0]
este'A'
, deci raspunsul corect la prima intrebare este optiunea A. -
corect[2]
este'B'
, deci la a treia intrebare raspunsul corect este optiunea B.
Cum functioneaza proiectul?
La pornire, LCD-ul afiseaza prima intrebare si optiunile de raspuns. Apasand unul dintre cele patru butoane (A, B, C sau D), verifici raspunsul: daca este corect, primesti mesajul „Corect!” si se adauga un punct la scor; daca este gresit, apare „Gresit!”. Proiectul continua cu urmatoarea intrebare pana la final, iar la sfarsit este afisat scorul total obtinut.
Intrebarile si raspunsurile pot fi schimbate direct in cod, astfel incat poti crea propriile seturi de quiz-uri, fie ca sunt despre electronica, matematica sau orice alt domeniu.
Este un exercitiu excelent pentru a invata sa lucrezi cu afisajele LCD, sa gestionezi mai multe butoane si sa structurezi codul intr-un mod organizat. In plus, e foarte distractiv sa vezi cine obtine cel mai mare scor!
Daca ai intrebari sau sugestii, scrie-mi la electronica@bitmi.ro. Si daca faci acest proiect, trimite-mi poze sau video – abia astept sa vad cum l-ai personalizat!