This shows you the differences between two versions of the page.
pm:prj2021:alazar:programmablesolderingstation [2021/06/03 19:33] radu_leonard.rica |
pm:prj2021:alazar:programmablesolderingstation [2021/06/10 12:12] (current) radu_leonard.rica |
||
---|---|---|---|
Line 30: | Line 30: | ||
=== Schema Electrica === | === Schema Electrica === | ||
- | {{:pm:prj2021:alazar:ss3.jpg?800|}} | + | {{:pm:prj2021:alazar:ss3.jpg?600|}} |
- | Din schema lipseste sursa de 24V 5A, coboratorul de tensiune, heaterul(un rezistor), si circuitul de comanda cu mosfetul irlb8743. | + | Din schema lipseste sursa de 24V 5A, coboratorul de tensiune, heaterul(un rezistor), si circuitul de comanda cu mosfetul IRLB8743. |
=== Software Design === | === Software Design === | ||
- | Citirea de la modului MAX6675K necesita un delay de 200ms. Am realizat acest lucru non-blocant cu ajutorul functiei millis(). | + | Citirea de la modului MAX6675K necesita un delay de 200ms. Am realizat acest lucru non-blocant cu ajutorul functiei millis().\\ |
- | Toate butoanele au debounce, iar butonul principal, cel al encoderului rotativ suporta si long-press, pentru a schimba intre meniuri. | + | Toate butoanele au debounce, iar butonul principal, cel al encoderului rotativ suporta si long-press, pentru a schimba intre meniuri.\\ |
- | Pentru termostatare am folosit algoritmul PID. Am o banuiala ca perioada de esantionare este prea mica si derivata nu isi face efectul. | + | Pentru termostatare am folosit algoritmul PID. Am adaugat erorile la integrala cu 5 grade inainte de temperatura setata, pentru a nu aparea overshoot puternic la incalzirea de la temperatura mica la temperatura mare(de exemplu de la 50 la 350). Perioada intre sample-uri este de 0.15s.\\ |
- | La setarea unei temperaturi, algoritmul are putin overshoot, dar dupa o perioada integrala rezolva situatia si se stabilizeaza la +-1 grad celsius. | + | Factorii de proportionala-derivata stabilizeaza temperatura fara overshoot la aproximativ SET_TEMP-5.\\ |
- | Encoderul rotativ este atasat unei intreruperi. Astfel, am obtinut o interfata foarte fluida, care raspunde foarte bine la comenzi. | + | Termenul integralei stabilizeaza temperatura la SET_TEMP+-1.\\ |
- | | + | Encoderul rotativ este atasat unei intreruperi. Astfel, am obtinut o interfata foarte fluida, care raspunde foarte bine la comenzi.\\ |
+ | Temperaturile butoanelor se pot seta din meniul de setari si se salveaza in EEPROM.\\ | ||
+ | Compilarea am facut-o cu flag-ul -O2. | ||
=== Rezultate obtinute === | === Rezultate obtinute === | ||
- | {{:pm:prj2021:alazar:ss1.jpeg?500| Montaj in carcasa}} | + | {{:pm:prj2021:alazar:diablo50002.jpg?600| Montaj in carcasa}} |
- | {{:pm:prj2021:alazar:ss2.jpeg?500| Rezultatul final}} | + | {{:pm:prj2021:alazar:diablo50001.jpeg?600| Rezultatul final}} |
=== Concluzii === | === Concluzii === | ||
+ | In urma acestui proiect mi-am consolidat cunostiintele de programare, am invatat mai multe despre algoritmul PID, | ||
+ | despre realizarea unei interfete eficiente, non-blocante, foarte placute estetic si cel mai important am realizat un aparat foarte | ||
+ | robust, compatibil cu orice letcon de pe piata care are termocupla de tip K, foarte bun pentru a realiza in continuare alte proiecte de acest tip. | ||
+ | Majoritatea testelor le-am realizat cu o sursa liniara cu transformatoare. | ||
+ | === Link Github === | ||
+ | [[https://github.com/raduleo19/Soldering-Station | Github]] | ||
=== Download === | === Download === | ||
{{:pm:prj2021:alazar:solderingstation.zip| Cod sursa}} | {{:pm:prj2021:alazar:solderingstation.zip| Cod sursa}} | ||
+ | |||
=== Jurnal === | === Jurnal === | ||
* 25 Aprilie -> Alegerea temei proiectului | * 25 Aprilie -> Alegerea temei proiectului | ||
Line 60: | Line 69: | ||
* 3 Iunie -> Crearea logicii principale a codului, proiectare interfata | * 3 Iunie -> Crearea logicii principale a codului, proiectare interfata | ||
* 5-6 Iunie -> Montaj final si programarea completa | * 5-6 Iunie -> Montaj final si programarea completa | ||
+ | * 9 Iunie -> Adaugare setari temperatura butoane, rezolvare bug derivata cu semn inversat, adaugare sampling time 0.15s | ||
+ | * 10 Iunie -> Calibrare PID precizie +-1, varianta finala | ||
=== Bibliografie/Resurse === | === Bibliografie/Resurse === | ||
- | [[https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/programmablesolderingstation?do=export_pdf |Download pagina asta]] | + | [[https://ocw.cs.pub.ro/courses/pm/prj2021/alazar/programmablesolderingstation?do=export_pdf |Download PDF]] |