Spot Welder 1-2-3 Firmware Arduino: 7 pași (cu imagini)
Spot Welder 1-2-3 Firmware Arduino: 7 pași (cu imagini)
Anonim
Image
Image

De ce un alt proiect de sudor spot?

Construirea unui sudor spot este unul dintre (probabil puține) cazuri în care puteți construi ceva pentru o fracțiune din prețul versiunii comerciale cu o calitate comparabilă. Și chiar dacă construirea înainte de cumpărare nu a fost o strategie câștigătoare, este foarte distractiv!

Așa că am decis să mă angajez în proiect și m-am uitat la modul în care alți oameni au făcut acest lucru. Există literalmente o mulțime de informații și videoclipuri interesante despre acest lucru pe net, cu o variație destul de largă în calitatea designului și a construcției.

Calitatea construcției pe care o puteți realiza în mod realist depinde de scule, mașini și facilități disponibile, deci nu a fost surprinzător să vedem o variație destul de largă pe acest front. Pe de altă parte, nu mă așteptam să văd că majoritatea proiectelor folosesc doar un simplu comutator manual pentru a porni și opri procesul de sudare.

De fapt, controlul precis al timpului de sudare este cheia calității sudurilor dvs. și nu puteți realiza acest lucru prin rotirea unui comutator cu mâna.

Am simțit că, în timp ce construiți un sudor spot este un subiect care a fost probabil bătut până la moarte, poate s-ar putea face o mașină mai bună folosind procesul de sudare în trei pași cu sincronizări exacte, așa cum fac mașinile profesionale. Așa că mi-am dat cinci obiective principale de proiectare pentru proiectul meu:

Suport pentru procesul de sudare în trei pași

Timpuri precise și configurabile

Capacitatea de a stoca și de a prelua în mod persistent profile de sudură

Simplitatea proiectării și construcției

Utilizarea numai a componentelor disponibile în mod obișnuit

Rezultatul este sudorul meu 1-2-3 și, în acest instructiv, voi explica partea de control a procesului de sudare a proiectului. Videoclipul și acest instructabil arată imagini ale sudorului de testare prototip, înainte ca toate componentele să fie montate într-o carcasă adecvată. O placă pentru acest proiect este descrisă într-o instrucțiune separată.

Dacă trebuie să vă familiarizați cu conceptul de sudare prin rezistență și cum se poate realiza un sudor folosind un transformator cu microunde, vă rugăm să faceți acest lucru înainte de a citi mai departe. Mă voi concentra asupra controlului sudorului, nu asupra modului în care funcționează un sudor sau a modului de construire a acestuia. Cred că acest lucru este bine acoperit în altă parte.

Pasul 1: Rețetă

1-2-3 Sudare
1-2-3 Sudare

Să vedem componentele sudorului de rezistență:

Transformator de sudură. Oferă ieșire de tensiune scăzută / curent mare necesară sudării prin rezistență prin conversia tensiunii de curent alternativ. Pentru un sudor auto-fabricat, transformatorul de sudură este obținut în mod normal prin transformarea unui transformator de cuptor cu microunde pentru ieșire de joasă tensiune și curent mare. Acest lucru se face prin îndepărtarea înfășurării secundare de înaltă tensiune din MOT și înfășurarea unui nou secundar format din câteva rotații ale unui cablu de cupru foarte gros. Există o mulțime de videoclipuri pe YouTube care vă arată cum să faceți acest lucru

Circuit de alimentare. Pornește și oprește transformatorul de sudură și funcționarea acestuia este controlată de circuitul de control. Circuitul de alimentare funcționează la tensiunea de rețea

Circuit de control. Controlează toate operațiunile pentru sudor:

    Permite utilizatorului să seteze și să modifice temporizările de sudare

    • Permite utilizatorului să stocheze și să preia temporizările de sudare.
    • Și, nu în ultimul rând, permite utilizatorului să înceapă un proces de sudare prin trimiterea de comenzi către Circuitul de alimentare, care pornește și oprește transformatorul.

UI. Utilizatorul comunică cu circuitul de control printr-o interfață cu utilizatorul

Acest instructable descrie UI și circuitul de control. UI și design-ul circuitului de control pe care îl propun sunt de fapt destul de independente de celelalte blocuri și pot fi ușor adaptate la un sudor spot existent, cu condiția ca încarnarea dvs. actuală a circuitului de putere să poată gestiona semnalul de ieșire digitală din circuitul de control. Deci, dacă aveți deja un sudor cu comutare electronică, puteți adăuga componentele de control și UI descrise aici, în plus, fără alte modificări.

Dacă aveți doar un comutator de alimentare manual chiar acum, va trebui, de asemenea, să construiți un circuit de alimentare.

Înainte de a descrie funcționarea firmware-ului pentru circuitul de control, să vedem un pic mai detaliat cum funcționează procesul de sudare.

Pasul 2: 1-2-3 Sudare

Mașinile de sudat profesionale nu sudează într-un singur pas; utilizează o secvență automată în trei pași. Sudarea cu rezistență în trei pași constă din:

Pasul de încălzire. Transformatorul de sudură este pornit, iar curentul circulă prin electrozi prin piesele prelucrate. Aceasta este menită să încălzească metalul

Apăsați pasul: transformatorul de sudare este oprit; piesele de lucru sunt menținute strâns apăsate una de cealaltă. Suprafețele de prelucrare a metalelor fierbinți înmuiate fac un contact mecanic și electric foarte bun acum

Pas de sudare: Transformatorul de sudare este pornit din nou. Suprafețele metalice aflate acum în contact intim sunt sudate sub presiune

Durata pașilor individuali nu este, în general, uniformă și depinde de curentul disponibil din sudor, de tipul de material pe care încercați să-l sudați (în principal rezistența și punctul de topire) și de grosimea pieselor de prelucrat.

Mulți dintre sudorii auto-construiți de care am învățat nu au control automat de sincronizare, ceea ce face foarte dificilă funcționarea repetabilă și fiabilă.

Unii au capacitatea de a seta un timp de sudare, adesea prin intermediul unui potențiometru. Kerry Wong a făcut una foarte drăguță în această clasă cu o pereche suplimentară de electrozi special pentru sudarea bateriilor.

Foarte puțini sudori auto-construi sunt capabili să execute automat cele trei etape de sudare, așa cum este descris mai sus. Unele au doar un singur set de durate fixe, precum acesta și acesta. Cu alții puteți schimba unele dintre durate, cum ar fi cu aceasta. Are o durată fixă pentru pașii de încălzire și presare, în timp ce durata pasului de sudură poate fi modificată printr-un potențiometru.

Acest lucru face ca procesul să fie parțial reglabil, dar poate fi dificil să găsiți din nou o setare atunci când doriți să sudați din nou acel anumit material al bateriei după ce a trecut ceva timp. După ce ați găsit momentele potrivite pentru o anumită combinație de materiale și grosimi, nu doriți să mai faceți totul din nou. Este o pierdere de timp (și material) și poate fi un pic frustrant.

Ceea ce doriți (bine, eu) aici este flexibilitatea completă (configurabilitate) pentru toate temporizările și capacitatea de a stoca și prelua setările odată ce le-am corectat.

Din fericire, nu este atât de greu. Să vedem cum să controlăm sudarea cu rezistență în trei pași.

Pasul 3: 1-2-3 Controlul sudării

1-2-3 Controlul sudării
1-2-3 Controlul sudării

Implementăm circuitul de control cu un microcontroler (MCU). Firmware-ul MCU funcționează ca o mașină de stare cu patru stări, așa cum am văzut în pasul anterior:

o Starea 0: Nu se sudează

o Starea 1: Sudare, pas de încălzire

o Starea 2: Sudare, apăsați pasul

o Starea 3: Sudare, pas de sudare

Folosesc pseudo-cod în stil C pentru a descrie fluxul de programe aici, deoarece este ușor să-l raportați la codul MCU real care este scris în C / C ++.

După pasul de configurare, bucla principală MCU gestionează intrările utilizatorului și tranzițiile de stare după cum urmează:

01: bucla

02: switch (state) {03: case 0: 04: readUserInput 05: case 1, 2, 3: 06: if (temporizatorul de sudare a expirat) {07: // treceți la următoarea stare 08: state = (state + 1)% 4; 09: comutați controlul puterii 10: dacă (starea nu este 0) {11: setați noua durată a pasului și reporniți temporizatorul de sudură 12:} 13:} 14: bucla de sfârșit

Dacă starea curentă este 0, atunci citim starea UI pentru a procesa intrarea utilizatorului și a trece la următoarea iterație.

Folosim un temporizator de sudare pentru a controla durata etapelor de sudare. Să presupunem că secvența de sudare tocmai a început când introducem declarația de comutare. Controlul puterii este activat, transformatorul de sudură este alimentat, iar starea curentă este 1.

Dacă temporizatorul de sudare nu a expirat, condiționalul (linia 6) se evaluează ca fiind fals, ieșim din instrucțiunea switch și trecem la următoarea iterație a buclei de evenimente.

Dacă temporizatorul de sudare a expirat, intrăm în condițional (linia 6) și continuăm:

1. Calculați și salvați următoarea stare (linia 8). Folosim modulul 4 aritmetic pentru a urmări secvența de stare corectă 1-2-3-0. Dacă starea actuală era 1, trecem acum la starea 2.

2. Apoi comutăm comanda de putere (linia 9). În starea 1, controlul puterii era pornit, deci acum este oprit (așa cum ar trebui să fie în starea 2, apăsați pasul, cu transformatorul de sudură nu este alimentat).

3. Starea este acum 2, deci introducem condiționalul pe linia 10.

4. Setați temporizatorul de sudare pentru noua durată a pasului (durata pasului de presare) și reporniți temporizatorul de sudare (linia 11).

Următoarele iterații ale buclei principale vor fi destul de nefericite până când expiră din nou cronometrul de sudare, adică pasul de presare este finalizat.

În acest moment intrăm în corpul condiționalului de pe linia 6. Următoarea stare (starea 3) este calculată pe linia 8; alimentarea transformatorului este pornită din nou (linia 9); cronometrul de sudare este setat la durata etapei de sudare și este repornit.

Când temporizatorul expiră din nou, următoarea stare (starea 0) este calculată pe linia 8, dar acum linia 11 nu este executată, deci temporizatorul nu este repornit deoarece am terminat ciclul de sudare.

La următoarea iterație de buclă ne-am întors la procesarea intrării utilizatorului (linia 4). Terminat.

Dar cum începem deloc procesul de sudare? Ei bine, începem când utilizatorul apasă butonul de sudare.

Butonul de sudare este conectat la un pin de intrare MCU, care este atașat la o întrerupere hardware. Apăsarea butonului provoacă o întrerupere. Manipulatorul de întrerupere începe procesul de sudare setând starea la 1, setând temporizatorul de sudare pe durata etapei de încălzire, pornind temporizatorul de sudare și pornind controlul puterii:

19: startWelding

20: stare = 1 21: setați durata pasului de încălzire și porniți temporizatorul de sudare 22: porniți controlul puterii 23: terminați pornirea Sudarea

Pasul 4: Managementul interfeței, standby și alte complicații ale firmware-ului

Managementul interfeței, standby și alte complicații ale firmware-ului
Managementul interfeței, standby și alte complicații ale firmware-ului

UI constă dintr-un afișaj, un codificator cu buton, un buton momentan și un led. Se folosesc după cum urmează:

Afișajul oferă feedback utilizatorului pentru configurare și arată progresul în timpul sudării

Codificatorul cu buton controlează orice interacțiune cu firmware-ul, cu excepția inițierii unei secvențe de sudare

Butonul momentan este apăsat pentru a porni o secvență de sudare

Ledul este aprins în timpul unei secvențe de sudare și se estompează în mod repetat în interiorul și în afară în timpul așteptării

Există mai multe lucruri pe care firmware-ul trebuie să le facă dincolo de controlul procesului de sudare, așa cum s-a explicat în pasul anterior:

Citirea datelor introduse de utilizator. Aceasta implică citirea poziției codificatorului și a stării butonului. Utilizatorul poate roti codorul la stânga sau la dreapta pentru a trece de la un element de meniu la următorul și pentru a schimba parametrii de pe afișaj sau poate apăsa butonul codificatorului pentru a confirma o valoare introdusă sau pentru a muta un nivel în sus în structura meniului

  • Se actualizează interfața de utilizare.

    Afișajul este actualizat pentru a reflecta acțiunile utilizatorului

    Afișajul este actualizat pentru a reflecta progresul procesului de sudare (afișăm un indicator lângă durata etapei curente din secvența de sudare)

    Ledul este pornit când începem să sudăm și se oprește când am terminat

Așteptare. Codul ține evidența timpului în care utilizatorul a fost inactiv și intră în așteptare atunci când perioada de inactivitate depășește o limită prestabilită. În modul de așteptare, afișajul este oprit, iar ledul de pe interfața de utilizare este estompat în mod repetat pentru a semnaliza starea de așteptare. Utilizatorul poate ieși din modul de așteptare prin rotirea codificatorului în ambele direcții. În modul de așteptare, interfața de utilizare nu ar trebui să reacționeze la interacțiunile altor utilizatori. Observați că sudorul are voie să intre în standby numai când se află în starea 0, de ex. nu în timp ce se sudează

Gestionarea implicită, stocarea și recuperarea profilurilor. Firmware-ul acceptă 3 profiluri diferite de sudare, adică setări pentru 3 materiale / grosimi diferite. Profilurile sunt stocate în memoria flash, deci nu se vor pierde atunci când opriți sudorul

În cazul în care vă întrebați, am adăugat funcția de așteptare pentru a preveni arderea afișajului. Când sudorul este alimentat și nu utilizați interfața de utilizare, caracterele afișate pe afișaj nu se modifică și pot provoca arsuri. Kilometrajul dvs. poate varia în funcție de tehnologia de afișare, totuși folosesc un afișaj OLED și sunt predispuse la arde destul de repede dacă nu este îngrijit, deci oprirea automată a afișajului este o idee bună.

Toate cele de mai sus complică, desigur, codul „real”. Puteți vedea că este ceva mai mult de lucru decât ceea ce am analizat în pașii anteriori pentru a obține o bucată de software frumos împachetată.

Aceasta confirmă regula conform căreia cu software implementarea a ceea ce construiți în jurul funcționalității de bază este adesea mai complexă decât implementarea funcționalității de bază în sine!

Veți găsi codul complet în linkul depozitului la sfârșitul acestui instructable.

Pasul 5: Circuit de control

Circuit de control
Circuit de control

Firmware-ul a fost dezvoltat și testat folosind aceste componente:

  • Circuit de control:

    Arduino Pro Mini 5V 16MHz

  • UI:

    • Codificator rotativ cu buton
    • 0,91”128x32 I2C White OLED Display DIY bazat pe SSD1306
    • Buton momentan cu led încorporat

Desigur, nu este nevoie să utilizați exact aceste componente în versiunea dvs., dar poate fi necesar să faceți unele modificări de cod dacă nu, mai ales dacă schimbați interfața de afișare, tipul sau dimensiunea.

Atribuire Pin Arduino:

  • Intrare:

    • Pinii A1 A2 A3 la codificatorul rotativ folosit pentru a selecta / modifica profilurile și parametrii
    • Pinul 2 conectat la un buton temporar care este apăsat pentru a începe sudarea. Butonul este montat în mod normal pe un panou de lângă codificator și poate fi conectat în paralel cu un comutator de pedală.
  • Ieșire:

    • Pinii A4 / A5 pentru I2C care controlează afișajul.
    • Pinul 11 pentru ieșirea digitală către led, care este pornit în timpul unui ciclu de sudare și decolorat în interiorul și ieșirea în timpul așteptării. Nu există rezistență de limitare a curentului pentru ledul din schemă, deoarece am folosit un led încorporat în butonul de sudare care a venit cu un rezistor de serie. Dacă utilizați un led separat, va trebui fie să adăugați un rezistor în serie între pinul 11 al Pro Mini și pinul 3 al conectorului J2, fie să-l lipiți în serie cu ledul de pe panoul frontal.
    • Pinul 12 pentru ieșirea digitală la circuitul de alimentare de la rețea (intrare la circuitul de alimentare). Acest știft este în mod normal LOW și va merge HIGH-LOW-HIGH în timpul unui ciclu de sudare.

După ce am realizat prototipuri pe o placă, am montat circuitul de comandă pe o placă proto autonomă, incluzând un modul de alimentare de la rețea (HiLink HLK-5M05), condensatorul și rezistențele pentru a elimina butonul de sudare și conectorii pentru afișaj, codificator, led, buton și ieșire circuit electric. Conexiunile și componentele sunt prezentate în schemă (cu excepția modulului de alimentare de la rețea).

Există, de asemenea, un conector (J3 în schemă) pentru un comutator de picior conectat în paralel cu butonul de sudare, astfel încât să puteți începe sudarea fie de la panou, fie folosind un comutator de picior, ceea ce mi se pare mult mai convenabil.

Conectorul J4 este conectat la intrarea optocuploare a circuitului de alimentare, care este montat pe o placă proto separată în prototip.

Pentru conectarea la afișaj (conector J6), am găsit de fapt mai ușor să folosesc un cablu plat cu 4 fire, cu două fire care merg către un conector cu doi pini (corespunzător pinilor 1, 2 din J6) și doi fire cu mama Dupont conectori direct la pinii A4 și A5. Pe A4 și A5 am lipit un antet de sex masculin cu doi pini direct pe partea superioară a plăcii Pro Mini.

Probabil că voi adăuga debouncing pentru butonul codificator și în versiunea finală. Un design PCB îmbunătățit pentru acest proiect este descris într-un instructable separat.

Pasul 6: Circuit de alimentare

Circuit de alimentare
Circuit de alimentare

AVERTISMENT: Circuitul de alimentare funcționează la tensiunea de rețea cu curenți suficient de suficienți pentru a vă ucide. Dacă nu aveți experiență în circuitele de tensiune de rețea, nu încercați să construiți unul. Cel puțin, trebuie să utilizați un transformator de izolare pentru a face orice lucru pe circuitele de tensiune de rețea.

Schema pentru circuitul de alimentare este foarte standard pentru controlul unei sarcini inductive cu un TRIAC. Semnalul din circuitul de control al comenzii acționează partea emițătorului optocuplatorului MOC1, partea detectorului la rândul său acționează poarta triacului T1. Triac comută sarcina (MOT) printr-o rețea snubber R4 / CX1.

Optocuplator. MOC3052 este un optocuplator cu fază aleatorie, nu de tipul cu trecere zero. Utilizarea comutării în fază aleatorie este mai adecvată decât comutarea cu trecere zero pentru o sarcină inductivă grea, cum ar fi MOT.

TRIAC. T1 triac este un BTA40 evaluat pentru curent continuu de 40A continuu, care poate părea un exces în ceea ce privește curentul tras de MOT în stare de echilibru. Având în vedere că sarcina are o inductanță destul de mare, totuși, evaluarea de care trebuie să ne îngrijoreze este curentul non-repetitiv de vârf de supratensiune. Acesta este curentul de încărcare al sarcinii. Acesta va fi tras de fiecare dată în timpul tranzitoriei de pornire de către MOT și va fi de câteva ori mai mare decât curentul de pornire. BTA40 are un curent non-repetitiv de vârf de supratensiune de 400A la 50 Hz și 420A la 60 Hz.

Pachet TRIAC. Un motiv în plus pentru a selecta un BTA40 este că acesta vine într-un pachet RD91 cu filă izolată și are terminale spade masculine. Nu știu despre tine, dar prefer mai degrabă o filă izolată pentru semiconductori de putere la tensiunea de rețea. În plus, terminalele spade tată oferă o conexiune mecanică solidă care permite menținerea traseului curentului mare (firele marcate A în schemă) de pe placa proto sau PCB. Calea de curent mare trece prin firele maro (mai groase) marcate cu A în imagine. Sârmele maro sunt conectate la terminalele de spade triac prin terminale piggyback care sunt conectate, de asemenea, la rețeaua RC de pe placă prin intermediul firelor albastre (mai subțiri). Cu acest truc de montare, calea de curent mare este de pe placa proto sau PCB. În principiu, ați putea face același lucru cu firele de lipit pe picioarele pachetului mai comun TOP3, dar ansamblul ar fi mecanic mai puțin fiabil.

Pentru prototip am montat triacul pe un mic radiator cu ideea de a lua unele măsurători de temperatură și, eventual, de a-l monta pe un radiator mai mare sau chiar în contact direct cu carcasa metalică pentru construcția finală. Am observat că triacul abia se încălzește, parțial pentru că este supradimensionat în mod corespunzător, dar în principal pentru că cea mai mare disipare a puterii în joncțiune se datorează comutării stării de conducere și clar că triacul nu se schimbă frecvent în această aplicație.

Rețea snubber. R4 și CX1 sunt rețeaua snubber pentru a limita rata de schimbare văzută de triac atunci când sarcina este oprită. Nu utilizați niciun condensator pe care îl aveți în coșul de piese de schimb: CX1 trebuie să fie un condensator de tip X (sau mai bun de tip Y) evaluat pentru funcționarea cu tensiune de rețea.

Varistor. R3 este un varistor dimensionat în consecință, valoarea de vârf a tensiunii de rețea. Schema arată un varistor nominal pentru 430V, care este adecvat pentru tensiunea de rețea de 240V (atenție aici, valoarea tensiunii din codul varistorului este o valoare de vârf, nu o valoare RMS). Utilizați un varistor evaluat pentru vârful de 220V pentru o tensiune de rețea de 120V.

Eroare componentă. Este o bună practică să vă întrebați care ar fi consecințele eșecului componentei și să identificați cele mai grave scenarii. Un lucru rău care s-ar putea întâmpla în acest circuit este defectarea triacului și scurtcircuitarea terminalelor A1 / A2. Dacă se întâmplă acest lucru, MOT ar fi permanent alimentat atât timp cât triacul este scurtcircuitat. Dacă nu ar fi să observați zgomotul transformatorului și s-ar suda cu MOT permanent, ați supraîncălzi / ruina piesa de lucru / electrozi (nu este frumos) și, eventual, supraîncălziți / topiți izolarea cablului (foarte rău). Deci, este o idee bună să construiți un avertisment pentru această stare de eșec. Cel mai ușor este să conectați o lampă în paralel cu primarul MOT. Lampa se va aprinde când MOT este pornit și va oferi un indiciu vizual că sudorul funcționează conform intenției. Dacă lumina se aprinde și rămâne aprinsă, atunci știți că este timpul să trageți ștecherul. Dacă ați urmărit videoclipul la început, este posibil să fi observat un bec roșu care se aprinde și se stinge în fundal în timpul sudării. Aceasta este lumina aceea roșie.

Un MOT nu este o sarcină foarte bine comportată, dar, în ciuda faptului că am fost inițial puțin preocupat de fiabilitatea comutării prin circuitul de alimentare, nu am văzut probleme.

Pasul 7: Note finale

Note finale
Note finale

Ei bine, mai întâi mulțumesc mult multor oameni care și-au luat timp să explice pe net cum să construiască un sudor spot folosind un transformator de cuptor cu microunde refăcut. Acesta a fost un bootstrap imens pentru întregul proiect.

În ceea ce privește firmware-ul Spot Welder 1-2-3, ar fi fost o muncă lungă și plictisitoare să scrii codul fără abstracțiile furnizate de un număr de biblioteci în plus față de IDE-ul standard Arduino. Mi se par foarte utile aceste timer (RBD_Timer), codificatorul (ClickEncoder), meniurile (MenuSystem) și bibliotecile EEPROM (EEPROMex).

Codul de firmware poate fi descărcat din depozitul de coduri Spot Welder 1-2-3.

Dacă intenționați să construiți acest lucru, vă recomand cu tărie să utilizați designul PCB descris aici, care încorporează o serie de rafinamente.