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:
- Arduino Mega (uporabite lahko tudi Arduino Uno).
- LC-241.
- PA-14 z brezkrtačnim Motorjem.
- Napajalnik PS-13-12.
- Povezovalne žice (jumperji).
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.