Tento tutoriál vám pomůže pochopit ovládání bezkartáčového regulátoru stejnosměrného motoru ve spojení s Arduinem a lineárním aktuátorem. Tento program lze použít k plynulému vysouvání a zasouvání zdvihu aktuátoru.
Než začneme, pojďme si projít komponenty, které budeme v tomto tutoriálu používat:
- Arduino Mega (lze použít i Arduino Uno).
- LC-241.
- PA-14 s bezkartáčovým motorem.
- Napájecí zdroj PS-13-12.
- Startovací vodiče.
Z lineárního aktuátoru vycházejí 2 sady vodičů, jedna sada je pro motor a druhá sada pro koncové spínače. Schéma na obrázku výše ukazuje, jak zapojit jednotlivé komponenty dohromady.
KÓD PRO NASTAVENÍ PINU
int out_lim = 45; // pin vnějšího koncového spínače
int in_lim = 53; // vnitřní pin koncového spínače
int run_f = 25; // spuštění pinu na kontroleru
int run_r = 30; // obrácení pinu na kontroléru
Tato část kódu se stará o inicializaci pinů, které budou použity pro příjem a odesílání dat. V tomto případě byly použity všechny digitální piny, ale lze použít i analogové.
KÓD NASTAVENÍ SMYČKY
void setup() {
Serial.begin(9600); // inicializace sériové komunikace rychlostí 9600 bitů za sekundu
pinMode(out_lim, INPUT_PULLUP); // konfiguruje pin 45 jako vstupní pin
pinMode(in_lim, INPUT_PULLUP); // konfiguruje pin 53 jako vstupní pin
pinMode(run_f, OUTPUT); // konfiguruje pin 25 jako výstupní pin
pinMode(run_r, OUTPUT); // konfiguruje pin 30 jako výstupní pin
retract(); // zatáhne tah při spuštění
zpoždění(500);
}
Smyčka „setup“ konfiguruje, které piny budou použity pro výstup a které pro vstup. Jak je vidět v kódu, piny připojené k koncovým spínačům budou použity ke čtení stavů koncových spínačů a piny připojené k „RUN“ a „REV“ na LC-241 budou použity k zápisu do něj. Zpočátku kód také spustí funkci zasunutí, která zasune součástku úplně dovnitř před spuštěním.
KÓD DEFINICE FUNKCÍ
void extend() // tato funkce umožňuje spuštění motoru
{
digitalWrite(run_f, LOW);
digitalWrite(run_r, HIGH);
}
void retract() // tato funkce obrací směr otáčení motoru
{
digitalWrite(run_f, LOW);
digitalWrite(run_r, LOW);
}
void run_stop() // tato funkce deaktivuje motor
{
digitalWrite(run_f, HIGH);
digitalWrite(run_r, HIGH);
}
Tato část vysvětluje funkce používané k řízení výkonu a směru motoru. Motor budeme aktivovat nebo deaktivovat zapsáním „0“ nebo „1“ na pin „RUN“ a poté stejnými příkazy na pin „REV“ pro změnu směru otáčení motoru.
KÓD HLAVNÍ SMYČKY
Neplatná smyčka() {
int out_lim_state = digitalRead(out_lim); // načte koncové spínače a uloží jejich hodnotu
int in_lim_state = digitalRead(in_lim);
Serial.print("hodnota vnějšího koncového spínače"), Serial.println(out_lim_state); // 0 -> koncový spínač je stisknut
Serial.print("hodnota vnitřního koncového spínače"), Serial.println(in_lim_state); // 1 -> koncový spínač není stisknutý
if (out_lim_state == 0 && in_lim_state == 1) // pokud je stisknut vnější koncový spínač a vnitřní ne (vysunutý úplně)
{
retract(); // zasunutí tahu
}
else if (out_lim_state == 1 && in_lim_state == 0) // pokud je stisknut vnitřní koncový spínač a vnější ne (úplně zasunut)
{
extend(); // prodloužení tahu
}
Smyčka „smyčky“ v podstatě pouze čte vstupy z koncových spínačů, aby zkontrolovala, zda jsou spínače stisknuté, a na základě toho změní směr otáčení motoru.
Většina lineárních aktuátorů na trhu je dodávána s kartáčovým stejnosměrným motorem, takže pracovní cyklus tohoto motoru do jisté míry znemožňuje nepřetržitý provoz jednotky. Ve společnosti Progressive Automations dáváme našim zákazníkům možnost zvolit si pro náš model PA-14 bezkartáčový stejnosměrný motor, což jim dává ještě více možností pro jejich projekty.