Dieses Tutorial hilft, die Steuerungen eines bürstenlosen DC-Motorcontrollers zu verstehen, wenn er mit einem Arduino und einem Linearantrieb kombiniert wird. Dieses Programm kann verwendet werden, um den Hublänge eines Aktuators kontinuierlich zu verlängern und zu verkürzen.
Bevor wir beginnen, lassen Sie uns die Komponenten durchgehen, die wir in diesem Tutorial verwenden werden:
- Arduino Mega (auch Arduino Uno kann verwendet werden).
- LC-241.
- PA-14 mit einem bürstenlosen Motor.
- PS-13-12 Netzteil.
- Jumper-Kabel.
Der Linearantrieb hat 2 Kabelsätze, die herauskommen, ein Satz ist für den Motor und der andere Satz ist für die Endschalter. Das Schema in der obigen Abbildung zeigt, wie die Komponenten miteinander verbunden werden.
PIN-SETUP-CODE
int out_lim = 45; // Pin des äußeren Endschalters
int in_lim = 53; // Pin des inneren Endschalters
int run_f = 25; // Lauf-Pin am Controller
int run_r = 30; // Rückwärts-Pin am Controller
Dieser Teil des Codes kümmert sich um die Initialisierung der Pins, die zum Empfangen und Senden von Daten verwendet werden. In diesem Fall wurden alle digitalen Pins verwendet, aber auch analoge können verwendet werden.
SETUP-LOOP-CODE
void setup() {
Serial.begin(9600); // initialisiert die serielle Kommunikation mit 9600 Bit pro Sekunde
pinMode(out_lim, INPUT_PULLUP); // konfiguriert Pin 45 als Eingabepin
pinMode(in_lim, INPUT_PULLUP); // konfiguriert Pin 53 als Eingabepin
pinMode(run_f, OUTPUT); // konfiguriert Pin 25 als Ausgabepin
pinMode(run_r, OUTPUT); // konfiguriert Pin 30 als Ausgabepin
retract(); // zieht den Hublänge beim Start zurück
delay(500);
}
Die „Setup“-Schleife konfiguriert, welche Pins für die Ausgabe und welche für die Eingabe verwendet werden. Wie im Code zu sehen ist, werden Pins, die mit Endschaltern verbunden sind, verwendet, um die Zustände der Endschalter zu lesen, und Pins, die mit „RUN“ und „REV“ am LC-241 verbunden sind, werden verwendet, um an ihn zu schreiben. Zunächst führt der Code auch eine Rückzugsfunktion aus, um vollständig zurückzuziehen, bevor er startet.
FUNKTIONSDEFINITIONEN-CODE
void extend() // diese Funktion ermöglicht es dem Motor zu laufen
{
digitalWrite(run_f, LOW);
digitalWrite(run_r, HIGH);
}
void retract() // diese Funktion kehrt die Richtung des Motors um
{
digitalWrite(run_f, LOW);
digitalWrite(run_r, LOW);
}
void run_stop() // diese Funktion deaktiviert den Motor
{
digitalWrite(run_f, HIGH);
digitalWrite(run_r, HIGH);
}
Dieser Teil erklärt die Funktionen, die verwendet werden, um die Motorleistung und -richtung zu steuern. Wir werden den Motor aktivieren oder deaktivieren, indem wir „0“ oder „1“ an den „RUN“-Pin schreiben und dann die gleichen Befehle an den „REV“-Pin, um die Richtung des Motors umzukehren.
HAUPTSCHLEIFENCODE
Void loop() {
int out_lim_state = digitalRead(out_lim); // liest die Endschalter und speichert ihren Wert
int in_lim_state = digitalRead(in_lim);
Serial.print("Wert des äußeren Endschalters "), Serial.println(out_lim_state); // 0 -> Endschalter ist gedrückt
Serial.print("Wert des inneren Endschalters "), Serial.println(in_lim_state); // 1 -> Endschalter ist nicht gedrückt
if (out_lim_state == 0 && in_lim_state == 1) // wenn der äußere Endschalter gedrückt ist und der innere nicht (vollständig ausgefahren)
{
retract(); // zieht den Hublänge zurück
}
else if (out_lim_state == 1 && in_lim_state == 0) // wenn der innere Endschalter gedrückt ist und der äußere nicht (vollständig zurückgezogen)
{
extend(); // verlängert den Hublänge
}
Die „Loop“-Schleife liest im Grunde die Eingaben von den Endschaltern, um zu überprüfen, ob die Schalter gedrückt sind oder nicht, und ändert dann basierend darauf einfach die Richtung des Motors.
Die meisten der auf dem Markt erhältlichen Linearantriebe sind mit einem bürstenbehafteten DC-Motor ausgestattet, sodass der verfügbare Arbeitszyklus mit diesem Motor es etwas unmöglich macht, die Einheit kontinuierlich zu betreiben. Bei Progressive Automations geben wir unseren Kunden die Freiheit, sich für einen bürstenlosen DC-Motor für unser Modell PA-14 zu entscheiden, was ihnen noch mehr Optionen für ihre Projekte bietet.