Indholdsfortegnelse:

Spot Welder 1-2-3 Arduino Firmware: 7 trin (med billeder)
Spot Welder 1-2-3 Arduino Firmware: 7 trin (med billeder)

Video: Spot Welder 1-2-3 Arduino Firmware: 7 trin (med billeder)

Video: Spot Welder 1-2-3 Arduino Firmware: 7 trin (med billeder)
Video: Fork mounted razor machetes! #mtb #mountainbike #shorts 2024, Juli
Anonim
Image
Image

Hvorfor endnu et spot svejseprojekt?

At bygge en spot svejser er en af de (uden tvivl få) tilfælde, hvor du kan bygge noget til en brøkdel af prisen på den kommercielle version med sammenlignelig kvalitet. Og selvom build-before-buy ikke var en vindende strategi, er det meget sjovt!

Så jeg besluttede mig for at gå i gang med projektet, og jeg så på, hvordan andre mennesker har gjort dette. Der er bogstaveligt talt masser af interessante oplysninger og videoer om dette på nettet med en ganske stor variation i kvalitet af design og konstruktion.

Kvaliteten af bygningen, som man realistisk kan opnå, afhænger af værktøj, maskiner og faciliteter til rådighed, så det var ikke overraskende at se en ganske stor variation på denne front. På den anden side forventede jeg ikke at se, at de fleste projekter bare bruger en simpel manuel switch til at starte og stoppe svejseprocessen.

Faktisk er nøjagtig svejsetidskontrol nøglen til kvaliteten af dine svejsninger, og du kan ikke opnå det ved at vende en kontakt i hånden.

Jeg følte, at mens du bygger dig selv en punktsvejser er et emne, der sandsynligvis allerede er blevet slået ihjel, måske kunne man lave en bedre maskine ved at bruge tre-trins svejseprocessen med nøjagtige timinger, som professionelle maskiner gør. Så jeg gav mig selv fem hoveddesignmål for mit projekt:

Understøttelse af svejseprocessen i tre trin

Nøjagtige og konfigurerbare tidspunkter

Evne til vedvarende at gemme og hente svejseprofiler

Enkelhed i design og konstruktion

Brug af kun almindeligt tilgængelige komponenter

Resultatet er min 1-2-3 punktsvejser, og i denne instrukser vil jeg forklare svejseprocesstyringsdelen af projektet. Videoen og denne instruktive viser billeder af prototypen test svejser, før alle komponenter monteres i en ordentlig kasse. En tavle til dette projekt er beskrevet i en separat instruktionsbog.

Hvis du har brug for at sætte dig ind i konceptet modstandssvejsning, og hvordan man kan lave en svejser ved hjælp af en mikrobølge -transformer, skal du gøre det, før du læser videre. Jeg vil koncentrere mig om svejserens kontrol, ikke om hvordan en svejser fungerer eller hvordan man bygger en. Jeg føler, at dette er godt dækket andre steder.

Trin 1: Opskrift

1-2-3 Svejsning
1-2-3 Svejsning

Lad os se på komponenterne i modstandssvejser:

Svejsetransformator. Giver den lave spænding/høje strømudgang, der er nødvendig for modstandssvejsning ved konvertering af vekselstrømsspændingen. For en selvfremstillet svejser opnås svejsetransformatoren normalt ved at konvertere en mikrobølgeovntransformator til lavspændings, højstrømsudgang. Dette gøres ved at fjerne højspændings sekundærviklingen fra MOT og vikle en ny sekundær bestående af et par omgange af et meget tykt kobberkabel. Der er mange videoer på YouTube, der viser dig, hvordan du gør dette

Strømkredsløb. Tænder og slukker svejsetransformatoren, og dens drift styres af styrekredsløbet. Strømkredsløbet fungerer ved netspænding

Kontrol kredsløb. Kontrollerer alle operationer for svejseren:

    Tillader brugeren at indstille og ændre svejsetider

    • Tillader brugeren at gemme og hente svejsetider.
    • Og sidst, men ikke mindst, giver brugeren mulighed for at starte en svejseproces ved at sende kommandoer til strømkredsløbet, som tænder og slukker transformatoren.

UI. Brugeren kommunikerer med styrekredsløbet via en brugergrænseflade

Denne instruktør beskriver UI og kontrolkredsløb. Det brugergrænseflade- og styrekredsløbsdesign, jeg foreslår, er faktisk ret uafhængigt af de andre blokke og kan let eftermonteres til en eksisterende punktsvejser, forudsat at din nuværende inkarnation af strømkredsløbet kan håndtere det digitale udgangssignal fra styrekredsløbet. Så hvis du allerede har en elektronisk koblet svejser, kan du tilføje kontrol- og brugergrænsefladekomponenterne beskrevet oven på det uden andre ændringer.

Hvis du lige har en manuel afbryder lige nu, skal du også bygge et strømkredsløb.

Inden vi beskriver driften af firmwaren til kontrolkredsløbet, lad os se lidt mere detaljeret, hvordan svejseprocessen fungerer.

Trin 2: 1-2-3 Svejsning

Professionelle svejsemaskiner svejser ikke i et trin; de bruger en automatiseret tretrins sekvens. Tre-trins modstandssvejsning består af:

Opvarmningstrin. Svejsetransformator er tændt, og strøm strømmer via elektroderne gennem emnerne. Dette er beregnet til bare at varme metallet op

Tryk på trin: Svejsetransformator er slukket; arbejdsemnerne holdes tæt presset mod hinanden. De blødgjorte varme metal emner overflader gør meget god mekanisk og elektrisk kontakt nu

Svejsetrin: Svejsetransformatoren tændes igen. De metaloverflader, der nu er i intim kontakt, svejses under tryk

Varigheden af de enkelte trin er generelt ikke ensartet og afhænger af den tilgængelige strøm fra svejseren, typen af materiale, du forsøger at svejse (hovedsageligt dets modstand og smeltepunkt) og tykkelsen af emnerne.

Mange af de selvbyggede svejsere, jeg lærte om, har ikke automatisk timingstyring, hvilket gør gentagelig og pålidelig drift meget vanskelig.

Nogle har evnen til at indstille en svejsetid, ofte via et potentiometer. Kerry Wong har gjort en meget flot en i denne klasse med et ekstra par elektroder specifikt til svejsning af batterier.

Meget få selvbyggede svejsere er i stand til automatisk at udføre de tre svejsetrin som beskrevet ovenfor. Nogle har kun med et sæt faste varigheder, som denne og denne. Med andre kan du ændre nogle af varighederne, som med denne. Den har en fast varighed for opvarmnings- og pressetrin, mens svejsetrinets varighed kan ændres via et potentiometer.

Dette gør processen delvist justerbar, men det kan være svært at finde en indstilling igen, når du vil svejse det pågældende batteri -materiale igen efter et stykke tid. Når du har fundet de rigtige tidspunkter for en bestemt kombination af materiale og tykkelse, ønsker du ikke at skulle gøre det igen. Det er spild af tid (og materiale), og det kan være lidt frustrerende.

Det, du (godt, jeg) virkelig ønsker her, er fuldstændig fleksibilitet (konfigurerbarhed) til alle tider og muligheden for at gemme og hente indstillinger, når vi fik dem rigtigt.

Heldigvis er det ikke så svært. Lad os se, hvordan du styrer tretrins modstandssvejsning.

Trin 3: 1-2-3 Svejsningskontrol

1-2-3 Svejsekontrol
1-2-3 Svejsekontrol

Vi implementerer kontrolkredsløbet med en mikrokontroller (MCU). MCU -firmwaren fungerer som en statsmaskine med fire tilstande, som vi så i det foregående trin:

o Tilstand 0: Ikke svejsning

o Tilstand 1: Svejsning, opvarmningstrin

o Tilstand 2: Svejsning, tryk på trin

o Tilstand 3: Svejsning, svejsetrin

Jeg bruger pseudokode i C-stil til at beskrive programforløbet her, fordi det er let at relatere det til den egentlige MCU-kode, der er skrevet i C/C ++.

Efter opsætningstrinnet håndterer MCU -hovedsløjfen brugerinput og tilstandsovergange som følger:

01: sløjfe

02: switch (tilstand) {03: case 0: 04: readUserInput 05: case 1, 2, 3: 06: if (svejsetimer er udløbet) {07: // gå til næste tilstand 08: state = (tilstand + 1) % 4; 09: Skift strømstyring 10: hvis (tilstand ikke er 0) {11: indstil den nye trinvarighed, og genstart svejsetimeren 12:} 13:} 14: slutsløjfe

Hvis den aktuelle tilstand er 0, læser vi UI -tilstanden for at behandle brugerinput og gå videre til den næste iteration.

Vi bruger en svejsetimer til at styre svejsetrinets varighed. Antag nu, at svejsesekvensen lige er startet, når vi indtaster switch -sætningen. Strømstyring er slået til, svejsetransformatoren får strøm, og den aktuelle tilstand er 1.

Hvis svejsetimeren ikke er udløbet, bedømmes den betingede (linje 6) til falsk, vi afslutter switch -sætningen og går videre til den næste hændelse -loop -iteration.

Hvis svejsetimeren er udløbet, indtaster vi betinget (linje 6) og går videre:

1. Beregn og gem den næste tilstand (linje 8). Vi bruger modulo 4-aritmetik til at følge den korrekte tilstandssekvens 1-2-3-0. Hvis den aktuelle tilstand var 1, flytter vi nu til tilstand 2.

2. Derefter skifter vi strømstyringen (linje 9). I tilstand 1 var strømkontrollen tændt, så nu er den slukket (som den skulle være i tilstand 2, tryk på trin, med svejsetransformatoren ikke spændt).

3. Staten er nu 2, så vi indtaster betinget på linje 10.

4. Indstil svejsetimeren til den nye trinvarighed (pressetrinets varighed), og genstart svejsetimeren (linje 11).

De følgende iterationer af hovedsløjfen vil være temmelig begivenhedsløse, indtil svejsetimeren udløber igen, dvs. pressetrinnet er fuldført.

På dette tidspunkt går vi ind i kroppen af den betingede på linje 6. Den næste tilstand (tilstand 3) beregnes på linje 8; strøm til transformeren tændes igen (linje 9); svejsetimeren indstilles til svejsetrinets varighed og genstartes.

Når timeren udløber igen, beregnes den næste tilstand (tilstand 0) på linje 8, men nu udføres linje 11 ikke, så timeren genstartes ikke, da vi er færdige med svejsecyklussen.

På den næste loop -iteration er vi tilbage til behandling af brugerinput (linje 4). Færdig.

Men hvordan starter vi overhovedet svejseprocessen? Nå, vi starter, når brugeren trykker på svejseknappen.

Svejseknappen er forbundet til en MCU -indgangsstift, som er knyttet til en hardwareafbrydelse. Et tryk på knappen forårsager en afbrydelse. Afbrydelsesbehandleren starter svejseprocessen ved at indstille tilstanden til 1, indstille svejsetimeren til opvarmningstrinnets varighed, starte svejsetimeren og tænde for strømstyringen:

19: startSvejsning

20: tilstand = 1 21: indstil opvarmningstrinets varighed, og start svejsetimeren 22: tænd for strømstyringen 23: afslut startSvejsning

Trin 4: UI Management, Standby og andre firmwarekomplikationer

UI Management, Standby og andre firmwarekomplikationer
UI Management, Standby og andre firmwarekomplikationer

UI'et består af et display, en encoder med trykknap, en kortvarig trykknap og en LED. De bruges som følger:

Displayet giver feedback til brugeren til konfiguration og viser fremskridt under svejsning

Koderen med trykknap styrer al interaktion med firmwaren, undtagen at starte en svejsesekvens

Der trykkes på den momentane trykknap for at starte en svejsesekvens

Lysdioden lyser under en svejsesekvens og falmer gentagne gange ind og ud under standby

Der er en række ting, firmwaren skal gøre, ud over at kontrollere svejseprocessen som forklaret i det foregående trin:

Læser brugerinput. Dette indebærer aflæsning af encoderens position og knapstatus. Brugeren kan dreje encoderen til venstre eller højre for at flytte fra et menupunkt til det næste og ændre parametre på displayet, eller kan trykke på encoder -knappen for at bekræfte en indtastet værdi eller for at flytte et niveau op ad menustrukturen

  • Opdatering af brugergrænsefladen.

    Displayet opdateres for at afspejle brugerhandlinger

    Displayet opdateres for at afspejle svejseprocessens forløb (vi viser en indikator ved siden af varigheden af det aktuelle trin i svejsesekvensen)

    Lysdioden tændes, når vi begynder at svejse, og slukker, når vi er færdige

Stå ved. Koden holder styr på, hvor længe brugeren har været inaktiv, og går i standby, når inaktivitetsperioden overstiger en forudindstillet grænse. I standby slukkes displayet, og lysdioden på brugergrænsefladen falmes gentagne gange ind og ud for at signalere standbytilstanden. Brugeren kan forlade standby ved at dreje encoderen i begge retninger. Når den er i standby, bør brugergrænsefladen ikke reagere på andre brugerinteraktioner. Bemærk, at svejseren kun må komme i standby, når den er i tilstand 0, f.eks. ikke mens det svejser

Standardstyring, lagring og hentning af profiler. Firmwaren understøtter 3 forskellige svejseprofiler, dvs. indstillinger for 3 forskellige materialer/tykkelser. Profilerne gemmes i flash -hukommelse, så de går ikke tabt, når du slukker svejseren

Hvis du undrer dig, har jeg tilføjet standby-funktionen for at forhindre indbrænding af displayet. Når svejseren er tændt, og du ikke bruger brugergrænseflade, ændres tegnene på displayet ikke og kan forårsage indbrænding. Din kilometertal kan variere afhængigt af displayteknologi, men jeg bruger et OLED -display, og de er tilbøjelige til at brænde ind temmelig hurtigt, hvis det ikke er omsorg for, så det er en god idé at slukke for automatisk skærm.

Alt det ovenstående komplicerer selvfølgelig den "rigtige" kode. Du kan se, at der er lidt mere arbejde at gøre, end hvad vi har set på i de foregående trin for at få et pænt pakket software.

Dette bekræfter reglen om, at implementering af det, du bygger omkring kernefunktionaliteten, ofte er mere kompleks med software, end med implementeringen af selve kernefunktionaliteten!

Du finder den komplette kode i opbevaringslinket i slutningen af denne instruks.

Trin 5: Kontrolkredsløb

Kontrol kredsløb
Kontrol kredsløb

Firmwaren er udviklet og testet ved hjælp af disse komponenter:

  • Kontrol kredsløb:

    Arduino Pro Mini 5V 16MHz

  • UI:

    • Roterende encoder med trykknap
    • 0,91”128x32 I2C hvid OLED -skærm DIY baseret på SSD1306
    • Kortvarig trykknap med indbygget LED

Selvfølgelig behøver du ikke at bruge præcis disse komponenter i din build, men du skal muligvis foretage nogle kodeændringer, hvis du ikke gør det, især hvis du ændrer skærmgrænseflade, type eller størrelse.

Arduino Pin -tildeling:

  • Input:

    • Stifter A1 A2 A3 til roterende encoder, der bruges til at vælge/ændre profiler og parametre
    • Pin 2 tilsluttet en midlertidig trykknap, der trykkes på for at starte svejsning. Trykknappen er normalt monteret på et panel ved siden af encoderen og kan tilsluttes parallelt med en pedalafbryder.
  • Produktion:

    • Stifter A4/A5 til I2C, der styrer displayet.
    • Pin 11 til digital udgang til LED'en, der tændes under en svejsecyklus og falmer ind og ud under standby. Der er ingen strømbegrænsende modstand for LED'en i skematisk, fordi jeg brugte en LED indbygget i svejseknappen, der fulgte med en seriemodstand. Hvis du bruger en separat led, skal du enten tilføje en modstand i serie mellem pin 11 på Pro Mini og pin 3 på stik J2 eller lodde den i serie med LED'en på frontpanelet.
    • Pin 12 til digital udgang til lysnettet (input til strømkredsløb). Denne pin er normalt LOW og vil gå HIGH-LOW-HIGH under en svejsecyklus.

Efter prototyper på et brødbræt har jeg monteret styrekredsløbet på et selvstændigt prototavle inklusive et netforsyningsmodul (HiLink HLK-5M05), kondensatoren og modstande til at afbøde svejseknappen og stik til display, encoder, led, knap og strømkredsudgang. Forbindelserne og komponenterne er vist i skematisk (undtagen netforsyningsmodulet).

Der er også et stik (J3 i skematisk) til en fodkontakt, der er forbundet parallelt med svejseknappen, så man kan starte svejsning enten fra panelet eller ved hjælp af en fodkontakt, hvilket jeg finder langt mere bekvemt.

J4 -stikket er forbundet til optokoblerindgangen på strømkredsløbet, som er monteret på et separat proto -kort i prototypen.

For tilslutning til skærmen (J6-stik) fandt jeg faktisk det lettere at bruge et 4-leders fladt kabel med to ledninger, der går til et to-polet stik (svarende til ben 1, 2 i J6) og to ledninger med Dupont-hun stik går direkte til stifterne A4 og A5. På A4 og A5 lodde jeg et to-benet hanhoved direkte oven på Pro Mini-kortet.

Jeg vil sandsynligvis også tilføje debouncing for encoder -knappen i den sidste build. Et forbedret PCB -design til dette projekt er beskrevet i en separat instruktionsbog.

Trin 6: Strømkredsløb

Strømkredsløb
Strømkredsløb

ADVARSEL: Strømkredsløbet fungerer ved netspænding med tilstrækkelige strømme til at dræbe dig. Hvis du ikke har erfaring med netspændingskredsløb, skal du ikke forsøge at bygge en. I det mindste skal du bruge en isolationstransformator til at udføre arbejde på netspændingskredsløb.

Skematisk for effektkredsløbet er meget standard for styring af en induktiv belastning med en TRIAC. Signalet fra styrekontrolkredsløbet driver emittersiden af MOC1 optokobleren, detektorsiden driver igen porten til T1 triac. Triacen skifter belastningen (MOT) via et snubbernetværk R4/CX1.

Optokobler. MOC3052 er en tilfældig fase optokobler, ikke nulkrydsningstypen. Brug af tilfældig faseskift er mere hensigtsmæssig end nulkrydsningsskift til en tung induktiv belastning, såsom MOT.

TRIAC. T1 triac er en BTA40, der er klassificeret til 40A kontinuerlig on-state strøm, hvilket kan synes at være en overkill med hensyn til strømmen trukket af MOT i steady state. I betragtning af at belastningen dog har en ret høj induktans, er vurderingen, vi skal bekymre os om, den ikke-gentagne stigningstopp on-state-strøm. Dette er belastningens startstrøm. Det vil blive tegnet hver gang under tilkoblingstransienten af MOT, og det vil være flere gange højere end on-state-strømmen. BTA40 har en ikke-gentagen stigningstopp on-state strøm på 400A ved 50 Hz og 420A ved 60 Hz.

TRIAC -pakke. En anden grund til at vælge en BTA40 er, at den kommer i en RD91 -pakke med isoleret fane og har hanspadeterminaler. Jeg ved ikke om dig, men jeg foretrækker hellere en isoleret fane til halvledere til strøm ved netspænding. Derudover tilbyder hanspadeterminalerne en solid mekanisk forbindelse, der gør det muligt at holde den høje strømbane (ledninger mærket A i skematisk) helt væk fra proto- eller printkortet. Den høje strømbane går via de (tykkere) brune ledninger mærket A på billedet. De brune ledninger er forbundet til triac -spadeterminalerne via piggyback -terminaler, der også er forbundet til RC -net på tavlen via de (tyndere) blå ledninger. Med dette monteringstrick er den høje strømsti væk fra proto- eller printkortet. I princippet kunne du gøre det samme med lodningstråde på benene på den mere almindelige TOP3 -pakke, men samlingen ville være mekanisk mindre pålidelig.

Til prototypen har jeg monteret triac på en lille kølelegeme med tanken om at tage nogle temperaturmålinger og muligvis montere den på en større kølelegeme eller endda i direkte kontakt med metalhuset til den endelige konstruktion. Jeg observerede, at triac'en knap nok varmer op, dels fordi den er passende overdimensioneret, men hovedsageligt fordi den fleste strømafbrydelse i krydset skyldes ledningstilstandsskift, og triac tydeligvis ikke skifter ofte i denne applikation.

Snubber netværk. R4 og CX1 er snubbernetværket for at begrænse ændringshastigheden, som triac ser, når belastningen er slukket. Brug ikke nogen kondensator, du måtte have i din reservedelsbakke: CX1 skal være en X-type (eller bedre Y-type) kondensator, der er beregnet til netspændingsdrift.

Varistor. R3 er en varistor størrelse i overensstemmelse hermed din højspændingsværdi for netspænding. Skematisk viser en varistor, der er klassificeret til 430V, hvilket er passende for 240V netspænding (omhyggeligt her, spændingsværdien i varistor -koden er en spidsværdi, ikke en RMS -værdi). Brug en varistor med en nominel værdi på 220V for en 120V netspænding.

Komponentfejl. Det er god praksis at spørge dig selv, hvad konsekvenserne af komponentfejl ville være og identificere de værste scenarier. En dårlig ting, der kan ske i dette kredsløb, er triac'en, der fejler og kortslutter A1/A2 -terminalerne. Hvis dette sker, vil MOT blive permanent aktiveret, så længe triac er kortsluttet. Hvis du ikke ville bemærke transformatorens brummen og ville svejse med MOT permanent på, ville du overophede/ødelægge emne/elektroder (ikke pænt) og muligvis overophedning/smeltning af kabelisolering (meget dårlig). Så det er en god idé at indbygge en advarsel for denne fejltilstand. Det nemmeste er at tilslutte en lampe parallelt med MOT -primæren. Lampen lyser, når MOT er tændt, og giver et visuelt signal om, at svejseren fungerer efter hensigten. Skulle lyset tænde og blive ved, så ved du, at det er tid til at trække i stikket. Hvis du har set videoen i begyndelsen, har du muligvis bemærket, at en rød pære tændes og slukkes i baggrunden under svejsning. Det er det der røde lys.

En MOT er ikke en meget velopdragen belastning, men på trods af at jeg i første omgang var lidt bekymret over pålideligheden af skiftet via strømkredsløbet, har jeg ikke set nogen problemer.

Trin 7: Endelige noter

Endelige noter
Endelige noter

Først og fremmest mange tak til de mange mennesker, der har taget sig tid til at forklare på nettet, hvordan man bygger en punktsvejser ved hjælp af en transformeret mikrobølgeovn. Dette har været en kæmpe bootstrap for hele projektet.

Hvad angår Spot Welder 1-2-3-firmware, ville det have været et langt og kedeligt arbejde at skrive koden uden de abstraktioner, der blev leveret af en række biblioteker ud over standard Arduino IDE. Jeg finder disse timer (RBD_Timer), encoder (ClickEncoder), menuer (MenuSystem) og EEPROM (EEPROMex) biblioteker meget nyttige.

Firmwarekoden kan downloades fra Spot Welder 1-2-3-kodelagret.

Hvis du planlægger at bygge dette, foreslår jeg på det kraftigste at bruge det PCB -design, der er beskrevet her, og som indeholder en række forbedringer.

Anbefalede: