Differences

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

Link to this comparison view

pm:prj2021:alazar:programmablesolderingstation [2021/04/26 00:11]
radu_leonard.rica
pm:prj2021:alazar:programmablesolderingstation [2021/06/10 12:12] (current)
radu_leonard.rica
Line 7: Line 7:
  
 === Descriere generală === === Descriere generală ===
-Voi connecta ​LCD-ul prin conexiune paralela. \\ +Am conectat ​LCD-ul prin conexiune paralela. \\ 
-Voi connecta 3 butoane si encoderul rotativ, care vor genera o intrerupere la apasare. \\ +Am conectat 2 butoane si encoderul rotativ, ​cu care setam temperatura. \\ 
-LCD-ul ​va afisa implicit o pagina cu informatii(temperatura currenta, temperatura setata, procentul de putere). \\ +LCD-ul ​afiseaza ​implicit o pagina cu informatii(temperatura currenta, temperatura setata, procentul de putere). \\ 
-La apasarea lunga a encoderului rotativ se va intra intr-un meniu de setari in care putem modifica ​valorile de temperatura \\ +La apasarea lunga a encoderului rotativ se deschide ​un meniu de setari in care putem modifica ​daca vrem ca buzzerul sa fie activ sau nu. \\ 
-ale butoanelor si constantele algoritmului PID. \\ +Pentru a termostata temperatura letconului ​am folosit ​algoritmul PID. \\ 
-Pentru a termostata temperatura letconului ​voi folosi ​algoritmul PID. \\ +Am comandat lectonul ​cu ajutorul unu MOSFET ​IRLB8743PbF. \\ 
-Comanda o voi da cu ajutorul unu MOSFET. \\ +Citirea temperaturii ​am facut-o din senzorul(termocupla K) din letcon cu ajutorul unui modul MAX6675 prin SPI. \\ 
-Citirea temperaturii o voi face din senzorul din letcon cu ajutorul unui modul MAX6675 prin SPI. \\ +Cand ajunge la temperatura setata, statia ne anunta printr-un mesaj sonor generat de buzzer.
  
 === Hardware Design === === Hardware Design ===
   * Arduino Mega   * Arduino Mega
   * 1602 LCD   * 1602 LCD
-  * 1 LED 
   * Letcon Pensol IRON-N 24V 48W   * Letcon Pensol IRON-N 24V 48W
   * Encoder Rotativ   * Encoder Rotativ
-  * Butoane+  * Butoane
   * Sursa Industriala 24V 5A   * Sursa Industriala 24V 5A
-  * 1 MOSFET(eventual un BJT daca nu se deschide suficient de repede) +  * Un mosfet IRLB8743PbF 
-  * Rezistente +  * O rezistenta 2k pentru contrastul display-ului 
-  * Modul MAX 6675+  * Un modul MAX 6675K 
 +  * Un buzzer activ 
 +  * Un coborator de tensiune, LM2596 (Pentru a alimenta arduino de la sursa de 24V) 
 + 
 +=== Schema Electrica === 
 +{{:​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().\\ 
-  * 3 Programmable 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:​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}}
  
 === Jurnal === === Jurnal ===
    * 25 Aprilie -> Alegerea temei proiectului    * 25 Aprilie -> Alegerea temei proiectului
    * 25 Aprilie -> Crearea paginii    * 25 Aprilie -> Crearea paginii
 +   * 28 Mai -> Decupare carcasa 
 +   * 29 Mai -> Vopsire carcasa 
 +   * 1 Iunie -> Realizare circuit comanda incalzitor(cu irlb8743), testare impreuna cu senzorul de temperatura 
 +   * 3 Iunie -> Crearea logicii principale a codului, proiectare interfata 
 +   * 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]]
pm/prj2021/alazar/programmablesolderingstation.1619385071.txt.gz · Last modified: 2021/04/26 00:11 by radu_leonard.rica
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