Zgrzewarka Punktowa Do Ogniw
Moderatorzy: moderatorzy2014, moderatorzy
Re: Zgrzewarka Punktowa Do Ogniw
Po wielu przymiarkach i długich rozmowach z zemanem dzisiaj budowa mojej zgrzewarki weszła w finalny etap.
Całą elektronikę mam zgromadzoną od dwóch miesięcy, trafo czeka już z pół roku. W dniu dzisiejszym kolega przyniósł mi wycięte na laserze ameliniowe elementy obudowy.
Miał mi zrobić zaginaną obudowę na cyfrowej giętarce ale mają w firmie tyle roboty że czekał bym do zimy więc zdecydowałem się na łączenie całej obudowy na kątowniczki ameliniowe.
Do weekendu pewnie poskładam całość do kupy i zrobię pierwszy zgrzew. Więcej zdjęć wrzucę jak zrobię w trakie składania.
Całą elektronikę mam zgromadzoną od dwóch miesięcy, trafo czeka już z pół roku. W dniu dzisiejszym kolega przyniósł mi wycięte na laserze ameliniowe elementy obudowy.
Miał mi zrobić zaginaną obudowę na cyfrowej giętarce ale mają w firmie tyle roboty że czekał bym do zimy więc zdecydowałem się na łączenie całej obudowy na kątowniczki ameliniowe.
Do weekendu pewnie poskładam całość do kupy i zrobię pierwszy zgrzew. Więcej zdjęć wrzucę jak zrobię w trakie składania.
Re: Zgrzewarka Punktowa Do Ogniw
Też zrobiłem, rzeczywiście fajny pomysł. Trochę się obawiałem sterowaniem uzwojeniem pierwotnym ale działa super.
W sumie zgrzałem co miałem więc pewnie wyląduje na giełdzie :)
W sumie zgrzałem co miałem więc pewnie wyląduje na giełdzie :)
- Załączniki
-
- welder.jpg (55.21 KiB) Przejrzano 4157 razy
Helikoptery
-
- Posty: 86
- Rejestracja: sobota 26 wrz 2015, 18:29
- Lokalizacja: Włoszczowa
Re: Zgrzewarka Punktowa Do Ogniw
Witam wszystkich:
Odświeżę troszkę temat:)
Mam mały problem z programem arduino do sterowania zgrzewarką punktową.
Chodzi o to, że nie uzyskuję czasu deklarowanego przez program.
Program pochodzi z netu z małymi modyfikacjami z mojej strony.
Do pomiaru czasu używam drugiego arduino z programem z sieci:
Po ustawieniu wartości np 50ms w czasie pomiaru mam 288 ms dłuższe czasy też się nie zgadzają
Proszę o pomoc w poprawie programu.
Odświeżę troszkę temat:)
Mam mały problem z programem arduino do sterowania zgrzewarką punktową.
Chodzi o to, że nie uzyskuję czasu deklarowanego przez program.
Program pochodzi z netu z małymi modyfikacjami z mojej strony.
Kod: Zaznacz cały
int odczytanaWartosc = 0;
int czas = 0;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Ustawienie adresu ukladu na 0x27
void setup()
{
lcd.init(); // initialize the lcd
lcd.begin(16,2); // Inicjalizacja LCD 2x16
lcd.clear();
lcd.backlight(); // zalaczenie podswietlenia
pinMode(8, OUTPUT); // zasilenie- przekaźnik
pinMode(7, INPUT_PULLUP); // przycisk
}
void loop()
{
lcd.setCursor(0,0);
lcd.print("Czas impulsu:");
lcd.setCursor(0,1);
lcd.print(" ms");
odczytanaWartosc = analogRead(A1); // odczyt ustawienia potencjometru
lcd.setCursor(0,1); // Ustawienie kursora w pozycji
czas = odczytanaWartosc * (100/1023.0) ;
lcd.print(czas);
delay(200);
if (digitalRead(7) == LOW) {
digitalWrite(8, HIGH); //zgrzewanie
delay(czas);//czas trwania zgrzewania
}
else {
digitalWrite(8, LOW); //Wyłączenie zgrzewania
}
}
Kod: Zaznacz cały
int poziom_niski = 100;
int poziom_wysoki = 750;
int poziom_odciecia;
long pocz;
long koniec;
long dlug;
void setup()
{
poziom_odciecia = (poziom_niski+poziom_wysoki)/2;
Serial.begin(9600);
}
void loop()
{
while (analogRead(A1) < poziom_odciecia);
pocz = millis();
while (analogRead(A1) > poziom_odciecia);
koniec = millis();
dlug = koniec-pocz;
Serial.println(dlug);
}
Proszę o pomoc w poprawie programu.
Re: Zgrzewarka Punktowa Do Ogniw
No jak masz w petli miedzy wlaczeniem a wylaczeniem zgrzewania delay(200) i jeszcze kilka operacji po I2C na wyswietlaczu to nie dziwota ze masz czasy grubo powyzej 200ms..grzesiekcichy pisze:Po ustawieniu wartości np 50ms w czasie pomiaru mam 288 ms dłuższe czasy też się nie zgadzają
-
- Posty: 86
- Rejestracja: sobota 26 wrz 2015, 18:29
- Lokalizacja: Włoszczowa
Re: Zgrzewarka Punktowa Do Ogniw
Nawet jak to delay (200 ) zmniejszę do 1ms lub wyłączę to też jest lipa.
Da się to jakoś prosto poprawić bo na programowaniu arduino to się tak średnio znam :(
Da się to jakoś prosto poprawić bo na programowaniu arduino to się tak średnio znam :(
Re: Zgrzewarka Punktowa Do Ogniw
Tak jak pisalem, oprocz delay(200) masz jeszcze obsluge wysiwetlacza ktora rowniez zajmuje czas.grzesiekcichy pisze:Nawet jak to delay (200 ) zmniejszę do 1ms lub wyłączę to też jest lipa.
Da sie, wylaczajac zgrzewanie zaraz po delay(czas);grzesiekcichy pisze:Da się to jakoś prosto poprawić bo na programowaniu arduino to się tak średnio znam :(
-
- Posty: 86
- Rejestracja: sobota 26 wrz 2015, 18:29
- Lokalizacja: Włoszczowa
Re: Zgrzewarka Punktowa Do Ogniw
Czy program ma wyglądać jakoś tak?
pawelsky mógłbyś mi to poprawić jeśli źle to zrobiłem.
Kod: Zaznacz cały
int odczytanaWartosc = 0;
int czas = 0;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Ustawienie adresu ukladu na 0x27
void setup()
{
lcd.init(); // initialize the lcd
lcd.begin(16,2); // Inicjalizacja LCD 2x16
lcd.clear();
lcd.backlight(); // zalaczenie podswietlenia
pinMode(8, OUTPUT); // zasilenie- przekaźnik
pinMode(7, INPUT_PULLUP); // przycisk
}
void loop()
{
lcd.setCursor(0,0);
lcd.print("Czas impulsu:");
lcd.setCursor(0,1);
lcd.print(" ms");
odczytanaWartosc = analogRead(A1); // odczyt ustawienia potencjometru
lcd.setCursor(0,1); // Ustawienie kursora w pozycji
czas = odczytanaWartosc * (100/1023.0) ;
lcd.print(czas);
if (digitalRead(7) == LOW) {
digitalWrite(8, HIGH); //zgrzewanie
delay(czas);//czas trwania zgrzewania
digitalWrite(8, LOW); //Wyłączenie zgrzewania
}
}
pawelsky mógłbyś mi to poprawić jeśli źle to zrobiłem.
Re: Zgrzewarka Punktowa Do Ogniw
Witam,
Dorzucę kilka swoich doświadczeń z zgrzewarką na trafo którą popełniłem jakiś czas temu.
Co w niej siedzi:
- ATmega328p + 16MHZ kwarc
- LCD 2x16 na szynie 4bit
- encoder z przyciskiem - nastawy
- termometr DS1820 do pomiaru temperatury trafo, i działo jako termostat
- optotriak + triak 40A, nie przekaźnik SSR
- optoizolator do synchronizacji pracy programu do sieci
- wyjście optoizolatora podłączone do wejścia wbudowanego komparatora analogowego i wykorzystanie przerwania z niego
W zamian to uzyskałem:
- zgrzew zawsze wykonywany w tym samym momencie sinusoidy. Gdy tego nie miałem - przy tych samych czasach zgrzewu i opóźnienia leciały, lub nie leciały iskry. Trafo było włączane albo w zerze, albo w szczycie albo gdzie popadło
- dokładność odmierzania czasu z dokładnością do 1ms - sprawdzone na oscyloskopie. Wykorzystuje wbudowane przerwania, timery
To tak słowem wstępu.
Parę wskazówek:
Odmierzanie czasu przy pomocy pętli delay nigdy nie da powtarzalnego efektu.
Proponuję na początek zaznajomić się z kilkoma filmami Pana Mirosława Kardasia, człowiek pasjonat programowania w C, nie jest to język wykorzystywany w środowisku ARDUINO.
Opowiada bardzo przystępnie oraz co z czym się je. Sporo przykładów itp.
Na koniec parę fotek.
- fotka z ustawionym czasem zgrzewu: 30ms
- wykres(górny) czasu zgrzewu, poniżej sinus sieci. Pionowe markery również pokazują moment włączenia
- widok płytki przed końcowym przycięciem
- strona lutowania. Trochę rezystorków SMD
Nie jest to super perfekcyjne wykonanie. Nie uniknąłem błędów - np. umieszczenie złącz śrubowych. Nie do końca działający kwarc SMD, zastąpiony sprawdzonym rozwiązaniem.
Kable widoczne na ostatnim zdjęciu - najprostszy debuger - port szeregowy.
Próby przeszła pozytywnie i leży w szafie czekając na lepsze czasy.
Uprzedzając pytania czy udostępnię kod źródłowy, schemat itp. - wrzucam schemat. Nie dam sobie głowy ściąć - nie wiem czy tranzystor BS170 nie musiał być obrócony o 180stopni finalnie na płytce.
- spakowany schemat i plik hex
Może będzie to inspiracją dla innych.
Pozdrawiam.
Dorzucę kilka swoich doświadczeń z zgrzewarką na trafo którą popełniłem jakiś czas temu.
Co w niej siedzi:
- ATmega328p + 16MHZ kwarc
- LCD 2x16 na szynie 4bit
- encoder z przyciskiem - nastawy
- termometr DS1820 do pomiaru temperatury trafo, i działo jako termostat
- optotriak + triak 40A, nie przekaźnik SSR
- optoizolator do synchronizacji pracy programu do sieci
- wyjście optoizolatora podłączone do wejścia wbudowanego komparatora analogowego i wykorzystanie przerwania z niego
W zamian to uzyskałem:
- zgrzew zawsze wykonywany w tym samym momencie sinusoidy. Gdy tego nie miałem - przy tych samych czasach zgrzewu i opóźnienia leciały, lub nie leciały iskry. Trafo było włączane albo w zerze, albo w szczycie albo gdzie popadło
- dokładność odmierzania czasu z dokładnością do 1ms - sprawdzone na oscyloskopie. Wykorzystuje wbudowane przerwania, timery
To tak słowem wstępu.
Parę wskazówek:
Jeśli chcesz mieć dokładny pomiar czasu, bez przerwań i timerów się nie da.grzesiekcichy pisze:Nawet jak to delay (200 ) zmniejszę do 1ms lub wyłączę to też jest lipa.
Da się to jakoś prosto poprawić bo na programowaniu arduino to się tak średnio znam :(
Odmierzanie czasu przy pomocy pętli delay nigdy nie da powtarzalnego efektu.
Proponuję na początek zaznajomić się z kilkoma filmami Pana Mirosława Kardasia, człowiek pasjonat programowania w C, nie jest to język wykorzystywany w środowisku ARDUINO.
Opowiada bardzo przystępnie oraz co z czym się je. Sporo przykładów itp.
Na koniec parę fotek.
- fotka z ustawionym czasem zgrzewu: 30ms
- wykres(górny) czasu zgrzewu, poniżej sinus sieci. Pionowe markery również pokazują moment włączenia
- widok płytki przed końcowym przycięciem
- strona lutowania. Trochę rezystorków SMD
Nie jest to super perfekcyjne wykonanie. Nie uniknąłem błędów - np. umieszczenie złącz śrubowych. Nie do końca działający kwarc SMD, zastąpiony sprawdzonym rozwiązaniem.
Kable widoczne na ostatnim zdjęciu - najprostszy debuger - port szeregowy.
Próby przeszła pozytywnie i leży w szafie czekając na lepsze czasy.
Uprzedzając pytania czy udostępnię kod źródłowy, schemat itp. - wrzucam schemat. Nie dam sobie głowy ściąć - nie wiem czy tranzystor BS170 nie musiał być obrócony o 180stopni finalnie na płytce.
- spakowany schemat i plik hex
Może będzie to inspiracją dla innych.
Pozdrawiam.
Ostatnio zmieniony niedziela 15 sie 2021, 17:40 przez Avatar, łącznie zmieniany 1 raz.
Aparatura: Taranis 9XD + pulpit
Modele: MPX Easy Glider 4; dronik 5" na ramie KHXC5 GEPRC
Modele: MPX Easy Glider 4; dronik 5" na ramie KHXC5 GEPRC
Re: Zgrzewarka Punktowa Do Ogniw
a możesz dorzucić schemat? bo w pliku jest tylko widok elementów z góry
samolot max 4579/1293 analog, DJI do końca zasięgu :)
coper max 1729(na 5.8)
coper max 1729(na 5.8)
Re: Zgrzewarka Punktowa Do Ogniw
Poprawiłem spakowany plik, już jest schemat.
Aparatura: Taranis 9XD + pulpit
Modele: MPX Easy Glider 4; dronik 5" na ramie KHXC5 GEPRC
Modele: MPX Easy Glider 4; dronik 5" na ramie KHXC5 GEPRC
Re: Zgrzewarka Punktowa Do Ogniw
Tak się przymierzam do budowy swojej zgrzewarki, nawet zgromadziłem kilka elementów ale kilka pytań mi się nasunęło.
Analizując to wszystko zastanawiam się jaki upływa czas, od wysterowania wyjścia mikrokontrolera do osiągnięcia przez transformator pełnej mocy po stronie wtórnej.
Tak trochę to pytanie kieruję do kolegi Avatar. Zgadzam się, że można wysterować wyjście mikrokontrolera które ma załączyć optotriak i po dokładnie 20ms je wyłączyć ale jaki czas mija od załączenia triaka przez optotriak do załączenia transformatora przez triak itd aż po same elektrody.
No chyba że ten czas od wysterowania wyjścia do pojawienia się napięcia i pełnej mocy na elektrodach jest pomijalny ?
Chce napisać program na arduino z użyciem przerwań i funkcji millis(), do tego wyświetlacz LCD TFT bo myślę, że taka forma budowy od podstaw da mi więcej frajdy.
Jak to jest z tym czasem ?
Analizując to wszystko zastanawiam się jaki upływa czas, od wysterowania wyjścia mikrokontrolera do osiągnięcia przez transformator pełnej mocy po stronie wtórnej.
Tak trochę to pytanie kieruję do kolegi Avatar. Zgadzam się, że można wysterować wyjście mikrokontrolera które ma załączyć optotriak i po dokładnie 20ms je wyłączyć ale jaki czas mija od załączenia triaka przez optotriak do załączenia transformatora przez triak itd aż po same elektrody.
No chyba że ten czas od wysterowania wyjścia do pojawienia się napięcia i pełnej mocy na elektrodach jest pomijalny ?
Chce napisać program na arduino z użyciem przerwań i funkcji millis(), do tego wyświetlacz LCD TFT bo myślę, że taka forma budowy od podstaw da mi więcej frajdy.
Jak to jest z tym czasem ?
Re: Zgrzewarka Punktowa Do Ogniw
Witaj Toretto,
Opóźnienie jakie może być będzie zależne ile trzeba czekać na pojawienie się przejścia przez zero. Potem odmierzam czas do pojawieniu się szczytu sinusoidy. Włączam trafo i dostaje pełną moc praktycznie od razu. Nie mierzyłem ani się nie zastanawiałem jakie jest opóźnienie od pojawienia się napięcia na uzwojeniu wtórnym, do pojawienia się napięcia na uzwojeniu wtórnym. Po prostu działa, i zgrzewa powtarzalnie i to mi wystarcza.
Jeśli chodzi o czas od pojawienia się stanu na pinie mikrokontrolera -> optotriak -> triak - musiałbyś sprawdzić noty katalogowe zastosowanych elementów.
Jeśli oscyloskop pokazywał mi wyzwolenie zawsze w tym samym miejscu, to zapewne ten czas mierzony był w nano sekundach - czyli pomijalnie mały.
Co do użycia funkcji milis - możesz mieć problemy z uzyskaniem dokładności. Zapewne jest to najzwyklejsza pętla, a nie wykorzystanie timera i przerwań.
Co do obsługi wyświetlacza TFT - zapewne kolorowy - będziesz musiał dobrze poukładać kiedy ma wyświetlać dane. Na pewno nie w chwili gdy będziesz obsługiwał przerwanie.
Życzę powodzenia w budowie.
Opóźnienie jakie może być będzie zależne ile trzeba czekać na pojawienie się przejścia przez zero. Potem odmierzam czas do pojawieniu się szczytu sinusoidy. Włączam trafo i dostaje pełną moc praktycznie od razu. Nie mierzyłem ani się nie zastanawiałem jakie jest opóźnienie od pojawienia się napięcia na uzwojeniu wtórnym, do pojawienia się napięcia na uzwojeniu wtórnym. Po prostu działa, i zgrzewa powtarzalnie i to mi wystarcza.
Jeśli chodzi o czas od pojawienia się stanu na pinie mikrokontrolera -> optotriak -> triak - musiałbyś sprawdzić noty katalogowe zastosowanych elementów.
Jeśli oscyloskop pokazywał mi wyzwolenie zawsze w tym samym miejscu, to zapewne ten czas mierzony był w nano sekundach - czyli pomijalnie mały.
Co do użycia funkcji milis - możesz mieć problemy z uzyskaniem dokładności. Zapewne jest to najzwyklejsza pętla, a nie wykorzystanie timera i przerwań.
Co do obsługi wyświetlacza TFT - zapewne kolorowy - będziesz musiał dobrze poukładać kiedy ma wyświetlać dane. Na pewno nie w chwili gdy będziesz obsługiwał przerwanie.
Życzę powodzenia w budowie.
Aparatura: Taranis 9XD + pulpit
Modele: MPX Easy Glider 4; dronik 5" na ramie KHXC5 GEPRC
Modele: MPX Easy Glider 4; dronik 5" na ramie KHXC5 GEPRC
Re: Zgrzewarka Punktowa Do Ogniw
Bardzo mnie cieszy fakt, że Ty już wykonałeś taki test bo planuję użyć identycznych elementów (optotriak, triak). Pamiętasz może jakiego trafo używasz ?Avatar pisze:Jeśli chodzi o czas od pojawienia się stanu na pinie mikrokontrolera -> optotriak -> triak - musiałbyś sprawdzić noty katalogowe zastosowanych elementów.
Jeśli oscyloskop pokazywał mi wyzwolenie zawsze w tym samym miejscu, to zapewne ten czas mierzony był w nano sekundach - czyli pomijalnie mały.
Funkcja millis() odlicza czas jaki upłynął od wystartowania programu i sterowana jest przerwaniami. Jest jeszcze funkcja micros() która mierzy ten czas w μs z dokładnością 4μs i w takim projekcie jest to chyba wystarczająco dokładnie.Avatar pisze:Co do użycia funkcji milis - możesz mieć problemy z uzyskaniem dokładności. Zapewne jest to najzwyklejsza pętla, a nie wykorzystanie timera i przerwań.
Oczywiście od rozpoczęcia zgrzewu do zakończenia go żadne operacje z wyświetlaczem nie będą wykonywane. Wyświetlacz będzie martwy na czas zgrzewu gdzie przy liionach to będzie 20-50ms więc wydaje mi się, że w zupełności akceptowalnie.Avatar pisze:Co do obsługi wyświetlacza TFT - zapewne kolorowy - będziesz musiał dobrze poukładać kiedy ma wyświetlać dane. Na pewno nie w chwili gdy będziesz obsługiwał przerwanie.
Dzięki za odpowiedź :)
Re: Zgrzewarka Punktowa Do Ogniw
A jakie optotriaki stosujecie do sterowania ? Gotowe SSR czy zestaw triak+optotriak ?
Chyba wszystkie SSR i większość optortiaków ma wyzwalanie w zerze, tak więc włączenie sterowania w szczycie sinusoidy powoduje że optotriak załączy się dopiero w najbliższym "0" czyli po 5 milisekundach. Z tego samego powodu nie jest możliwe uzyskanie czasu zgrzewu poniżej 10ms (a i to jest niezdrowe bo 10ms to płówka sinusoidy), a czas zgrzewu jest wielokrotnością 10ms. Takie są zasady działania triaka i optotriaka. Wszelkie wydumane sterowniki umożliwiające regulację z dokładnością co do milisekundy to mrzonka i ściema.
A stosowanie triaków bez detekcji zera to proszenie się o silne zakłócenia i niebezpieczeństwo "wybijania" zabezpieczeń nadprądowych w instalacji.
Chyba wszystkie SSR i większość optortiaków ma wyzwalanie w zerze, tak więc włączenie sterowania w szczycie sinusoidy powoduje że optotriak załączy się dopiero w najbliższym "0" czyli po 5 milisekundach. Z tego samego powodu nie jest możliwe uzyskanie czasu zgrzewu poniżej 10ms (a i to jest niezdrowe bo 10ms to płówka sinusoidy), a czas zgrzewu jest wielokrotnością 10ms. Takie są zasady działania triaka i optotriaka. Wszelkie wydumane sterowniki umożliwiające regulację z dokładnością co do milisekundy to mrzonka i ściema.
A stosowanie triaków bez detekcji zera to proszenie się o silne zakłócenia i niebezpieczeństwo "wybijania" zabezpieczeń nadprądowych w instalacji.
Pzdr. -----MIŚ-----
Re: Zgrzewarka Punktowa Do Ogniw
Dlaczego twierdzisz, że się nie da?
Na schemacie Avatara jest transoptor, który wykrywa zero, więc powienien umożliwić precyzyjne odliczanie czasu bo wiemy kiedy triac się załaczył, a sterowanie jest klasycznie triac + drugi transoptor.
Na schemacie Avatara jest transoptor, który wykrywa zero, więc powienien umożliwić precyzyjne odliczanie czasu bo wiemy kiedy triac się załaczył, a sterowanie jest klasycznie triac + drugi transoptor.
samolot max 4579/1293 analog, DJI do końca zasięgu :)
coper max 1729(na 5.8)
coper max 1729(na 5.8)