Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:alucaci:calculator-de-buzunar [2023/05/19 14:18]
costin.deonise [Rezultate Obţinute]
pm:prj2023:alucaci:calculator-de-buzunar [2023/05/19 16:14] (current)
alexandru.iercosan
Line 5: Line 5:
 GRUPA: 332CC GRUPA: 332CC
 </​code>​ </​code>​
- 
-<note tip> 
  
 Proiectul "​Calculator de buzunar"​ este un dispozitiv calculator construit cu ajutorul platformei de dezvoltare Arduino, care poate efectua operații matematice de bază precum adunarea, scăderea, înmulțirea și împărțirea a două numere. Scopul proiectului este de a arăta cum Arduino poate fi folosit pentru a construi dispozitive electronice utile, precum și pentru a încuraja oamenii să își îmbunătățească abilitățile în domeniul programării și ingineriei. Proiectul "​Calculator de buzunar"​ este un dispozitiv calculator construit cu ajutorul platformei de dezvoltare Arduino, care poate efectua operații matematice de bază precum adunarea, scăderea, înmulțirea și împărțirea a două numere. Scopul proiectului este de a arăta cum Arduino poate fi folosit pentru a construi dispozitive electronice utile, precum și pentru a încuraja oamenii să își îmbunătățească abilitățile în domeniul programării și ingineriei.
Line 15: Line 13:
  
  
-</​note>​+
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<note tip>+
 Proiectul "​Calculator de buzunar"​ este format dintr-un hardware și un software care lucrează împreună pentru a efectua operațiile matematice de bază. Scopul său este de a permite utilizatorului să efectueze operații matematice de bază, cum ar fi adunare, scădere, înmulțire și împărțire,​ folosind o tastatură numerică și un display LCD. Proiectul "​Calculator de buzunar"​ este format dintr-un hardware și un software care lucrează împreună pentru a efectua operațiile matematice de bază. Scopul său este de a permite utilizatorului să efectueze operații matematice de bază, cum ar fi adunare, scădere, înmulțire și împărțire,​ folosind o tastatură numerică și un display LCD.
  
Line 33: Line 31:
 {{:​pm:​prj2023:​alucaci:​schema.jpg?​300|}} {{:​pm:​prj2023:​alucaci:​schema.jpg?​300|}}
  
-</​note>​+
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> 
 Proiectul de hardware pentru acest calculator simplu constă în utilizarea următoarelor componente: Proiectul de hardware pentru acest calculator simplu constă în utilizarea următoarelor componente:
  
-1) Arduino Uno: Este placa de dezvoltare pe care se bazează proiectul. Arduino Uno este echipat cu un microcontroler ATmega328P și oferă numeroase pini de intrare/​ieșire digitali și analogici pentru conectarea și controlul componentelor externe. +  - Arduino Uno: Este placa de dezvoltare pe care se bazează proiectul. Arduino Uno este echipat cu un microcontroler ATmega328P și oferă numeroase pini de intrare/​ieșire digitali și analogici pentru conectarea și controlul componentelor externe. 
- +  ​- ​Display LCD: Se utilizează un display LCD alfanumeric,​ care afișează numerele și rezultatele operațiilor. Acesta este conectat la Arduino Uno utilizând protocolul I2C (Inter-Integrated Circuit), ceea ce permite transferul datelor pe doar două linii de conexiune. 
-2) Display LCD: Se utilizează un display LCD alfanumeric,​ care afișează numerele și rezultatele operațiilor. Acesta este conectat la Arduino Uno utilizând protocolul I2C (Inter-Integrated Circuit), ceea ce permite transferul datelor pe doar două linii de conexiune. +  ​- ​Tastatură numerică: Se utilizează o tastatură numerică matriceală 4x4, care oferă butoane pentru cifrele de la 0 la 9, precum și pentru operațiile matematice (adunare, scădere, înmulțire,​ împărțire sau paranteză rotundă deschisă, paranteză rotundă închisă, sin și cos). Tastatura este conectată la Arduino Uno prin intermediul piniilor digitali.
- +
-3) Tastatură numerică: Se utilizează o tastatură numerică matriceală 4x4, care oferă butoane pentru cifrele de la 0 la 9, precum și pentru operațiile matematice (adunare, scădere, înmulțire,​ împărțire sau paranteză rotundă deschisă, paranteză rotundă închisă, sin și cos). Tastatura este conectată la Arduino Uno prin intermediul piniilor digitali.+
  
 Conectori și cabluri: Pentru conectarea componentelor între ele și la Arduino Uno, sunt utilizate fire jumper și conectori adecvați. Acestea asigură conexiunea electrică corectă și stabilă între componentele proiectului. Conectori și cabluri: Pentru conectarea componentelor între ele și la Arduino Uno, sunt utilizate fire jumper și conectori adecvați. Acestea asigură conexiunea electrică corectă și stabilă între componentele proiectului.
Line 54: Line 49:
 În final, designul hardware al acestui calculator simplu implică organizarea componentelor (Arduino Uno, display LCD, tastatură numerică) într-un mod practic și accesibil, astfel încât utilizatorul să poată interacționa ușor cu calculatorul și să vadă rezultatele afișate pe display. În final, designul hardware al acestui calculator simplu implică organizarea componentelor (Arduino Uno, display LCD, tastatură numerică) într-un mod practic și accesibil, astfel încât utilizatorul să poată interacționa ușor cu calculatorul și să vadă rezultatele afișate pe display.
   ​   ​
-</​note>​+
  
 ===== Software Design ===== ===== Software Design =====
  
  
-<note tip>+
 Codul este pentru o simplă calculatoare care poate efectua operații de bază precum adunare, scădere, înmulțire,​ împărțire,​ sinus și cosinus. Codul utilizează o tastatură pentru introducerea numerelor și operatorilor și un afișaj LCD pentru a afișa intrarea și rezultatul. Codul este pentru o simplă calculatoare care poate efectua operații de bază precum adunare, scădere, înmulțire,​ împărțire,​ sinus și cosinus. Codul utilizează o tastatură pentru introducerea numerelor și operatorilor și un afișaj LCD pentru a afișa intrarea și rezultatul.
  
Line 110: Line 105:
  
  
-</​note>​+
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip>+
 În urma realizării proiectului,​ s-au obținut următoarele rezultate: În urma realizării proiectului,​ s-au obținut următoarele rezultate:
  
Line 129: Line 124:
   - Expresiile matematice pot include paranteze și funcții trigonometrice.   - Expresiile matematice pot include paranteze și funcții trigonometrice.
   - Rezultatul este afișat pe ecranul LCD.   - Rezultatul este afișat pe ecranul LCD.
-</​note>​+
  
 ===== Concluzii ===== ===== Concluzii =====
 +
 +Proiectul "​Calculator de buzunar"​ implementează o aplicație simplă de calculator capabilă să efectueze operații de bază precum adunare, scădere, înmulțire,​ împărțire,​ sinus și cosinus. Aceasta utilizează un keypad pentru introducerea numerelor și operatorilor,​ iar rezultatele sunt afișate pe un display LCD.
 +
 +Codul este structurat în trei funcții principale:
 +
 +setup(): Această funcție initializează keypad-ul și display-ul LCD.
 +loop(): Această funcție este apelată în mod repetat și se ocupă de intrarea și ieșirea calculatorului.
 +evaluateExpression():​ Această funcție evaluează expresia introdusă și returnează rezultatul.
 +Proiectul folosește bibliotecile Keypad și LiquidCrystal_I2C pentru gestionarea keypad-ului și a display-ului LCD, respectiv biblioteca StackArray pentru a implementa o stivă de numere.
 +
 +Funcția DetectButtons() se ocupă de gestionarea apăsărilor de butoane de pe keypad, inclusiv operatorii, cifrele și funcțiile trigonometrice. Ea actualizează expresia introdusă și setează flag-uri corespunzătoare pentru evaluarea ulterioară a expresiei și afișarea rezultatului.
 +
 +Funcția evaluateExpression() evaluează expresia introdusă utilizând algoritmul Shunting Yard și o abordare bazată pe stivă. Aceasta descompune expresia în numere și operatori, apoi efectuează operațiile corespunzătoare pe stivă pentru a calcula rezultatul.
 +
 +Funcțiile precedence() și evaluateTop() ajută la evaluarea expresiei și la efectuarea operațiilor matematice sau trigonometrice.
 +
 +Funcția DisplayResult() se ocupă de afișarea rezultatului pe display-ul LCD, inclusiv expresia introdusă și rezultatul calculat.
 +
 +În concluzie, acest proiect implementează un calculator simplu de buzunar care poate efectua operații matematice de bază și funcții trigonometrice. Este o aplicație practică și utilă pentru utilizatorii care doresc să efectueze calcule rapide și ușoare. Cu toate acestea, acest calculator are o funcționalitate limitată și nu suportă operații avansate sau funcții matematice complexe.
  
 ===== Download ===== ===== Download =====
  
-<note warning> 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). 
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**+{{:pm:prj2023:alucaci:deonise_alex_332cc.zip|}} 
-</​note>​+
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> + 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului+{{:​pm:​prj2023:​alucaci:​deonise_1.jpeg?​300|}} 
-</​note>​+{{:​pm:​prj2023:​alucaci:​deonise_2.jpeg?​300|}} 
 +{{:​pm:​prj2023:​alucaci:​deonise_3.jpeg?​300|}} 
 +{{:​pm:​prj2023:​alucaci:​deonise_4.jpeg?​300|}} 
 +{{:​pm:​prj2023:​alucaci:​deonise_5.jpeg?​300|}} 
 +{{:​pm:​prj2023:​alucaci:​deonise_6.jpeg?​300|}} 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ + 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** ​şi **Resurse Hardware**. +**Resurse Software** 
-</note>+ 
 +Bibliotecile necesare: 
 +  * Keypad: https://​www.arduino.cc/​reference/​en/​libraries/​keypad/​ 
 +  * LiquidCrystal_I2C:​ https://​www.arduino.cc/​reference/​en/​libraries/​liquidcrystal-i2c/​ 
 +  * StackArray: https://​github.com/​elechouse/​StackArray 
 + 
 +Tutoriale șexemple: https://​circuitdigest.com/​microcontroller-projects/​arduino-calculator-using-4x4-keypad 
 + 
 +**Resurse Hardware** 
 +  * Arduino: https://​cleste.ro/​kit-inva-are-arduino.h 
 +  * Keypad: https://​cleste.ro/​tasta-numerica-4x4.html 
 +  * LCD: https://​www.robofun.ro/​lcd/​modul-afisaj-lcd-lumina-fundal-albastra-i2c.html 
 + 
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/alucaci/calculator-de-buzunar.1684495130.txt.gz · Last modified: 2023/05/19 14:18 by costin.deonise
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0