Joc educativ cu Arduino: test cu 4 butoane si afisare pe LCD

Joc educativ cu Arduino: test cu 4 butoane si afisare pe LCD
Salutare, sunt Oana de la Bitmi.ro si astazi vreau sa iti arat un proiect amuzant si interactiv: un mic joc de tip quiz cu intrebari de electronica, afisate pe un ecran LCD 16x2, iar raspunsurile sunt selectate prin patru butoane. Este un mod excelent de a invata si testa cunostintele intr-un mod practic, folosind componente simple si usor de gasit.


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.

O matrice este un vector cu mai multe randuri si coloane. In jocul nostru, raspunsurile sunt organizate intr-o matrice bidimensionala:

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").
     

Avem si un vector separat pentru a indica raspunsul corect pentru fiecare intrebare: 

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.

Daca vrei sa extinzi jocul, tot ce trebuie sa faci este sa maresti dimensiunea vectorilor si matricilor si sa adaugi mai multe intrebari si raspunsuri in aceeasi structura.

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!

Compara produse

Trebuie sa mai adaugi cel putin un produs pentru a compara produse.

A fost adaugat la favorite!

A fost sters din favorite!