13 842 läst · 56 svar
14k läst
56 svar
Projekttråd: Uppgradering av Luna/Migatronic 180x
Allvetare
· Västra götaland
· 8 916 inlägg
Jag har också noterat ett visst blinkande på den gröna lysdioden, inte av pwm-styrningen, utan snarare som om Arduinon stannar upp och tänker nån millisekund.. det blev lite bättre när jag tog bort serial monitor också... 🤔
Edit: plockade bort raden som sätter pwm-pin LOW, vilket innebär att den lyser hela tiden.. men blinkandet försvann, och "pwm-effekten" blev jäma och fin.. kan det vara så att man behöver en "else"-sats som sätter pwm-pin LOW om knappen inte är intryckt kanske....
Edit: plockade bort raden som sätter pwm-pin LOW, vilket innebär att den lyser hela tiden.. men blinkandet försvann, och "pwm-effekten" blev jäma och fin.. kan det vara så att man behöver en "else"-sats som sätter pwm-pin LOW om knappen inte är intryckt kanske....
Redigerat:
Ja, det är "fel" sätt att lösa det problemet och det är det som orsakar blinket.Dan_Johansson skrev:
Det du måste göra är att låta programmet reagera både på nedtryckt och uppsläppt knapp.
Naivt:
loop {
...
if (buttonValue == HIGH) {
// Knappen är nedtryckt
digitalWrite(13, HIGH);
...
} else {
// Knappen är uppsläppt
digitalWrite(13, LOW);
...
}
}
Det första potentiella problemet med att göra så är att villkoret reagerar på knappens tillstånd, inte förändring av knappens tillstånd. Så ovanstående kod kommer om och om igen exekvera instruktionerna för nedtryckt alternativt uppsläppt knapp. I det triviala fallet spelar det ingen roll, men ibland behöver du reagera på händelsen att knappen trycks ned eller släpps upp snarare än dess tillstånd.
Du måste då införa en variabel som håller reda på senast kända tillstånd:
bool buttonPressed = false;
loop {
...
if (!buttonPressed && buttonValue == HIGH) {
// Knappen trycktes ner
buttonPressed = true;
digitalWrite(13, HIGH);
...
} else if (buttonPressed && buttonValue == LOW {
// Knappen släpptes upp
buttonPressed = false;
digitalWrite(13, LOW);
...
}
}
Det andra problemed är nu att du troligen får kontaktstuds om knappen är en fysisk tryckknapp.
Vilket innebär att när knappen trycks ner eller släpps upp får du en serie snabba växlingar mellan nedtryckt och uppsläppt tillstånd.
Detta är lite knepigare att hantera, och vill man hantera det "rätt" får man starta en timer vid tillståndsförändring och sedan med hjälp av timern undvika att kolla efter nya tillståndsförändringar under några millisekunder. Enligt principen (ej fungerande kod):
bool buttonPressed = false;
loop {
...
if (debounceTimerIsNotActive()) {
if (!buttonPressed && buttonValue == HIGH) {
// Knappen trycktes ner
buttonPressed = true;
startDebounceTimer();
digitalWrite(13, HIGH);
...
} else if (buttonPressed && buttonValue == LOW {
// Knappen släpptes upp
buttonPressed = false;
startDebounceTimer();
digitalWrite(13, LOW);
...
}
}
}
Det är just detta som är det krångliga med att bygga styrsystem med ett sekvensiellt exekverande program.
Allvetare
· Västra götaland
· 8 916 inlägg
Här fanns det en komplett kod för något liknande ...
https://github.com/TheAndyRoid/mig-controller/blob/master/MIGControl.ino
"Tyvärr" med en massa onödigt, men det går väl att sno det bästa kanske..
https://github.com/TheAndyRoid/mig-controller/blob/master/MIGControl.ino
"Tyvärr" med en massa onödigt, men det går väl att sno det bästa kanske..
Körde lite på skoj med en matarmekanism idag. Du måste rimligtvis kortsluta motorn när du släpper triggern. Vinkelväxeln är ju alltid lite självhämmande men du kommer att rulla ut 10cm tråd om du inte kortsluter motorn.
Allvetare
· Västra götaland
· 8 916 inlägg
Den funkar helt enkelt bättre än andra som jag har testat, ett par Esab, Einhell, mfl sen när man kör Migatronicen igen så får man ett brett smil då det bara flyter på. Stabil trådmatning är nog det man känner av mest, min far köpte en ny Esab 3-fas Mig/Mag men den är inte lika trevlig att svetsa med, well den var ny för typ 20 år sedan..F fsn skrev:
Redigerat:
Jag har svetsat mycket med ESAB LKA 180 men jag kan inte direkt säga att den funkat jättebra för mig. Däremot C340 Pro är bra. Personligen så tycker jag att matarverk skall vara fyrhjuliga, då kan man hålla trycken nere och fortfarande ha bra driv utan deformerad och vass tråd. Är det tvåhjuligt så skall det vara drift på båda. Men man behöver verkligen en motor så det trycker på upp i fart snabbt. Svetsat rätt mycket med små 1-fas invertrar och det finns undantag men det är vanligt med små kinesiska matarverk med ett drivande 30mm hjul och ett kullager som övre tryck, morrande växellåda och en liten högvarvande motor med lite för låg effekt.J Jockebanan skrev:Den funkar helt enkelt bättre än andra som jag har testat, ett par Esab, Einhell, mfl sen när man kör Migatronicen igen så får man ett brett smil då det bara flyter på. Stabil trådmatning är nog det man känner av mest, min far köpte en ny Esab 3-fas Mig/Mag men den är inte lika trevlig att svetsa med, well den var ny för typ 20 år sedan..
Allvetare
· Västra götaland
· 8 916 inlägg
Vattenkylning av munstycket?
Allvetare
· Västra götaland
· 8 916 inlägg
Japp, fast till TIG-svetsen.. kanske inget som behövs för det jag svetsar nu, men nån gång ska det ju stå en 300 amp ac/dc-tig i garaget....
Liknande trådar
-
Baga uppgraderingskit
Vatten & Avlopp -
Manual/beskrivning för Lunas träsvarv tillbehör kopieringsmodul
Verktyg, Maskiner & Fordon -
Vilka varvtal svarv Luna SP1000?
Verktyg, Maskiner & Fordon -
Behöver instruktionsbok till en Luna Woody RBS 300
Teknik -
Luna L38 kedja för frammatning
Verktyg, Maskiner & Fordon