Innehållsförteckning:

Spot Welder 1-2-3 Arduino Firmware: 7 steg (med bilder)
Spot Welder 1-2-3 Arduino Firmware: 7 steg (med bilder)

Video: Spot Welder 1-2-3 Arduino Firmware: 7 steg (med bilder)

Video: Spot Welder 1-2-3 Arduino Firmware: 7 steg (med bilder)
Video: Spot Welder 1-2-3 UI 2024, Juli
Anonim
Image
Image

Varför ännu ett punktsvetsprojekt?

Att bygga en punktsvetsare är ett av de (utan tvekan få) fallen där du kan bygga något för en bråkdel av priset på den kommersiella versionen med jämförbar kvalitet. Och även om bygg-före-köp inte var en vinnande strategi, är det mycket roligt!

Så jag bestämde mig för att gå in på projektet, och jag tittade på hur andra människor har gjort detta. Det finns bokstavligen massor av intressant information och videor om detta på nätet, med en ganska stor variation i kvalitet på design och konstruktion.

Kvaliteten på byggnaden som man realistiskt kan uppnå beror på verktyg, maskiner och anläggningar som finns, så det var inte förvånande att se en ganska stor variation på denna front. Å andra sidan förväntade jag mig inte att se att de flesta projekt bara använder en enkel manuell omkopplare för att starta och stoppa svetsprocessen.

Faktum är att noggrann svetskontroll är nyckeln till kvaliteten på dina svetsar, och du kan inte uppnå det genom att vrida en omkopplare för hand.

Jag kände att medan du bygger dig själv en punktsvetsare är ett ämne som förmodligen redan har slagits ihjäl, kanske man kan göra en bättre maskin genom att använda svetsprocessen i tre steg med exakta tidpunkter, som professionella maskiner gör. Så jag gav mig själv fem huvudsakliga designmål för mitt projekt:

Stöd för svetsprocess i tre steg

Exakta och konfigurerbara tider

Möjlighet att ständigt lagra och hämta svetsprofiler

Enkelhet i design och konstruktion

Användning av endast vanligt tillgängliga komponenter

Resultatet är min 1-2-3 punktsvetsare, och i den här instruktionsboken kommer jag att förklara svetsprocessens kontrolldel av projektet. Videon och denna instruerbara visar bilder av prototypen testsvetsare, innan alla komponenter monteras i ett korrekt fall. En tavla för detta projekt beskrivs i en separat instruktionsbok.

Om du behöver bekanta dig med konceptet motståndssvetsning och hur man kan göra en svetsare med hjälp av en mikrovågstransformator, vänligen gör det innan du läser vidare. Jag kommer att koncentrera mig på kontrollen av svetsaren, inte på hur en svetsare fungerar eller hur man bygger en. Jag tycker att detta är täckt väl på andra håll.

Steg 1: Recept

1-2-3 Svetsning
1-2-3 Svetsning

Låt oss titta på komponenterna i motståndssvetsare:

Svets transformator. Ger den lågspänning/högströmseffekt som krävs för motståndssvetsning genom omvandling av växelspänningen. För en självtillverkad svetsare erhålls svetstransformatorn normalt genom att konvertera en mikrovågsugntransformator för lågspänning, högström. Detta görs genom att ta bort högspännings sekundärlindningen från MOT och linda en ny sekundär bestående av några varv av en mycket tjock kopparkabel. Det finns många videor på YouTube som visar hur du gör detta

Strömkrets. Slår på och av svetstransformatorn, och dess funktion styrs av styrkretsen. Strömkretsen fungerar med nätspänning

Styrkrets. Kontrollerar alla operationer för svetsaren:

    Tillåter användaren att ställa in och ändra svetstider

    • Tillåter användaren att lagra och hämta svetstider.
    • Och, sist men inte minst, tillåter användaren att starta en svetsprocess genom att skicka kommandon till strömkretsen, som slår på och av transformatorn.

UI. Användaren kommunicerar med styrkretsen via ett användargränssnitt

Denna instruerbara beskriver användargränssnittet och styrkretsen. UI- och styrkretsdesignen jag föreslår är faktiskt ganska oberoende av de andra blocken och kan enkelt eftermonteras till en befintlig punktsvetsare, förutsatt att din nuvarande inkarnation av effektkretsen kan hantera den digitala utsignalen från styrkretsen. Så om du redan har en elektroniskt kopplad svetsare kan du lägga till kontrollen och UI -komponenterna som beskrivs här utöver det utan några andra ändringar.

Om du bara har en manuell strömbrytare just nu måste du också bygga en strömkrets.

Innan vi beskriver hur firmware fungerar för kontrollkretsen, låt oss se lite mer i detalj hur svetsprocessen fungerar.

Steg 2: 1-2-3 Svetsning

Professionella svetsmaskiner svetsar inte i ett steg; de använder en automatiserad trestegssekvens. Trestegsmotståndssvetsning består av:

Uppvärmningssteg. Svetstransformatorn är påslagen och strömmen strömmar via elektroderna genom arbetsstyckena. Detta är tänkt att bara värma upp metallen

Presssteg: Svets transformator är avstängd; arbetsstyckena hålls tätt pressade mot varandra. De mjukade heta metallarbetsytorna gör mycket bra mekanisk och elektrisk kontakt nu

Svetssteg: Svetstransformatorn slås på igen. De metallytor som nu är i intim kontakt svetsas under tryck

Varaktigheten för de enskilda stegen är i allmänhet inte enhetlig och beror på tillgänglig ström från svetsaren, vilken typ av material du försöker svetsa (främst dess motstånd och smältpunkt) och tjockleken på arbetsstyckena.

Många av de självbyggda svetsarna som jag lärde mig har inte automatiskt tidsstyrning, vilket gör repeterbar och pålitlig drift mycket svår.

Vissa har möjlighet att ställa in en svetstid, ofta via en potentiometer. Kerry Wong har gjort en mycket trevlig sådan i denna klass med ett extra par elektroder specifikt för att svetsa batterier.

Mycket få egenbyggda svetsare kan automatiskt utföra de tre svetsstegen enligt ovan. Vissa har bara en uppsättning fasta varaktigheter, som den här och den här. Med andra kan du ändra några av varaktigheterna, som med den här. Den har en fast varaktighet för uppvärmnings- och pressstegen, medan svetsstegets varaktighet kan ändras via en potentiometer.

Detta gör processen delvis justerbar, men det kan vara svårt att hitta en inställning igen när du vill svetsa igen det specifika batteriflikmaterialet efter en tid. När du väl har hittat rätt tidpunkt för en viss kombination av material och tjocklek vill du inte behöva göra det om igen. Det är slöseri med tid (och material), och det kan vara lite frustrerande.

Vad du (ja, jag) verkligen vill här är fullständig flexibilitet (konfigurerbarhet) för alla tider och möjligheten att lagra och hämta inställningar när vi har rätt.

Lyckligtvis är det inte så svårt. Låt oss se hur du styr tre-stegs motståndssvetsning.

Steg 3: 1-2-3 Svetsningskontroll

1-2-3 Svetsstyrning
1-2-3 Svetsstyrning

Vi implementerar styrkretsen med en mikrokontroller (MCU). MCU -firmware fungerar som en tillståndsmaskin med fyra tillstånd som vi såg i föregående steg:

o Tillstånd 0: Svetsar inte

o Tillstånd 1: Svetsning, uppvärmningssteg

o Tillstånd 2: Svetsning, tryck på steg

o Tillstånd 3: Svetsning, svetssteg

Jag använder pseudokod i C-stil för att beskriva programflödet här eftersom det är lätt att relatera det till den faktiska MCU-koden som är skriven i C/C ++.

Efter installationssteget hanterar MCU -huvudslingan användarinmatning och tillståndsövergångar enligt följande:

01: slinga

02: switch (tillstånd) {03: case 0: 04: readUserInput 05: case 1, 2, 3: 06: if (svetsningstimern har gått ut) {07: // gå till nästa tillstånd 08: state = (tillstånd + 1) % 4; 09: växelströmskontroll 10: om (tillståndet är inte 0) {11: ställ in den nya steglängden och starta om svetstimern 12:} 13:} 14: slutet loop

Om det nuvarande läget är 0 läser vi UI -tillståndet för att bearbeta användarinmatning och gå vidare till nästa iteration.

Vi använder en svetstimer för att styra svetsstegens längd. Antag nu att svetsföljden just har börjat när vi anger switch -satsen. Strömkontrollen är på, svetstransformatorn är strömförande och det aktuella tillståndet är 1.

Om svetsningstimern inte har gått ut villkorat (rad 6) utvärderas till falskt, vi lämnar switch -satsen och går vidare till nästa händelse loop -iteration.

Om svetsningstimern har gått ut anger vi villkoret (rad 6) och går vidare:

1. Beräkna och spara nästa tillstånd (rad 8). Vi använder modulo 4-aritmetik för att följa rätt tillståndssekvens 1-2-3-0. Om det nuvarande tillståndet var 1, går vi nu till tillstånd 2.

2. Sedan växlar vi strömkontrollen (rad 9). I tillstånd 1 var strömkontrollen på, så nu är den avstängd (som den ska vara i tillstånd 2, tryck på steg, med svetstransformatorn utan ström).

3. Tillståndet är nu 2, så vi anger villkorlig på rad 10.

4. Ställ in svetstimern för det nya stegets varaktighet (tryckstegets varaktighet) och starta om svetstimern (rad 11).

Följande iterationer av huvudslingan kommer att vara ganska händelselösa tills svetsningstimern löper ut igen, dvs. presssteget är klart.

Vid denna tidpunkt kommer vi in i villkorets kropp på rad 6. Nästa tillstånd (tillstånd 3) beräknas på rad 8; strömmen till transformatorn slås på igen (rad 9); svetsningstimern är inställd på svetsstegets varaktighet och startas om.

När timern går ut igen beräknas nästa tillstånd (tillstånd 0) på rad 8, men nu körs inte rad 11, så timern startas inte om när vi är klara med svetscykeln.

På nästa loop -iteration är vi tillbaka för att bearbeta användarinmatning (rad 4). Gjort.

Men hur startar vi överhuvudtaget svetsprocessen? Tja, vi börjar när användaren trycker på svetsknappen.

Svetsknappen är ansluten till en MCU -ingångsstift, som är ansluten till ett hårdvaruavbrott. Ett tryck på knappen orsakar ett avbrott. Avbrottshanteraren startar svetsprocessen genom att ställa in tillståndet till 1, ställa in svetstimern på uppvärmningsstegets varaktighet, starta svetstimern och slå på strömreglaget:

19: startWelding

20: tillstånd = 1 21: ställ in uppvärmningsstegets varaktighet och starta svetsningstimern 22: slå på effektreglaget 23: avsluta startSvetsning

Steg 4: UI -hantering, vänteläge och andra firmware -komplikationer

UI -hantering, vänteläge och andra firmware -komplikationer
UI -hantering, vänteläge och andra firmware -komplikationer

Användargränssnittet består av en display, en kodare med tryckknapp, en kortvarig tryckknapp och en lysdiod. De används enligt följande:

Displayen ger feedback till användaren för konfiguration och visar framsteg under svetsning

Kodaren med tryckknapp styr all interaktion med den fasta programvaran, förutom att starta en svetssekvens

Den tillfälliga tryckknappen trycks in för att starta en svetsningssekvens

Lysdioden tänds under en svetsningssekvens och bleknar upprepade gånger in och ut under standby

Det finns ett antal saker som firmware måste göra utöver att styra svetsprocessen enligt förklaringen i föregående steg:

Läser användarinmatning. Detta innebär att man läser kodarens position och knappstatus. Användaren kan vrida pulsgivaren åt vänster eller höger för att gå från ett menyalternativ till nästa och ändra parametrar på displayen, eller trycka på pulsgivarknappen för att bekräfta ett angivet värde eller för att flytta en nivå uppåt i menystrukturen

  • Uppdaterar användargränssnittet.

    Displayen uppdateras för att återspegla användarens åtgärder

    Displayen uppdateras för att återspegla svetsningsprocessen (vi visar en indikator bredvid varaktigheten av det aktuella steget i svetsföljden)

    Lysdioden slås på när vi börjar svetsa och stängs av när vi är klara

Står fast vid. Koden håller reda på hur länge användaren har varit inaktiv och går in i vänteläge när inaktivitetsperioden överskrider en förinställd gräns. I standby -läge stängs displayen av, och lysdioden på gränssnittet bleknar upprepade gånger in och ut för att signalera standbyläget. Användaren kan lämna standby genom att vrida pulsgivaren åt båda hållen. I standby -läge bör användargränssnittet inte reagera på andra användarinteraktioner. Lägg märke till att svetsaren bara får gå in i beredskap när den är i tillstånd 0, t.ex. inte medan det svetsas

Standardhantering, lagring och hämtning av profiler. Firmware stöder 3 olika svetsprofiler, dvs inställningar för 3 olika material/tjocklekar. Profilerna lagras i flashminne så att de inte går förlorade när du stänger av svetsen

Om du undrar har jag lagt till standby-funktionen för att förhindra inbränning av displayen. När svetsaren drivs och du inte använder användargränssnitt ändras inte tecknen som visas på displayen och kan orsaka inbränning. Din körsträcka kan variera beroende på displayteknik, men jag använder en OLED -skärm och de är benägna att bränna in ganska snabbt om det lämnas omhändertaget för, så att ha automatisk bildskärmsavstängning är en bra idé.

Allt ovan komplicerar naturligtvis den "riktiga" koden. Du kan se att det finns lite mer arbete att göra än vad vi har tittat på i föregående steg för att få en snyggt inplastad programvara.

Detta bekräftar regeln att med programvara är implementeringen av det du bygger kring kärnfunktionen ofta mer komplex än implementeringen av själva kärnfunktionen!

Du hittar hela koden i länken till förvaret i slutet av denna instruerbara.

Steg 5: Styrkrets

Styrkrets
Styrkrets

Firmware har utvecklats och testats med hjälp av dessa komponenter:

  • Styrkrets:

    Arduino Pro Mini 5V 16MHz

  • UI:

    • Roterande givare med tryckknapp
    • 0,91”128x32 I2C vit OLED -skärm DIY baserad på SSD1306
    • Kortvarig tryckknapp med inbyggd LED

Naturligtvis behöver du inte använda exakt dessa komponenter i din byggnad, men du kan behöva göra några kodändringar om du inte gör det, särskilt om du ändrar skärmgränssnitt, typ eller storlek.

Arduino Pin -tilldelning:

  • Inmatning:

    • Fäster A1 A2 A3 till roterande kodare som används för att välja/ändra profiler och parametrar
    • Pin 2 ansluten till en tillfällig tryckknapp som trycks in för att börja svetsa. Tryckknappen är normalt monterad på en panel bredvid pulsgivaren och kan anslutas parallellt med en pedalomkopplare.
  • Produktion:

    • Stiftar A4/A5 för I2C som styr skärmen.
    • Stift 11 för digital utgång till lysdioden, som slås på under en svetscykel och bleknar in och ut under standby. Det finns inget strömbegränsande motstånd för LED i schemat eftersom jag använde en LED inbyggd i svetsknappen som följde med ett seriemotstånd. Om du använder en separat lysdiod måste du antingen lägga till ett motstånd i serie mellan stift 11 på Pro Mini och stift 3 på kontakt J2, eller löda det i serie med lysdioden på frontpanelen.
    • Stift 12 för digital utgång till nätströmskretsen (ingång till effektkrets). Denna tapp är normalt LÅG och går HÖG-LÅG-HÖG under en svetscykel.

Efter prototyper på en brödbräda har jag monterat styrkretsen på ett fristående protokort inklusive en nätaggregatsmodul (HiLink HLK-5M05), kondensatorn och motstånden för att avbryta svetsknappen och kontakter för display, pulsgivare, led, knapp och effektkretsutgång. Anslutningarna och komponenterna visas i schemat (förutom nätspänningsmodulen).

Det finns också en kontakt (J3 i schemat) för en fotbrytare som är ansluten parallellt med svetsknappen, så man kan börja svetsa antingen från panelen eller med en fotbrytare, vilket jag tycker är mycket bekvämare.

J4 -kontakten är ansluten till optokopplingsingången på effektkretsen, som är monterad på ett separat protokort i prototypen.

För anslutningen till displayen (J6-kontakt) fann jag det faktiskt lättare att använda en 4-tråds platt kabel med två ledningar som går till en tvåpolskontakt (motsvarande stift 1, 2 på J6) och två ledningar med Dupont-hona kontakter som går direkt till stiften A4 och A5. På A4 och A5 lödde jag en tvåstifts hanrubrik direkt ovanpå Pro Mini-kortet.

Jag kommer förmodligen att lägga till debouncing för kodarknappen också i den sista byggnaden. En förbättrad PCB -design för detta projekt beskrivs i en separat instruktionsbok.

Steg 6: Strömkrets

Strömkrets
Strömkrets

VARNING: Strömkretsen fungerar vid nätspänning med tillräckligt stora strömmar för att döda dig. Om du inte har erfarenhet av nätspänning, försök inte att bygga en. Åtminstone måste du använda en isoleringstransformator för att utföra arbete på nätspänningskretsar.

Schemat för effektkretsen är mycket standard för styrning av en induktiv belastning med en TRIAC. Signalen från styrstyrkretsen driver sändarsidan på MOC1 -optokopplaren, detektorsidan driver i sin tur porten på T1 -triacen. Triac växlar lasten (MOT) via ett snubbernätverk R4/CX1.

Optokopplare. MOC3052 är en slumpmässig optokopplare, inte nollkorsningstypen. Att använda slumpmässig fasomkoppling är mer lämpligt än nollkorsningsväxling för en tung induktiv belastning som MOT.

TRIAC. T1 triac är en BTA40-klassad för 40A kontinuerlig ström i tillståndet, vilket kan tyckas vara en överkillning när det gäller strömmen som dras av MOT i steady state. Med tanke på att belastningen har en ganska hög induktans är dock betyget vi behöver oroa oss över den icke-repetitiva överspänningstoppen på tillståndsström. Detta är belastningens startström. Den kommer att tecknas varje gång under inkopplingstransienten av MOT, och den kommer att vara flera gånger högre än strömmen i drift. BTA40 har en icke-repetitiv spänningstopp på-tillståndsström på 400A vid 50 Hz och 420A vid 60 Hz.

TRIAC -paket. Ytterligare en anledning att välja en BTA40 är att den kommer i ett RD91 -paket med isolerad flik och har manliga spadterminaler. Jag vet inte om dig, men jag föredrar hellre en isolerad flik för kraft halvledare vid nätspänning. Dessutom erbjuder de manliga spadterminalerna en solid mekanisk anslutning som gör det möjligt att hålla högströmningsbanan (ledningar markerade A i schemat) helt utanför proto- eller kretskortet. Den höga strömbanan går via de (tjockare) bruna trådarna markerade A på bilden. De bruna trådarna är anslutna till triac -spadterminalerna via piggyback -terminaler som också är anslutna till RC -nätet på brädet via de (tunnare) blå trådarna. Med detta monteringstrick är den höga strömbanan avstängd från proto- eller kretskortet. I princip kan du göra detsamma med lödtrådar på benen på det mer vanliga TOP3 -paketet, men monteringen skulle vara mekaniskt mindre tillförlitlig.

För prototypen har jag monterat triacen på en liten kylfläns med tanken att ta några temperaturmätningar och eventuellt montera den på en större kylfläns eller till och med i direkt kontakt med metallhöljet för den sista byggnaden. Jag observerade att triacen knappt värms upp, delvis för att den är rätt stor, men främst för att det mesta energiförlusten i korsningen beror på ledningstillstånd och triac uppenbarligen inte växlar ofta i denna applikation.

Snubbernätverk. R4 och CX1 är snubbernätet för att begränsa förändringstakten som triac ser när lasten stängs av. Använd inte någon kondensator som du kan ha i reservdelsfacket: CX1 måste vara en kondensator av X-typ (eller bättre Y-typ) för nätspänningsdrift.

Varistor. R3 är en varistorstorlek som motsvarar ditt nätspänningens toppvärde. Schemat visar en varistor klassad för 430V, vilket är lämpligt för 240V nätspänning (var försiktig här, spänningsvärdet i varistorkoden är ett toppvärde, inte ett RMS -värde). Använd en varistor klassad för 220V topp för en 120V nätspänning.

Komponentfel. Det är bra att fråga sig själv vilka konsekvenser komponentfel skulle vara och identifiera de värsta scenarierna. En dålig sak som kan hända i denna krets är triacen som misslyckas och kortsluter A1/A2 -terminalerna. Om detta händer skulle MOT vara permanent aktiverad så länge triacen är kortsluten. Om du inte skulle märka transformatorns brum och skulle svetsa med MOT permanent på skulle du överhetta/förstöra arbetsstycket/elektroderna (inte snyggt) och eventuellt överhetta/smälta kabelisolering (mycket dåligt). Så det är en bra idé att bygga in en varning för detta felstillstånd. Det enklaste är att ansluta en lampa parallellt med MOT -primären. Lampan tänds när MOT är på och ger en visuell signal om att svetsaren fungerar som avsett. Om lampan lyser och lyser, då vet du att det är dags att dra i kontakten. Om du har tittat på videon i början kan du ha märkt att en röd glödlampa tänds och släcktes i bakgrunden under svetsning. Detta är vad det röda ljuset är.

En MOT är inte en mycket välskött belastning, men trots att jag till en början var lite orolig över tillförlitligheten för omkopplingen via strömkretsen har jag inte sett några problem.

Steg 7: Slutanteckningar

Slutanteckningar
Slutanteckningar

Tja, tack först till de många människor som har tagit sig tid att förklara på nätet hur man bygger en punktsvetsare med en återanvänd mikrovågstransformator. Detta har varit en enorm bootstrap för hela projektet.

När det gäller Spot Welder 1-2-3 firmware skulle det ha varit ett långt och tråkigt arbete att skriva koden utan de abstraktioner som tillhandahålls av ett antal bibliotek utöver standard Arduino IDE. Jag tycker att dessa timer (RBD_Timer), encoder (ClickEncoder), menyer (MenuSystem) och EEPROM (EEPROMex) bibliotek är mycket användbara.

Firmware-koden kan laddas ner från Spot Welder 1-2-3-kodlagret.

Om du planerar att bygga detta föreslår jag starkt att du använder PCB -designen som beskrivs här, som innehåller ett antal förbättringar.

Rekommenderad: