Elektronický regulátor otáček minisoustruhu
Je to sice trochu OT, ale snad to nekomu pomuze. V srpnu jsem resil predelani rizeni pracky, ktere jsem potreboval predelat na praci a machaci masinku do vyroby a potreboval jsem si udelat vlastni programy coz s originalnim rizenim moc neslo.
Takze nakonec to dopadlo tak, ze jsem vyrval veskerou puvodni elektroniku, zavrhnul veskere zde zminovane drivery a vzal pouze arduino, triac, optocleny, par relatek a nejke dalsi dorbne smeti ze supliku a za dva vikendy jsem poskladal kompletni rizeni pracky vcetne snimani otacek motoru, obou snimacu vysky hladiny, vsech cerpadel, ventilu a i zamku dveri. Dokonce se podarilo pouzit vsechna puvodni tlacitka a prepinac programu a podarilo se vymenit puvodni LCD s neznamym radicem za 2x16 LCD do pozice puvodniho LCD. Tazke to dokonce porad vypada jako pracka.
Rizeni motoru i programu jsem nakonec udelat ciste na Arduinu tak, ze detekuji pres optoclen pruchod nulou s prerusenim a pomoci zpozdeni pres preruseni casovace spinam triac. To funguje az prekvapive dobre i do maximalnich otcacek (24000) a moc to neomezuje dalsi program. Nezaznamenal jsem s tim vubec zadne problemy. Otacky motoru ridim pomoci PID. Nejsou zadne problemy se stabilitou otacek i pri velmi nizkych otackach a pomerne velkem dynamickem zatizeni kdy je v bubnu kapalina a pomerne tezke plastove obrobky. Odstredovani s postupnym vyvazenim obsahu bubnu okoukane z bezne pracky take funguje dobre.
Nabizi se tedy moznost pouzivat arduino ci samotny AVR na velmi levne rizeni univerzalnich motoru vcetne PID regulace otacek. Vyhodou jsou stabilni nastavene otacky i pri znacne dynamicke zatezi. Parametry PID jdou doladit dle dynamickych vlastnosti stroje, takze se s tim da pomerne hezky vyhrat.
PS
Pavkovi musim podekovat za konzultaci, ktera nakonec vyresila pocatecni problem s nestabilitou chodu motoru kdy jsem nevedel jestli je chyba v mem hw, sw nebo v motoru. Problem byl nakonec zcela prosty a to zaneseny komutator prachem z uhliku. Stacilo vycistit, proskrabnout drazky a vse slape jak hodinky.
Takze nakonec to dopadlo tak, ze jsem vyrval veskerou puvodni elektroniku, zavrhnul veskere zde zminovane drivery a vzal pouze arduino, triac, optocleny, par relatek a nejke dalsi dorbne smeti ze supliku a za dva vikendy jsem poskladal kompletni rizeni pracky vcetne snimani otacek motoru, obou snimacu vysky hladiny, vsech cerpadel, ventilu a i zamku dveri. Dokonce se podarilo pouzit vsechna puvodni tlacitka a prepinac programu a podarilo se vymenit puvodni LCD s neznamym radicem za 2x16 LCD do pozice puvodniho LCD. Tazke to dokonce porad vypada jako pracka.
Rizeni motoru i programu jsem nakonec udelat ciste na Arduinu tak, ze detekuji pres optoclen pruchod nulou s prerusenim a pomoci zpozdeni pres preruseni casovace spinam triac. To funguje az prekvapive dobre i do maximalnich otcacek (24000) a moc to neomezuje dalsi program. Nezaznamenal jsem s tim vubec zadne problemy. Otacky motoru ridim pomoci PID. Nejsou zadne problemy se stabilitou otacek i pri velmi nizkych otackach a pomerne velkem dynamickem zatizeni kdy je v bubnu kapalina a pomerne tezke plastove obrobky. Odstredovani s postupnym vyvazenim obsahu bubnu okoukane z bezne pracky take funguje dobre.
Nabizi se tedy moznost pouzivat arduino ci samotny AVR na velmi levne rizeni univerzalnich motoru vcetne PID regulace otacek. Vyhodou jsou stabilni nastavene otacky i pri znacne dynamicke zatezi. Parametry PID jdou doladit dle dynamickych vlastnosti stroje, takze se s tim da pomerne hezky vyhrat.
PS
Pavkovi musim podekovat za konzultaci, ktera nakonec vyresila pocatecni problem s nestabilitou chodu motoru kdy jsem nevedel jestli je chyba v mem hw, sw nebo v motoru. Problem byl nakonec zcela prosty a to zaneseny komutator prachem z uhliku. Stacilo vycistit, proskrabnout drazky a vse slape jak hodinky.
balast jsem vyhodil aby to bylo prehledne. kod obsahuje pouze rizeni motoru s triakovym regulatorem a s PID regulaci otacek. program by mel byt neblokujici!
princip zapojeni viz. na pinu motorFREQPin je mereni otacek. schema ale nemam namalovane, delal jsem to cele z hlavy. je tam na vstupu jednoduchy zesilovac s bipolarnimi tranzistory a Schmittův KO na osetreni signalu.

princip zapojeni viz. na pinu motorFREQPin je mereni otacek. schema ale nemam namalovane, delal jsem to cele z hlavy. je tam na vstupu jednoduchy zesilovac s bipolarnimi tranzistory a Schmittův KO na osetreni signalu.

Kód: Vybrat vše
...
volatile double consKp = 0.025, consKi = 0.025, consKd = 0.00025; // doladit dle dynamickych vlastnosti stroje
PID motorPID(&motorRPM, &motorPWR, &setMotorRPMtmp, consKp, consKi, consKd, DIRECT);
...
void setup()
{
...
attachInterrupt(digitalPinToInterrupt(motorFREQPin), motorFREQ, RISING); // FALLING RISING
attachInterrupt(digitalPinToInterrupt(zerroCrossingPin), zerroCrossing, FALLING); // FALLING RISING
motorPID.SetMode(AUTOMATIC);
motorPID.SetOutputLimits(0, 255);
motorPID.SetSampleTime(100); // 200ms default
Timer1.initialize(motorPeriodTimer);
...
}
void loop() {
motorRPM = 0; // dle motoru - 0-24000
// obsluha motoru
noInterrupts();
motorPID.SetTunings(consKp, consKi, consKd);
motorPID.Compute();
interrupts();
}
void motorFREQ() {
noInterrupts();
motorLastFREQtime = micros();
dTime = motorLastFREQtime - motorTime;
motorTime = motorTime + dTime;
motorRPMtmp = ((1000000 / dTime) * 60) / 8;
interrupts();
}
void zerroCrossing() {
noInterrupts();
if (motorPWR == 0) {
digitalWrite(motorACPin, LOW);
motorState = B00000000;
}
else if (motorPWR == 255) {
digitalWrite(motorACPin, HIGH);
motorState = B00000000;
} else {
int pwr = ( 8000 - ((8000 / 255) * motorPWR) );
Timer1.attachInterrupt(motorTickPWR, pwr);
motorState = B00000001;
}
interrupts();
}
void motorTickPWR ()
{
noInterrupts();
Timer1.stop();
if (motorState == B00000001) {
digitalWrite(motorACPin, HIGH);
int i = 100;
while (i--) {
__asm__("nop\n\t");
}
digitalWrite(motorACPin, LOW);
}
interrupts();
}
- Zdenek Valter
- Příspěvky: 5400
- Registrován: 9. 1. 2009, 5:16
- Bydliště: Ústí n. L.
Zdařilo se s překladem?atlan píše:DAkujeme
Hobbík - obráběč i 3D tiskař začátečník - strojní park je konečně instalován
Panove je neco ke koupeni jako tohle https://exit.srovnanicen.cz/produkt/202 ... =1&o=1&a=1" onclick="window.open(this.href);return false;
mam motor z pracky. A elektronice moc nerozumim a kdyz neco delam hodne mi toho shori .
Rad bych koupil nejakej regulator na motor z pracky.
Dik Kakan
mam motor z pracky. A elektronice moc nerozumim a kdyz neco delam hodne mi toho shori .

Rad bych koupil nejakej regulator na motor z pracky.
Dik Kakan