Üdvözöljük útmutatónk II. részében, amely bemutatja, hogyan figyelheti a terhelés-visszacsatolást egy lineáris aktuátor. Be I. rész Áttekintettük a bekötési folyamatot és a példához szükséges alapvető kódolást. A mai útmutatóban részletesen áttekintjük a kódolás különböző részeit, valamint néhány szerkesztési módot. Először a kód latchButtons() szakaszát fogjuk megvizsgálni.
Az első dolog, amit látni szeretnénk, a gomb pattogás-csökkenése, tehát amikor a bal gombot megnyomjuk, ki kell számolnunk az előző gombnyomás óta eltelt időt. Ehhez a kódban utoljára tárolt értéket kell használnunk, majd a millis() függvénnyel ellenőriznünk kell az időt. Ha az idő nagyobb, mint a pattogás-csökkenési idő, a függvény ellenőrzi, hogy a működtető ki tud-e mozdulni. Ha mindkét feltétel teljesül, a függvény folytatni tudja a működését.
if (digitalRead(buttonLeft)==LOW)//balra van előre
{
currentTimedebounce = millis() - lastButtonpress;// az utolsó gombnyomás óta eltelt idő ellenőrzése
if (currentTimedebounce> debounceTime && dontExtend == false)//miután kikapcsoltad a dontExtend-et, hagyd figyelmen kívül az összes előre nyomógombot
{
leftlatch = !leftlatch;// ha a motor mozog, megáll, ha megállt, elindul
firstRun = true;// beállítja a firstRun jelzőt az aktuális csúcs figyelmen kívül hagyására
fullyRetracted = false; // ha előrelépsz, akkor nem húzódsz vissza teljesen
lastButtonpress = millis();//az utolsó gombnyomás időpontjának tárolása
visszatérés;
}//vége, ha
}//BALRA gomb vége
A következő szakasz a motorForward() függvényen belüli ciklus, konkrétan a két késleltetés. A ciklus a motorvezérlő bekapcsolásával indul, amely elindítja a lineáris aktuátor motorját. Ha ez az első a ciklusban, akkor nagyobb késleltetés lesz. A késleltetés figyelmen kívül hagyja az áramcsúcsot, amely a motor aktiválásakor jelentkezik. Ügyeljen arra, hogy ne állítsa túl nagyra a késleltetést, mert az indítás után nem lesz felette kontrollja. Amikor a motor elindul, a getFeedback() szakasz az áramérzékelő ellenőrzésére szolgál.
míg (dontExtend == false && leftlatch == HIGH) {
digitalWrite(EngedélyezPin, MAGAS);
analogWrite(PWMPinA, sebesség);
analogWrite(PWMPinB, 0);//motor mozgatása
ha (firstRun == true) késleltetés(firstfeedbacktimedelay);
else delay(feedbacktimedelay); //kis késleltetés a sebesség eléréséhez
getFeedback();
elsőFuttatás = false;
reteszGombok();
}//vége közben

Következőként áttekintjük a get feedback() rutin részeit, amely az érzékelőhöz csatlakozó analóg láb leolvasásával kezdődik. Azzal kezdődik, hogy ellenőrzi, hogy a motor a határain van-e, és a kód ismeri-e a határokat, amikor az áram 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.
ha (CRaw == 0 && találatiKorlátok < találatiKorlátokmax) találatiKorlátok = találatiKorlátok + 1;
egyébként hitLimits = 0; // ellenőrizzük, hogy a motor a határértékeken van-e, és az áram megszűnt-e
Ezután megszűnnek a találati limitek. Amikor a lineáris aktuátor Ha a motor előre mozog, és eléri a végállást, kikapcsolja a jobb oldali reteszt. Ha a motor hátra mozog, kikapcsolja a bal oldali reteszt. Az alábbi kód csak a jobb oldali reteszt mutatja, de a bal oldali retesz kódja ugyanaz.
ha (hitLimits == hitLimitsmax && rightlatch == MAGAS) {
jobb retesz = LOW;
találatiKorlátok = 0;
}//vége, ha
Az áramkorlát ellenőrzésre kerül, és a maximális határérték meghatározásra kerül. Ha a határérték túllépi, akkor a bal oldali retesz kikapcsol, és a motor nem nyúlik ki többé. A hosszabbító elindításához a motort meg kell fordítani.
ha (CRaw> maxAmper) {
dontExtend = true;
leftlatch = LOW; //megállás, ha a visszacsatolás meghaladja a maximumot
}//vége, ha
Ez elvezet minket a rész végéhez II. a terhelés-visszacsatolás monitorozásának lineáris 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 lépjen kapcsolatba velünk telefonon rendelhet. Ha bármilyen kérdése vagy aggálya merül fel termékeinkkel kapcsolatban, mindig készen állunk a segítségére.