Steuerung eines DC-Motors mit einem L293D-Motortreiber und Arduino PWM
Dieses Projekt zeigt, wie man die Geschwindigkeit und Richtung eines Gleichstrommotors mit einem L293D-Motortreiberchip und den Pulsweitenmodulationsfähigkeiten (PWM) von Arduino steuern kann. Diese Einrichtung ermöglicht eine präzise Motorsteuerung, was sie für eine Vielzahl von Anwendungen geeignet macht.
Hier sind einige Projektideen, die dieses Setup nutzen:
- Robotik:Steuern Sie die Bewegung der Räder eines kleinen Roboters.
- Automatisierte Geräte:Erstellen Sie automatisierte Vorhänge, Jalousien oder ein kleines Förderband.
- Lüftersteuerung:Passen Sie die Geschwindigkeit eines Kühlgebläses basierend auf den Temperaturmessungen an.
- Sonnenverfolger:Positionieren Sie kleine Solarpanels so, dass sie der Sonne im Laufe des Tages folgen.
Hardware/Komponenten
- Arduino Uno (oder kompatible Platine)
- L293D Motorsteuerungs-IC
- DC-Motor (ausgelegt für die Spannung und die Stromgrenzen des L293D, bis zu 600 mA)
- 9V-Netzteil (für den Motor)
- Verbindungskabel
- Breadboard (empfohlen)
Verdrahtungsanleitung
Der L293D-Chip fungiert als Schnittstelle zwischen dem Arduino und dem Gleichstrommotor. Er ermöglicht es dem Arduino, sowohl die Geschwindigkeit als auch die Richtung des Motors zu steuern. Der Chip benötigt eine separate Stromversorgung für den Motor, da der Arduino nicht genügend Strom für die meisten Motoren liefern kann. (im Video bei 04:04)
%%VERKABELUNG%%
Code-Erklärung
Der Arduino-Code steuert den L293D-Treiber, der wiederum den DC-Motor steuert. Der Code verwendet PWM, um die Motorgeschwindigkeit zu variieren, und digitale Signale, um die Richtung zu wechseln.
Hier sind die wichtigsten konfigurierbaren Parameter im Code:
#define P1A 10 // Arduino pin connected to L293D input 1A
#define P2A 11 // Arduino pin connected to L293D input 2A
#define EN12 9 // Arduino pin connected to L293D enable pin (1,2EN)
const int speedStep = 15; // Increment for speed changes
const int speedDelay = 1000; // Delay between speed steps (in milliseconds)
DieL293D()Die Funktion steuert die Richtung und Geschwindigkeit des Motors. 'L' lässt den Motor im Uhrzeigersinn drehen, 'R' lässt ihn gegen den Uhrzeigersinn drehen.spdParameter steuert die Geschwindigkeit (0-255) undenaktiviert (1) oder deaktiviert (0) den Motor. (im Video bei 09:24)
void L293D(char dir,int spd, int en)
{
if(dir =='L') // Clockwise rotation
{
// ...
analogWrite(P1A,spd); // Set speed using PWM
digitalWrite(P2A,LOW);
}else{ // Counter-clockwise rotation
// ...
digitalWrite(P1A,LOW);
analogWrite(P2A,spd); // Set speed using PWM
}
}
Live-Projekt/Demonstration
Das Video zeigt das Projekt in Aktion und demonstriert die Änderungen der Motordrehzahl und -richtung. Die Oszilloskopwerte visualisieren die PWM-Signale, die den Motor steuern. (im Video bei 11:07)
Kapitel
- [00:00] Einführung in die DC-Motorsteuerung mit L293D
- [00:30] Projektvorführung und Erklärung
- [01:12] L293D Motorsteuerung Überblick
- [02:08] DC-Motor-Spezifikationen
- [02:30] L293D Datenblatt Erklärung
- [04:40] Erklärung und Demonstration der Verdrahtung
- [07:05] Arduino-Code-Erklärung
- [11:07] Projektvorführung und Oszilloskopmessungen
Ressourcen & Referenzen
Dateien📁
Keine Dateien verfügbar.