This shows you the differences between two versions of the page.
|
pm:prj2021:alazar:programmablesolderingstation [2021/06/03 19:16] 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?500|}} | + | {{: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. | ||
| === Software Design === | === Software Design === | ||
| - | * PID algorithm | + | Citirea de la modului MAX6675K necesita un delay de 200ms. Am realizat acest lucru non-blocant cu ajutorul functiei millis().\\ |
| - | * 2 Buttons | + | Toate butoanele au debounce, iar butonul principal, cel al encoderului rotativ suporta si long-press, pentru a schimba intre meniuri.\\ |
| - | * Multipage menu | + | 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.\\ |
| + | Factorii de proportionala-derivata stabilizeaza temperatura fara overshoot la aproximativ SET_TEMP-5.\\ | ||
| + | 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?200|}} | + | |
| - | {{:pm:prj2021:alazar:ss2.jpeg?200|}} | + | {{:pm:prj2021:alazar:diablo50002.jpg?600| Montaj in carcasa}} |
| + | |||
| + | |||
| + | {{: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 52: | 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]] |