This shows you the differences between two versions of the page.
pm:prj2024:vstoica:robert_daniel.fota [2024/05/27 02:44] robert_daniel.fota [Software Design] |
pm:prj2024:vstoica:robert_daniel.fota [2024/05/27 03:03] (current) robert_daniel.fota [Download] |
||
---|---|---|---|
Line 83: | Line 83: | ||
Librării și Surse 3rd-Party | Librării și Surse 3rd-Party | ||
+ | |||
Pentru acest proiect, au fost utilizate următoarele biblioteci: | Pentru acest proiect, au fost utilizate următoarele biblioteci: | ||
- | Servo.h: Pentru controlul precis al servomotoarelor. Aceasta bibliotecă simplifică atașarea și controlul servomotoarelor prin funcții ușor de utilizat. | + | * Unordered List ItemServo.h: Pentru controlul precis al servomotoarelor. Aceasta bibliotecă simplifică atașarea și controlul servomotoarelor prin funcții ușor de utilizat. |
- | LiquidCrystal.h: Pentru operarea display-ului LCD. Această bibliotecă permite inițializarea și controlul unui ecran LCD cu 16 pini. | + | * Unordered List ItemLiquidCrystal.h: Pentru operarea display-ului LCD. Această bibliotecă permite inițializarea și controlul unui ecran LCD cu 16 pini. |
- | LiquidCrystal_I2C.h: Pentru operarea display-ului LCD prin protocolul I2C, reducând numărul de pini necesari pentru conexiune. | + | |
Algoritmi și Structuri Implementate | Algoritmi și Structuri Implementate | ||
În cadrul firmware-ului, sunt implementate următoarele algoritmi și structuri: | În cadrul firmware-ului, sunt implementate următoarele algoritmi și structuri: | ||
- | Control PID Simplificat: Pentru ajustarea poziției panoului solar, se utilizează un algoritm simplificat de control bazat pe diferențele de intensitate luminoasă detectate de fotorezistori. | + | * Unordered List ItemControl PID Simplificat: Pentru ajustarea poziției panoului solar, se utilizează un algoritm simplificat de control bazat pe diferențele de intensitate luminoasă detectate de fotorezistori. |
- | Control PWM: Pentru controlul intensității LED-urilor în funcție de curentul produs de panoul solar. | + | * Unordered List ItemControl PWM: Pentru controlul intensității LED-urilor în funcție de curentul produs de panoul solar. |
- | Intreruperi Timer: Pentru realizarea unor operații periodice (cum ar fi actualizarea afișajului LCD) folosind Timerul 2, evitând conflictele cu biblioteca Servo. | + | * Unordered List ItemIntreruperi Timer: Pentru realizarea unor operații periodice (cum ar fi actualizarea afișajului LCD) folosind Timerul 2, evitând conflictele cu biblioteca Servo. |
- | Comunicare UART: Pentru trimiterea datelor despre performanța panoului solar și alte informații utile prin Serial Monitor pentru debugging. | + | * Unordered List ItemComunicare UART: Pentru trimiterea datelor despre performanța panoului solar și alte informații utile prin Serial Monitor pentru debugging. |
Surse și Funcții Implementate | Surse și Funcții Implementate | ||
Funcții principale din cadrul codului: | Funcții principale din cadrul codului: | ||
- | |||
setup(): | setup(): | ||
- | Inițializează servomotoarele și le setează la poziția inițială. | + | * Inițializează servomotoarele și le setează la poziția inițială. |
- | Configurează pini LED ca ieșiri. | + | * Configurează pini LED ca ieșiri. |
- | Inițializează LCD-ul și afișează un mesaj de pornire. | + | * Inițializează LCD-ul și afișează un mesaj de pornire. |
- | Inițializează UART pentru debugging. | + | * Inițializează UART pentru debugging. |
- | Configurează Timerul 2 pentru întreruperi periodice. | + | * Configurează Timerul 2 pentru întreruperi periodice. |
+ | loop(): | ||
- | ===== Rezultate Obţinute ===== | + | * Verifică dacă flag-ul de temporizare este setat pentru a actualiza datele și afișajul. |
+ | * Citește valorile fotorezistorilor și ajustează poziția servomotoarelor pentru a maximiza expunerea la lumină. | ||
+ | * Controlează intensitatea LED-urilor în funcție de curentul produs de panoul solar. | ||
+ | * Actualizează afișajul LCD cu procentajul și curentul produs de panoul solar. | ||
+ | * Trimite date prin UART pentru debugging. | ||
- | <note tip> | + | ISR (Interrupt Service Routine): |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
- | ===== Concluzii ===== | + | * Funcția ISR pentru Timerul 2, setată pentru a se declanșa la fiecare 1 ms, și pentru a seta un flag la fiecare secundă. |
- | ===== Download ===== | + | COD:{{:pm:prj2024:vstoica:cod_solartracker.zip|}} |
+ | FIXME | ||
- | <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**. | + | ===== Concluzii ===== |
- | </note> | + | |
- | ===== Jurnal ===== | + | ===== Download ===== |
- | <note tip> | + | {{:pm:prj2024:vstoica:fotarobert.zip|}} |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |