Fórum témák

» Több friss téma
Fórum » Ponthegesztő akkumulátorcellákhoz
 
Témaindító: t-david, idő: Jan 19, 2009
Témakörök:
Lapozás: OK   10 / 19
(#) mr.Cara válasza martin96 hozzászólására (») Ápr 13, 2019 /
 
Szia ! Föltennél rajzot is ? Érdekelne a megoldásod ! Köszönettel.
(#) D_Zsolt hozzászólása Ápr 16, 2019 /
 
Belekaptam én is egy Spotwelderbe, de abból akartam építkezni ami van a fiókban. Ez 99%-ra sikeredett is.
Arduino Nano (vagy valami klónja), egy 2x16 soros LCD 4 biten meghajtva és egy SSR, amit azt hittem, hogy öröm lesz használni, de mivel 20V-ot vár a bemeneten, rendeltem helyette másikat.
A trafóval még nem kötöttem össze ennek hiányában.
A vázlat és a program innen származik, kis módosítással. Az eredeti I2C LCD-t várt, mivel nem volt ilyenem ezt a részt átírtam.
A kód a következő:
  1. /*
  2.   Arduino Nano V3 - LCD 1602 - MOT - SSR -> Spot Welder
  3.  
  4.  This sketch is written for SpotWelder Maker's
  5.  
  6.  Parts required:
  7.         1x Arduino Nano V3 or Clone
  8.         1x LCD 16x2 Display
  9.         1x FOTEK SSR-40 DA
  10.         1x 10 kohm potentiometer
  11.         3x 10 kohm resistror for buttons and for temp sensor
  12.         1x 10kohm Thermistor
  13.         1x 5VDC power supply
  14.         1x
  15.  
  16.  
  17.  Modifyed 15 April 2019
  18.  by Joe Andrew (joeandrewseu@gmail.com)
  19.  
  20.  
  21. */
  22.  
  23. // include the library code:
  24. #include <math.h>                                               // standard library used for temperature calculations
  25. #include <LiquidCrystal.h>              // LCD1602 Standard library
  26.  
  27. // initialize the library with the numbers of the interface pins
  28.                                                                                                                 // D12 rs
  29.                                                                                                                 // D11 en
  30.                                                                                                                 // D5 data
  31.                                                                                                                 // D4 data
  32.                                                                                                                 // D3 data
  33.                                                                                                                 // D2 data
  34. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  35.  
  36. int backlightpin = 9;                           // D9 Backlight PIN
  37. int menupin = 8;                                                        // D8 - This pin connects to the button that controls the menu
  38. int switchpin = 7;                                              // D7 - This pin connects to the solid state switch (relay) on the positive terminal
  39. int weldbuttonpin = 6;                          // D6 - This pin connects to the button that activates the switch, initiating the weld
  40. int thermpin = 0;                                               // A0 - This pin connects to the thermistor which makes up our temperature sensor
  41. int preweld = 50;                                               // This is the time in milliseconds that the spot welder uses to pre-weld (the first pulse in a  pulse weld)
  42. int postprepause = 500;                 // This is the time in milliseconds that the spot welder waits before initiating the second pulse in a  pulse
  43. int weldtimeincrement = 50;             // This is the time in milliseconds that the menu will increase the weld time by whenever you press the menu button
  44. int maxweldpulse = 450;                 // This is the highest auto setting in milliseconds. Make this the highest pulse width you want available in the menu
  45.                                                 // Using this in conjuction with "weldtimeincrement" (just above) gives us a range of 50-450ms in 50ms increments.
  46. int debouncepause = 200;                        // This is just to prevent accidental double activations due to physical imperfections in buttons
  47. bool manualweld = false;                        // This is used for alternate actions when in manual mode as opposed to  pulse automatic
  48. int weldtime = 0;                                               // This init value becomes the base increment value. This is just a declaration and doesn't need to be changed.
  49. int cutofftemp = 80;                                    // This is the cut off temperature for the welder in Celsius. I use 80 for safety but you can use 30 for testing the system
  50. int resumetemp = 40;                                    // This is the temp in Celsius at which the system becomes available again. I use 40 for safety and 28 for testing
  51.  
  52.  
  53.  
  54.  
  55. void setup()
  56. {
  57. pinMode(backlightpin, OUTPUT);                                                                                          // setting up our pins
  58. pinMode(switchpin, OUTPUT);    
  59. pinMode(weldbuttonpin, INPUT);
  60. pinMode(menupin, INPUT);
  61. pinMode(thermpin, INPUT);
  62.  
  63.   maxweldpulse = (maxweldpulse - weldtimeincrement);            // this does some simple math for our menu range
  64.   weldtime = weldtimeincrement;                                                                                         // This sets our minimum weld time
  65.   lcd.begin(16,2);                                                                                                                                      // Turn on the lcd. My LCD is 16 characters long and 2 lines tall
  66.         digitalWrite(backlightpin, HIGH);;                                                              // Turn on the backlight.
  67.   menudisplay();                                                                                                                                                // display the initial menu screen
  68.  
  69. }
  70.  
  71.  
  72. void loop()
  73. {
  74.   if (int(Thermistor(analogRead(thermpin))) >= cutofftemp){ // This prevents any activations if the temperature is too high
  75.        cooldown();
  76.   }
  77.  
  78.   if (digitalRead(menupin)==HIGH){                                                                      // This changes the menu if the menu button is pressed
  79.     delay(debouncepause);
  80.     menuchange();
  81.   }
  82.    
  83.     if (digitalRead(weldbuttonpin)==HIGH) {                                     // This begins a weld when the weld button is pressed
  84.       delay(debouncepause);
  85.       weld();
  86.     }    
  87. }
  88.  
  89.   void menuchange(){                                                                                                                            // This function changes the menu to the next time or manual mode depending on your ranges
  90.     manualweld=false;
  91.     if (weldtime<=maxweldpulse){
  92.       weldtime = (weldtime + weldtimeincrement);
  93.     }
  94.       else{
  95.       weldtime = 0;
  96.       manualweld=true;
  97.     }
  98.     menudisplay();
  99.   }
  100.  
  101.  void menudisplay(){                                                                                                                            // This function displays all the information and menu on the LCD
  102.   lcd.clear();
  103.   lcd.setCursor(0,0);
  104.   lcd.print("Weld Time | Temp");
  105.   lcd.setCursor(0,1);
  106.   if (manualweld == true){
  107.     lcd.print("Manual");
  108.     lcd.setCursor(10,1);
  109.     lcd.print("|  ");
  110.     lcd.print(int(Thermistor(analogRead(thermpin))));
  111.     lcd.print("C");
  112.   }
  113.     else{
  114.     lcd.print(weldtime);
  115.     lcd.print(" ms");
  116.     lcd.setCursor(10,1);
  117.     lcd.print("|  ");
  118.     lcd.print(int(Thermistor(analogRead(thermpin))));
  119.     lcd.print("C");
  120.     }
  121.   }
  122.  
  123.  void weld(){                                                                                                                                                           // This function activates the solid state relay based on your menu ion
  124.     lcd.clear();
  125.     lcd.setCursor(0,0);
  126.     lcd.print("Welding...");
  127.     if(manualweld == true){
  128.       while(digitalRead(weldbuttonpin)==HIGH && int(Thermistor(analogRead(thermpin)) < cutofftemp)){ // No welding if the temperature is out of range (double check). Activate a manual weld.
  129.         digitalWrite(switchpin, HIGH);
  130.       }
  131.       digitalWrite(switchpin, LOW);
  132.     }
  133.       else{     // Activate an automatic  pulse based on the menu ion and your range definitions
  134.         digitalWrite(switchpin, HIGH);
  135.         delay(preweld);
  136.         digitalWrite(switchpin, LOW);
  137.         delay(postprepause);
  138.         digitalWrite(switchpin, HIGH);
  139.         delay(weldtime);
  140.         digitalWrite(switchpin, LOW);
  141.       }
  142.         menudisplay();
  143.     }
  144.  
  145. void cooldown(){                                                                                                                                                // This is the cooldown mode for when/if the temperature reaches dangerous levels
  146.   while (int(Thermistor(analogRead(thermpin))) > resumetemp){
  147.         lcd.clear();
  148.         lcd.setCursor(0,0);
  149.         lcd.print("Cooling...| Temp");
  150.         lcd.setCursor(10,1);
  151.         lcd.print("|  ");
  152.         lcd.print(int(Thermistor(analogRead(thermpin))));
  153.         lcd.print("C");
  154.         delay(1000);                                                                                                                                    // Refresh the temperature every second while in cooldown mode. Normally it is only refreshed after a button press. (otherwise things get messy imo)
  155.         }
  156.         menudisplay();
  157. }
  158.  
  159. // This function (and its original call) borrowed  http://playground.arduino.cc/ComponentLib/Thermistor2. It does the math for the temp.
  160.   double Thermistor(int RawADC) {
  161.  double Temp;
  162.  Temp = log(10000.0*((1024.0/RawADC-1)));
  163. //         =log(10000.0/(1024.0/RawADC-1)) // for pull-up configuration
  164.  Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );
  165.  Temp = Temp - 273.15;            //  Kelvin to Celcius
  166. // Temp = (Temp * 9.0)/ 5.0 + 32.0; //  Celcius to Fahrenheit
  167.  return Temp;
  168. }


A háttérvilágítás direktben megy még...
Elég egyértelmű, hogy mit csinál, alapvetően nem sok beállítási lehetőség van rajta. „Kétütemű”, de csak a második hegesztés időtartama állítható. Volna értelme tovább gondolni a kódot és kibővíteni egyéb beállítási lehetőségekkel is vagy jó ez így?
(#) D_Zsolt hozzászólása Ápr 16, 2019 /
 
Kínai nikkelszalagokról van valakinek tapasztalata, mármint, hogy melyeket kell kerülni és melyiket érdemes venni?
(#) gabilow válasza D_Zsolt hozzászólására (») Ápr 16, 2019 /
 
Üdv!
Nekem EZ bejött. A 0.15mm vastag és 5mm szélesből rendeltem,forrasztani is könnyű.
(#) D_Zsolt válasza gabilow hozzászólására (») Ápr 16, 2019 /
 
Köszönöm!
(#) mr.Cara hozzászólása Ápr 16, 2019 /
 
Háát nem tudom... A videjókon olyan egyszerű... Én meg szenvedek hónapok óta.
Lát valaki elszúrást , mert nekem nem akar hegeszteni. Próbáltam kínai 8mm - 0,2mm szalaggal. Itthonról rendeltem 5mm - 0,15 mm; 10mm - 0,2mm. Ha feltekerem a szabályzót a szalag meglilul, de könnyedén leválik, ha leveszem, hogy ne liluljon oda sem ragad.
A tarfó olyan 700W-os lehet (legalább is a tipusban van valami700) . A szekunder 1,8x5mm 6szál egymás fölött . A vezérlés kínai csoda.. A kábel kb.:80cm autó Hi-Fi tápkábel (21mm2). A csúcsok 10x8mm réz tekercshuzal.
(#) erbe válasza mr.Cara hozzászólására (») Ápr 16, 2019 /
 
4 meneted van. 2 bőven elég lenne, ha párhuzamosítanád. Túl hosszú és vékony a kábeled. Nem 21 mm2-es Hifi kábel kell, hanem 120-as hegesztőkábel és nem 80 cm, hanem 8.
A lemezkének nem lilulni kellene, hanem pirosan világítani.
Mit szabályoz a vezérlésed? Nem áramot kellene szabályoznia, hanem bekapcsolási időt. 0,5-2 sec. Gondolom, az a nagy fekete buckó triac a hűtőfelületen?
(#) sector99 válasza mr.Cara hozzászólására (») Ápr 16, 2019 /
 
Szerintem egyszerűbb lenne a dolgod pl. autósboltban méterre kapható testkábellel (kb. 80-90 mm2) Ez a sok csatlakozás, szorító stb. nagy átmeneti ellenállást visz be a körbe, amitől használhatatlan lesz a géped. Itt - 100 Amperes nagyságrendről van szó - minden egyes milliohm számít. Valami hasonló kivitelezést tervezzél.
(#) erbe válasza sector99 hozzászólására (») Ápr 17, 2019 / 1
 
A kis kínainak még ennél is több esze volt. A merev tekercsvéget dugta ki az előlapon. Ráfogatta a csúcsokat és a hegesztendő darabot mozgatja.
Spot welder
A hozzászólás módosítva: Ápr 17, 2019
(#) mr.Cara válasza erbe hozzászólására (») Ápr 18, 2019 /
 
Az első videón amit láttam, 25...35mm2es kábelt tekert a manus a trafó ablakába... Ez több mint 50mm2... Ez nem az alu hangszóró vezeték .. Réz sodrat ! 120-a kábelt meg nem mozdítod 8cm hosszon ! Valóban felvöröslik. de nem az elemhez heged ! A fölső kijelzőhöz az van biggyesztve : Weld Current, az alsóhoz Weld time.. Gondolom az egyik a továbbengedett teljesítményt (%-ban)a másik az időt jelzi (ms-ban) és egy BTA41600B triacot (41A 600V) vezérel , azon keresztül a trafót (primert) ... A hűtőbordát csak biztosításként tettem rá, de nem melegszik a triac .
Tanácstalan vagyok...
(#) mr.Cara válasza sector99 hozzászólására (») Ápr 18, 2019 /
 
A 35mm2-es kábel ment bele a vasba ilyen könnyen amikor először tekertem meg. Ennek is van vagy 30cm kivezetése és az elektródának használt 2,5mm2-es rézdrót sem valami nagyáramú...
(#) pipi válasza mr.Cara hozzászólására (») Ápr 18, 2019 /
 
Hali!
Az idő az 20ms lépésekben van kijelezve tudtommal -> vagyis a szinuszhullámok száma.
De nézd meg az oldalon ahol vásároltad, szerintem le van írva
(#) sector99 válasza mr.Cara hozzászólására (») Ápr 18, 2019 /
 
Bevallom nem tudom, hogy hol vesznek el az amperok Nálad. Én kínai időzítőt használok, de nem szoktam izzásig, mert akkor pár tized másodperc alatt szét is fröccsen a lemez.
(#) mr.Cara válasza pipi hozzászólására (») Ápr 18, 2019 /
 
Üdvözletem !
Sajnos angol az nem megy ! Bővebben: Link innen jött . Valóban igazad van (gugli szerint ) 30...99% a teljesítmény szabályzása, 1...99 ciklus az időzítése ( x20msec).
A hozzászólás módosítva: Ápr 18, 2019
(#) mr.Cara válasza sector99 hozzászólására (») Ápr 18, 2019 /
 
Az előbb kerestem a vezérlő leírását és belefutottam ebbe :Bővebben: Link Mentségemre legyen, hogy ennek sincs valami nagy keresztmetszete, a csati meg olyan amilyen...
(#) D_Zsolt hozzászólása Ápr 18, 2019 /
 
Egy kósza kérdés, mivel sosem készítettem még transzformátort hálózati feszültségre/frekvenciára: számít a tekercselés iránya? (RF csatolásokat készítettem még amikor rádióztam, ott az összetartozókat egy irányba kellett tekerni)
(#) ferci válasza D_Zsolt hozzászólására (») Ápr 18, 2019 /
 
Ha csak egy egyszerű trafót tekersz, 1 primerrel és 1 szekunderrel, nem számit.
Akkor lenne érdekes a menetirány, ha pl. több szekundered van és sorba is kötnéd őket.
(#) erbe válasza mr.Cara hozzászólására (») Ápr 18, 2019 /
 
Már írtam korábban. Sok a 4 menet. Használj kettőt!
(#) D_Zsolt válasza ferci hozzászólására (») Ápr 18, 2019 /
 
Ok, köszönöm!
(#) mr.Cara válasza erbe hozzászólására (») Ápr 19, 2019 /
 
Már korábban próbáltam, akkor is ugyan ez volt a szitu: felizzik a szalag, de az akuhoz csak épp ragad nem heged. Amúgy miért gond a több menetszám ? I=U/R . Ha nagyobb a feszültség könnyebben áthajtja az áramot, ha nagyobb a veszteség a kábelen . Vagy rossz a gondolatmenetem ? Most szereztem a másik vasra vastagabb kábelt... Jövőhéten nekifutok újra...
Köszi hogy segítesz !!!
(#) qvasz2 válasza mr.Cara hozzászólására (») Ápr 19, 2019 /
 
Csakhogy a kivehető teljesítmény állandó: P=U*I
Idézet:
„Ha nagyobb a feszültség könnyebben áthajtja az áramot,”

Semmit se hajt könnyebben, hanem sokkal kisebb áram fog csak folyni. Márpedig a hegesztéshez ÁRAM kell. Rengeteg. Nálad pont ez a baj, hogy csak csordogál.
A hozzászólás módosítva: Ápr 19, 2019
(#) D_Zsolt hozzászólása Ápr 20, 2019 /
 
Mik azok a minimális/maximális időtartamok amiket érdemes beállítani a pre, szünet és hegesztés időtartamának és milyen lépésközzel? Az 1ms-os lépést túl kicsinek találom, pláne ha a fő hegesztési ciklusra gondolok. 5 vagy 10ms jó lehet?
(#) pipi válasza D_Zsolt hozzászólására (») Ápr 20, 2019 /
 
Hali!
Milyen vezérlőd van? Azt nézd meg a doksijában (vagy ahol vetted weboldalon) hogy az 1 "lépés" mekkora idő...
Szerintem nem 1 ms hanem 20ms lépést jelent egy egység...
(#) xitibi válasza mr.Cara hozzászólására (») Ápr 20, 2019 /
 
Szia. Nem értek hozzá csak kérdezek! Nem lehet hogy az a baj hogy a szekunderre tekert vezeték hozzá ér a vasmaghoz szigeteletlenül? A videókon mindenűt szigetelt kábelt vezetnek át...
A hozzászólás módosítva: Ápr 20, 2019
(#) D_Zsolt válasza pipi hozzászólására (») Ápr 20, 2019 /
 
Bocsánat, nem voltam egyértelmű, most készítek egyet arduinoval (egy korábbi hozzászólásomban ott a kód alapja amit tovább gondoltam).
A határokat szerettem volna megtudni, hogy mit programozzak bele. Pl pre: 20ms-tól 500-ig, szünet 50-1000, hegesztés 150-2000ms-ig vagy ilyesmi. Még nincs teljesen kész, kipróbálni nem tudom és ezeket az értékeket szeretném már a kódban tudni, hogy amikor minden alkatrész meg lesz, ne akkor kelljen! Az arduino topicban van jelenlegi állása a projektnek, ha teljesen kész lesz, jelzem itt is.
(#) mr.Cara válasza xitibi hozzászólására (») Ápr 21, 2019 /
 
Ez kettős szigetelésű huzal (a belső lakkozásra kívülről még valamilyen papírszerű cucc van felhordva) . Multival már mértem. Az eredeti prespán ott maradt a vasmagban, és még van két üvegszálas bakelit ív betéve (az a zöld a huzalok alatt) , hogy ne a vason hajoljon meg a huzal .
A hozzászólás módosítva: Ápr 21, 2019
(#) sector99 válasza D_Zsolt hozzászólására (») Ápr 21, 2019 /
 
Nem értek a hegesztéshez, de amatőr körülmények között (vagy egyáltalán) szükség van ilyen "pre", meg várok aztán hegesztek időzítésekre ?
(#) D_Zsolt válasza sector99 hozzászólására (») Ápr 21, 2019 /
 
Én sem értek hozzá, de mindenfelé ezt látom! Van egy szép projekt (csak nekem ezek az alkatrészek nincsenek a fiókban), elég jól leír mindent, de nem csak ez alapján gondolom, hogy kellhet, hanem tényleg internetszerte mindenki bele írja. Azt hittem van itt valaki aki szintén szeret kísérletezni és tudja a tutit Az én kódomban ha a fő hegesztés nulla, akkor amíg nyomod a gombot, hegeszt. A többi csak extra és gyakorllom az arduinot ami jelen esetben nekem még újdonság.
(#) sector99 válasza D_Zsolt hozzászólására (») Ápr 21, 2019 /
 
Nos még nem látttam ezt a cikket. Szép feladat - pláne ha át is akarod írni a programot.
Le a kalappal és sok sikert ! Én mondjuk sokkal egyszerűbbet csináltam: trafó - occó kínai programozható időzítő - SSR. Bár még nincs dobozban...
A hozzászólás módosítva: Ápr 21, 2019
(#) D_Zsolt válasza sector99 hozzászólására (») Ápr 21, 2019 /
 
Szerintem is szép projekt, de nem ezt írom át! Utálom az eclipse-t! Maradok az arduino sajátjánál, de ebben vannak okosságok és már nem az elsőt készíti, szóval van a víztoronyba valami Az arduino topicban ott a link (meg lehet, hogy ebben is) az eredetire, amiből indultam. Jelenleg más a kinézete, mint az eredetinek, de még nem megy a setup. Amit a kódba fordítasz, úgy hegeszt vagy az eredetivel 50ms-os lépésben tudod a fő impulzus hosszát léptetni. A semminél több
Következő: »»   10 / 19
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem