This shows you the differences between two versions of the page.
pm:prj2024:ddosaru:bogdan.manaila [2024/05/26 21:48] bogdan.manaila [Software Design] |
pm:prj2024:ddosaru:bogdan.manaila [2024/05/26 23:44] (current) bogdan.manaila [Rezultate Obţinute] |
||
---|---|---|---|
Line 21: | Line 21: | ||
</note> | </note> | ||
+ | |||
+ | |||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 53: | Line 55: | ||
+ | **Implementare** | ||
+ | |||
+ | Codul foloseste un singur firmware - Arduino Nano - ce realizeaza comunicarea dintre componente si calculeaza rezultatul dorit. | ||
+ | |||
**Biblioteci** | **Biblioteci** | ||
- LiquidCrystal_I2C | - LiquidCrystal_I2C | ||
Line 67: | Line 73: | ||
</file> | </file> | ||
- | **Implementare** | + | **Tastatura** |
- | + | ||
- | Codul foloseste un singur firmware - Arduino Nano - ce realizeaza comunicarea dintre componente si calculeaza rezultatul dorit. | + | |
- | + | ||
- | Tastatura | + | |
| 1 | 2 | 3 | D | | | 1 | 2 | 3 | D | | ||
Line 104: | Line 106: | ||
</file> | </file> | ||
- | Ecran | + | **Ecran** |
* prima linie: ultimele 16 caractere din ecuatie | * prima linie: ultimele 16 caractere din ecuatie | ||
* a doua linie: rezultatul ecuatiei / mesajul de eroare | * a doua linie: rezultatul ecuatiei / mesajul de eroare | ||
- | Functii: | + | <file cpp ecran.cpp> |
+ | // set the LCD address to 0x27 for a 16 chars and 2 line display | ||
+ | LiquidCrystal_I2C lcd(0x27, 16, 2); | ||
+ | </file> | ||
+ | **Variabile globale** | ||
+ | |||
+ | <file cpp global.cpp> | ||
+ | char prev; // previous character | ||
+ | bool point = false; // check if there is a point in the number | ||
+ | char op[50]; // the operation | ||
+ | char rez[50]; // the result | ||
+ | int mode = 0; // mode of operation | ||
+ | char x = '+'; // first operator | ||
+ | char y = '-'; // second operator | ||
+ | int ct = 0; // character count | ||
+ | int intrerupere = 0; // active/inactive interrupt | ||
+ | </file> | ||
+ | |||
+ | **Structuri** | ||
+ | <file cpp struct.cpp> | ||
+ | typedef struct cor { | ||
+ | char x; | ||
+ | double y; | ||
+ | } __attribute__((packed)) char_double; | ||
+ | </file> | ||
+ | |||
+ | **Functii** | ||
+ | * bzero - reinitializeaza un vector char | ||
+ | * timerIsr - incrementeaza variabile de inactivitate | ||
* check - verifica validitatea caracterului dat (true - adauga caracterul; false - mesaj de eroare + semnal buzzer) | * check - verifica validitatea caracterului dat (true - adauga caracterul; false - mesaj de eroare + semnal buzzer) | ||
* solve - verifica daca ecuatia poate fi calculata si daca da, calculeaza rezultatul | * solve - verifica daca ecuatia poate fi calculata si daca da, calculeaza rezultatul | ||
Line 118: | Line 148: | ||
- daca primeste raspuns se continua calculul | - daca primeste raspuns se continua calculul | ||
- daca este in intervalul de timp se verifica daca a fost apasata o tasta, o identifica si realizeaza operatiile specifice ei | - daca este in intervalul de timp se verifica daca a fost apasata o tasta, o identifica si realizeaza operatiile specifice ei | ||
- | |||
Line 131: | Line 160: | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | <html> |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | <iframe width="700" height="435" src="https://www.youtube.com/embed/mJzizz_5J8w?si=MRZctpZW6GYD5Q8e" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> |
- | </note> | + | </html> |
+ | |||
===== Concluzii ===== | ===== Concluzii ===== | ||
===== Download ===== | ===== Download ===== | ||
- | + | {{:pm:prj2024:ddosaru:calculator_analog.zip|}} | |
- | <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:prj2022:cc:dumitru_alin*. | + | |
- | </note> | + | |
- | + | ||
===== Jurnal ===== | ===== Jurnal ===== | ||