Photo of a brushless DC motor controller when paired with an Arduino and a linear actuator

Neprenehoma raztezajte in uvlačite Hod Aktuatorja z brezkrtačnim enosmernim motorjem

Guninder Malhi
Guninder Malhi
PA Engineer

Ta vodič bo pomagal razumeti upravljanje krmilnika brezkrtačnega enosmernega Motorja, ko je združen z Arduinom in Linearnim aktuatorjem. Ta program lahko uporabite za neprekinjeno raztezanje in uvlačenje Hoda Aktuatorja.

Preden začnemo, preglejmo komponente, ki jih bomo uporabili v tem vodiču:

  1. Arduino Mega (uporabite lahko tudi Arduino Uno).
  2. LC-241.
  3. PA-14 z brezkrtačnim Motorjem.
  4. Napajalnik PS-13-12.
  5. Povezovalne žice (jumperji).

 Programiranje Arduina

Linearni aktuator ima dva snopa žic: en je za Motor, drugi pa za Končna stikala. Shema na zgornji sliki prikazuje, kako povezati komponente.

PIN SETUP CODE

int out_lim = 45; // pin zunanjega Končnega stikala

int in_lim = 53;  // pin notranjega Končnega stikala

int run_f = 25;  // pin RUN na krmilniku
int run_r = 30;  // pin REV na krmilniku

Ta del kode skrbi za inicializacijo pinov, ki bodo uporabljeni za sprejemanje in pošiljanje podatkov. V tem primeru so bili uporabljeni vsi digitalni pini, mogoče pa je uporabiti tudi analogne.

SETUP LOOP CODE

void setup() {

  Serial.begin(9600);  // inicializira serijsko komunikacijo pri 9600 bitih na sekundo
  pinMode(out_lim, INPUT_PULLUP); // konfigurira pin 45 kot vhodni pin
  pinMode(in_lim, INPUT_PULLUP); // konfigurira pin 53 kot vhodni pin
  pinMode(run_f, OUTPUT); // konfigurira pin 25 kot izhodni pin
  pinMode(run_r, OUTPUT); // konfigurira pin 30 kot izhodni pin

 

  retract(); // ob zagonu uvleče Hod

  delay(500);
  }


“setup” določi, kateri pini bodo uporabljeni za izhod in kateri za vhod. Kot je razvidno iz kode, se pini, povezani s Končnimi stikali, uporabljajo za branje stanj Končnih stikal, pini, povezani z “RUN” in “REV” na LC-241, pa za zapisovanje ukazov. Na začetku koda zažene tudi funkcijo uvleka, da se Hod pred začetkom popolnoma uvleče.

FUNCTION DEFINITIONS CODE

void extend() // ta funkcija omogoči zagon Motorja

{
 digitalWrite(run_f, LOW);
 digitalWrite(run_r, HIGH);

 }

void retract() // ta funkcija obrne smer Motorja
{
  digitalWrite(run_f, LOW);
  digitalWrite(run_r, LOW);
}

void run_stop() // ta funkcija onemogoči Motor
{
  digitalWrite(run_f, HIGH);
  digitalWrite(run_r, HIGH);
}


Ta del pojasni funkcije, ki se uporabljajo za nadzor moči in smeri Motorja. Motor bomo omogočili ali onemogočili z zapisom “0” ali “1” na pin “RUN”, nato pa enake ukaze na pin “REV”, da obrnemo smer Motorja.

MAIN LOOP CODE

Void loop() {

   int out_lim_state = digitalRead(out_lim);     // prebere Končna stikala in shrani njuno vrednost
  int in_lim_state = digitalRead(in_lim);

   Serial.print("vrednost zunanjega Končnega stikala "), Serial.println(out_lim_state); // 0 -> Končno stikalo je pritisnjeno
   Serial.print("vrednost notranjega Končnega stikala "), Serial.println(in_lim_state);  // 1 -> Končno stikalo ni pritisnjeno

  if (out_lim_state == 0 && in_lim_state == 1) // če je zunanje Končno stikalo pritisnjeno, notranje pa ne (popolnoma raztegnjeno)
   {
   retract(); // uvleče Hod
   }

   else if (out_lim_state == 1 && in_lim_state == 0) // če je notranje Končno stikalo pritisnjeno, zunanje pa ne (popolnoma uvlečeno)
  {
   extend(); // raztegne Hod
  }

 

“loop” zanka v bistvu samo bere vhode iz Končnih stikal, da preveri, ali so stikala pritisnjena ali ne, nato pa glede na to spremeni smer Motorja.

Večina Linearnih aktuatorjev na trgu je opremljena s krtačnim enosmernim Motorjem, zato razpoložljivi Delovni cikel pri takem Motorju praktično onemogoča neprekinjeno delovanje enote. Pri Progressive Automations strankam omogočamo izbiro brezkrtačnega enosmernega Motorja za naš model PA-14, kar jim daje še več možnosti za njihove projekte.