Programmable Soldering Station

Introducere

Proiectul are ca obiectiv implementarea unei statii programabile de lipit.
Statia va afisa temperatura letconului in timp real pe un LCD,
va avea un meniul navigabil din encoder rotativ si 3 butoane programabile din meniu.

Descriere generală

Am conectat LCD-ul prin conexiune paralela.
Am conectat 2 butoane si encoderul rotativ, cu care setam temperatura.
LCD-ul afiseaza implicit o pagina cu informatii(temperatura currenta, temperatura setata, procentul de putere).
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.
Pentru a termostata temperatura letconului am folosit algoritmul PID.
Am comandat lectonul cu ajutorul unu MOSFET IRLB8743PbF.
Citirea temperaturii am facut-o din senzorul(termocupla K) 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

  • Arduino Mega
  • 1602 LCD
  • Letcon Pensol IRON-N 24V 48W
  • Encoder Rotativ
  • 2 Butoane
  • Sursa Industriala 24V 5A
  • Un mosfet IRLB8743PbF
  • O rezistenta 2k pentru contrastul display-ului
  • Un modul MAX 6675K
  • Un buzzer activ
  • Un coborator de tensiune, LM2596 (Pentru a alimenta arduino de la sursa de 24V)

Schema Electrica

Din schema lipseste sursa de 24V 5A, coboratorul de tensiune, heaterul(un rezistor), si circuitul de comanda cu mosfetul IRLB8743.

Software Design

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.
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

 Montaj in carcasa

 Rezultatul final

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.

Download

Jurnal

  • 25 Aprilie → Alegerea temei proiectului
  • 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

pm/prj2021/alazar/programmablesolderingstation.txt · Last modified: 2021/06/10 12:12 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