Fotografie ovládací skříně uvnitř

Část II: Jak monitorovat zpětnou vazbu zatížení lineárního aktuátoru?

Guest Writer
Guest Writer
PA Engineer

Vítejte u druhé části našeho průvodce o tom, jak monitorovat zpětnou vazbu zátěže lineární aktuátorV Část I. Probrali jsme proces zapojení a základní kód potřebný pro tento příklad. V dnešním průvodci si podrobně probereme různé části kódu a také některé způsoby jeho úpravy. Nejprve se podíváme na sekci kódu latchButtons().

První věc, kterou chceme vidět, je doba odskoku tlačítka, takže když je stisknuto levé tlačítko, je třeba vypočítat dobu od předchozího stisknutí tlačítka. K tomu budeme muset použít poslední hodnotu, která byla uložena v kódu, a poté pomocí funkce millis() zkontrolovat čas. Pokud je čas větší než doba odskoku, funkce zkontroluje, zda je aktuátor schopen se vysunout. Jakmile jsou splněny obě podmínky, funkce bude moci pokračovat.

pokud (digitalRead(buttonLeft)==LOW)//vlevo je dopředu

{
currentTimedebounce = millis() - lastButtonpress;// kontrola času od posledního stisknutí
pokud (currentTimedebounce> debounceTime && dontExtend == false)//jakmile se aktivuje dontExtend, ignorujte všechna stisknutí klávesy vpřed
{
leftlatch = !leftlatch;// pokud se motor pohybuje, zastaví, pokud stojí, začne se pohybovat
firstRun = true;// nastaví příznak firstRun pro ignorování aktuálního vrcholu
fullyRetracted = false; // jakmile se pohnete dopředu, nejste zcela zataženi
lastButtonpress = millis();//uložení času posledního stisknutí tlačítka
návrat;
}//konec pokud
}//konec tlačítka btnLEFT


Další částí je smyčka ve funkci motorForward(), konkrétně dvě zpoždění. Smyčka začíná aktivací regulátoru motoru, který spustí motor lineárního aktuátoru. Pokud je to první část smyčky, bude zpoždění větší. Zpoždění ignoruje proudovou špičku, která se objeví při aktivaci motoru. Ujistěte se, že zpoždění nenastavujete příliš velké, protože po spuštění nad ním nebudete mít žádnou kontrolu. Po spuštění motoru se sekce getFeedback() použije ke kontrole proudového senzoru.

zatímco (dontExtend == false && leftlatch == HIGH) {

digitalWrite(PovolitPin, HIGH);
analogWrite(PWMPinA, rychlost);
analogWrite(PWMPinB, 0);//pohyb motoru
pokud (firstRun == true) delay(firstfeedbacktimedelay);
else delay(feedbacktimedelay); //malé zpoždění pro dosažení rychlosti
získatZpětnouVezmětu();
firstRun = false;
západkaTlačítka();
}//konec while

Photo of a control box inside

Dále si projdeme části rutiny get feedback(), která začíná čtením analogového pinu připojeného k senzoru. Začíná kontrolou, zda je motor na svých limitech, a kód zná své limity, když je proud roven 0.

Unfortunately, there can be a false reading sometimes so it's important to set a counter. This counter code has to count up to the hitLimitsmax before the motor stops and if it counts less then that it will reset.

 

pokud (CRaw == 0 && hitLimits < hitLimitsmax) hitLimits = hitLimits + 1; 
else hitLimits = 0; // kontrola, zda je motor na limitech a zda proud přestal protékat


Poté následují limity zásahů. Když lineární aktuátor Motor se pohybuje dopředu a po dosažení limitu vypne pravou západku. Pokud se motor pohybuje dozadu, vypne levou západku. Níže uvedený kód zobrazuje pouze pravou západku, ale kód pro levou západku je stejný.

pokud (hitLimits == hitLimitsmax && rightlatch == HIGH) {

pravá západka = NÍZKÁ;
ZásahLimits = 0;
}//konec pokud

Je zkontrolován proudový limit a je definován maximální limit. Pokud je limit překročen, levá západka se vypne a motor se již nebude vysouvat. Pro spuštění vysouvání je nutné motor obrátit.
pokud (CRaw> maxAmps) {

dontExtend = true;
leftlatch = LOW; //zastaví se, pokud je zpětná vazba vyšší než maximum
}//konec pokud

To nás přivádí ke konci části II. monitorování zpětné vazby zátěže lineární aktuátor. We went into detail on specific sections of the code this time and explained how they work. If you'd like to order any units we used in this example you can order online or kontaktujte nás objednat telefonicky. Pokud máte jakékoli dotazy nebo obavy týkající se našich produktů, jsme vždy připraveni vám pomoci.