Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

High-Performance Arduino Bibliothek für DC-Motor-Steuerung

Komponenten und Zubehör

Arduino UNO × 1
NPN-Transistor (Allzweck) × 2
PNP-Transistor (Allzweck) × 2
Widerstand 1 kΩ × 2
1N4007 Diode (High Voltage/Current) × 4

Apps und Online-Dienste

Über dieses Projekt

High-Performance Arduino Bibliothek für DC-Motor-Steuerung
DC-Motor-Bibliothek – Übersicht der Funktionen

Hier wird eine Arduino-Bibliothek zur Steuerung von DC-Motoren vorgestellt. Sie bietet industrielle Motion-Control-Features mit 16 Funktionen für vielseitigste Steuerungsszenarien.

Funktionsumfang der Bibliothek

  1. Drehrichtung steuern (Vorwärts/Rückwärts)
  2. Geschwindigkeit regeln (0–100 %)
  3. Soft Start – Hochlauf von 0 % auf Sollwert in definierter Zeit
  4. Smooth Stop – Abbremsen von aktueller Geschwindigkeit auf 0 % in definierter Zeit
  5. Jog Control – Kurzer Impuls (Ruck) in eine Richtung
  6. DC-Brake – Sofortiger Notstopp (erfordert Hardwareseitig Dynamic Braking Resistances & passende Treiberstufe!)

Die ersten 8 Funktionen bieten Basis-Steuerung ohne Geschwindigkeitsregelung (nur digital). Für Geschwindigkeitsfunktionen (9–16) muss der Motor mit DC_Motor(pin1, pin2, 1) initialisiert werden (PWM-Pins, Speed-Flag=1).

Alle 16 Funktionen im Detail

#FunktionBeschreibung
1DC_Motor(int pin1, int pin2)Constructor: Pins für Motorsteuerung (digital)
2DC_Motor(int pin1, int pin2, int speed_flag)Constructor: PWM-Pins + Speed-Flag (1=aktiv)
3start_motor(int dir)Motor starten: dir=1 vorwärts, 0 rückwärts
4forward()Vorwärts starten (volle Geschwindigkeit)
5reverse()Rückwärts starten (volle Geschwindigkeit)
6dc_break()DC-Bremse (Notstopp) – nur mit passender Hardware!
7stop_motor()Motor stoppen (digital)
8jogg_full_speed(int dir)Jog/Impuls 5 Sek. mit Vollspeed in dir
9set_speed(int speed)Sollgeschwindigkeit 0–100 % setzen
10forward_with_set_speed()Vorwärts mit gesetzter Geschwindigkeit
11reverse_with_set_speed()Rückwärts mit gesetzter Geschwindigkeit
12run_motor(int dir, int speed)Motor in dir mit speed starten
13jogg_set_speed(int dir, int speed)Jog in dir mit gesetzter Geschwindigkeit
14motor_speed_zero()Geschwindigkeit auf 0 fahren (analog, nicht digital stoppen!)
15soft_start(int dir, int speed, int time_sec)Soft Start: 0→speed in time_sec Sekunden
16smooth_stop(int time_sec)Smooth Stop: aktuelle→0 in time_sec Sekunden
Hinweis zu dc_break(): Funktioniert nur bei Motoren mit interner Bremswicklung und passendem Treiber (Dynamic Braking Resistances). Unsachgemäße Nutzung kann Motor/Treiber beschädigen!
Wichtig: Bei Geschwindigkeitssteuerung stop_motor() nicht verwenden – stattdessen motor_speed_zero() für sanftes analoges Abbremsen.

Beispiele

1) Vorwärts/Rückwärts bei Volllast (ohne Speed-Control)

/* DC Motor 5 Sek. vorwärts, 2 Sek. Stop, 5 Sek. rückwärts, 2 Sek. Stop – Endlos
   by A M Bhatt, Gujarat, INDIA, 12/10/2016 */
#include 
DC_Motor motor(8, 12);

void setup() {}
void loop() {
  motor.forward();
  delay(5000);
  motor.stop_motor();
  delay(2000);
  motor.reverse();
  delay(5000);
  motor.stop_motor();
  delay(2000);
}

2) Vorwärts/Rückwärts mit Speed-Control

/* 5 Sek. 40% vorwärts, 2 Sek. Stop, 5 Sek. 80% rückwärts – Endlos
   by A M Bhatt, 12/10/2016 */
#include 
DC_Motor motor2(9, 10, 1); // PWM-Pins 9,10 + Speed-Flag

void setup() {}
void loop() {
  motor2.set_speed(40);
  motor2.forward_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
  motor2.set_speed(80);
  motor2.reverse_with_set_speed();
  delay(5000);
  motor2.motor_speed_zero();
  delay(2000);
}

3) Jog Control mit und ohne Speed-Control

/* Jog: Motor1 Vollspeed beide Richtungen, Motor2 80% rückwärts / 30% vorwärts
   by Ashutosh M Bhatt, 22/10/2016 */
#include 
DC_Motor motor(8, 12);
DC_Motor motor2(9, 10, 1);

void setup() {}
void loop() {
  motor.jogg_full_speed(1);
  motor.jogg_full_speed(0);
  motor2.jogg_set_speed(0, 80);
  motor2.jogg_set_speed(1, 30);
}

4) Soft Start und Smooth Stop

/* Soft Start 0→90% in 10s vorwärts, Smooth Stop 90→0% in 5s,
   Soft Start 0→50% in 6s rückwärts, Smooth Stop 50→0% in 3s
   by A M Bhatt, 12/10/2016 */
#include 
DC_Motor motor2(9, 10, 1);

void setup() {}
void loop() {
  motor2.soft_start(1, 90, 10);
  delay(3000);
  motor2.smooth_stop(5);
  motor2.soft_start(0, 50, 6);
  delay(3000);
  motor2.smooth_stop(3);
}

Einbindung der Bibliothek

Ordner DC_Motor in den Arduino-Library-Ordner kopieren (z. B. C:\arduino-1.6.7\libraries).

Schaltplan (H-Brücke)

High-Performance Arduino Bibliothek für DC-Motor-Steuerung
Arduino UNO mit H-Brücken-Treiber (diskret mit Transistoren)

Die Bibliothek liegt als C-Header-Datei vor (Download-only).

Herstellungsprozess

  1. Sensor-gesteuerte Audio-Effekte mit dem Satellite CCRMA Kit bauen
  2. DIY Hausaufgaben-Schreibmaschine zu Hause bauen
  3. Arduino-Uno-Roboter zur Personenerkennung – Sensorintegration Schritt für Schritt
  4. Umfassende Bipolar-Schrittmotor-Bibliothek für Arduino
  5. Android-gesteuertes Roboterfahrzeug mit Raspberry Pi Motor Shield
  6. Servogesteuerter Hindernisvermeidungs-Roboter: Bauen mit Arduino & HC-SR04
  7. Autonomer Linienfolger-Roboter mit Arduino UNO
  8. Roomba Create 2 per Arduino & Android steuern – Schritt-für-Schritt
  9. Arduino & MPU6050: Präzise Servomotor-Steuerung mit SG90 & MG996R
  10. Smartes Indoor-Navigations-Roboter-Kit für Arduino-Projekte