Denne veiledningen vil hjelpe deg med å forstå kontrollene til en børsteløs likestrømsmotorkontroller når den er paret med en Arduino og en lineær aktuator. Dette programmet kan brukes til å kontinuerlig forlenge og trekke tilbake slaget til en aktuator.
Før vi begynner, la oss gå gjennom komponentene vi skal bruke i denne veiledningen:
- Arduino Mega (Arduino Uno kan også brukes).
- LC-241.
- PA-14 med børsteløs motor.
- PS-13-12 strømforsyning.
- Jumperledninger.
Den lineære aktuatoren har to sett med ledninger som kommer ut av den, ett sett er til motoren og det andre settet er til grensebryterne. Skjematisk tegning i figuren ovenfor viser hvordan du kobler komponentene sammen.
PIN-KODE FOR OPPSETT
int out_lim = 45; // ytre grensebryterpinne
int in_lim = 53; // indre grensebryterpinne
int run_f = 25; // kjøre-pin på kontrolleren
int run_r = 30; // reversert pin på kontrolleren
Denne delen av koden tar seg av initialiseringen av pinner som skal brukes til å motta og sende data. Alle digitale pinner ble brukt i dette tilfellet, men analoge pinner kan også brukes.
OPPSETT SLØYFEKODE
void oppsett() {
Serial.begin(9600); // initialiserer seriell kommunikasjon med 9600 bits per sekund
pinMode(out_lim, INPUT_PULLUP); // konfigurerer pin 45 som inngangspinn
pinMode(in_lim, INPUT_PULLUP); // konfigurerer pin 53 som inngangspinn
pinMode(run_f, OUTPUT); // konfigurerer pin 25 som utgangspin
pinMode(run_r, OUTPUT); // konfigurerer pin 30 som utgangspin
retract(); // trekker tilbake streken ved oppstart
forsinkelse(500);
}
«Oppsettsløyfen» konfigurerer hvilke pinner som skal brukes til utgang og hvilke som skal brukes til inngang. Som det fremgår av koden, vil pinner koblet til grensebrytere brukes til å lese grensebrytertilstander, og pinner koblet til «RUN» og «REV» på LC-241 vil bli brukt til å skrive til den. I utgangspunktet kjører koden også en tilbaketrekkingsfunksjon for å trekke seg helt inn før start.
FUNKSJONSDEFINISJONER KODE
void extend() // denne funksjonen gjør at motoren kan kjøre
{
digitalWrite(run_f, LAV);
digitalWrite(run_r, HØY);
}
void retract() // denne funksjonen reverserer motorens retning
{
digitalWrite(run_f, LAV);
digitalWrite(run_r, LAV);
}
void run_stop() // denne funksjonen deaktiverer motoren
{
digitalWrite(run_f, HØY);
digitalWrite(run_r, HØY);
}
Denne delen forklarer funksjonene som brukes til å kontrollere motorens kraft og retning. Vi aktiverer eller deaktiverer motoren ved å skrive «0» eller «1» til «RUN»-pinnen og deretter de samme kommandoene til «REV»-pinnen for å reversere motorens retning.
HOVEDSLØYFEKODE
Ugyldig løkke() {
int out_lim_state = digitalRead(out_lim); // leser grensebryterne og lagrer verdien
int in_lim_state = digitalRead(in_lim);
Serial.print("verdi for ytre grensebryter"), Serial.println(out_lim_state); // 0 -> grensebryteren er trykket inn
Serial.print("indre grensebryterverdi"), Serial.println(in_lim_state); // 1 -> grensebryteren er ikke trykket inn
hvis (out_lim_state == 0 && in_lim_state == 1) // hvis den ytre grensebryteren er trykket inn og den indre ikke er det (helt utstrakt)
{
retract(); // trekk tilbake streken
}
ellers hvis (out_lim_state == 1 && in_lim_state == 0) // hvis den indre grensebryteren er trykket inn og den ytre ikke er det (trukket helt inn)
{
extend(); // forleng streken
}
"Loop"-sløyfen leser i utgangspunktet bare inngangene fra grensebryterne for å sjekke om bryterne er trykket inn eller ikke, og deretter endrer den bare motorens retning basert på det.
De fleste lineære aktuatorene på markedet leveres med en børstet likestrømsmotor, og den tilgjengelige driftssyklusen med denne motoren gjør det dermed noe umulig å kjøre enheten kontinuerlig. Hos Progressive Automations gir vi kundene våre friheten til å velge en børsteløs likestrømsmotor for vår PA-14-modell, noe som gir dem enda flere alternativer for prosjektene sine.