Mit diesem Anwendungsbeispiel können Sie die Geschwindigkeit und Drehrichtung eines kleinen Gleichstrommotors (DC Motor) mit dem Ardumoto-Shield von sparkfun steuern.
Verwendete Teile:
1 Arduino UNO
1 Ardumoto Shield
1 DC Motor (12 V, 800mA)
2 Stiftleistenpaare
3 Schraubklemmen
1 USB Kabel
1 externe Spannungsversorgung
Die beiden Stiftleistenpaare, so wie die Schraubklemmen werden in den Ardumoto Shield eingelötet.
Die beiden Schraubklemmen zum Anschluss für die Motoren (A: 1,2 und B: 2,3) müssen vor dem Einlöten zusammengesteckt werden. Die dritte Schraubklemme dient der externen Stromversorgung für den DC Motor. (+/-).
Alternativ kann zu den Schraubklemmen auch eine Stiftleiste verwendet werden.
Versuchsaufbau:
Der fertig gelötete Ardumoto-Shield wird nun auf ein Arduino (z.B. UNO) aufgesteckt.
Der DC Motor wird an die Schraubklemme (A: 1,2) angeschlossen. Die externe Spannungsversorgung wird an die Schraubklemme (+/-) angeschlossen.
Die externe Spannungsversorgung muss an die Daten des Motors und den Ardumoto Shield angepasst werden. (Motorspannung nach Datenblatt von Motor einstellen, eventuell Strombegrenzung einstellen).
Mit dem Ardumoto-Shield können 2 Motoren bis 2A betrieben werden.
Programmcode:
/*
Anwendungsbeispiel zur Motorsteuerung (Geschwindigkeit und Drehrichtung)
mit dem Ardumoto Shield, März 2011
www.physicalcomputing.at
*/
int vMotorA = 3; //Pin zur Geschwindigkeitsregelung Motor A
int vMotorB = 11; //Pin zur Geschwindigkeitsregelung Motor B
int RichtungA = 12; //Pin zur Drehrichtungssteuerung Motor A
int RichtungB = 13; //Pin zur Drehrichtungsstuerung Botor B
void setup()
{
pinMode(vMotorA, OUTPUT);
pinMode(vMotorB, OUTPUT);
pinMode(RichtungA, OUTPUT);
pinMode(RichtungB, OUTPUT);
}
void loop()
{
digitalWrite(RichtungA, LOW); //Legt die Drehrichtung für Motor A fest
digitalWrite(RichtungB, LOW); //Legt die Drehrichtung für Motor B fest
analogWrite(vMotorA, 85);
/*mittels Pulsweitenmodulation (anmalogWrite) kann die Geschwindigkeit des
Motors zwischen 0 und 255 gesteuert werden*/
delay (2000); // Motor läuft für 2 sec mit 1/3 Leistung
analogWrite(vMotorA, 170);
delay (2000); // Motor läuft für 2 sec mit 2/3 Leistung
analogWrite(vMotorA, 255);
delay (2000);// Motor läuft für 2 sec mit voller Leistung
analogWrite (vMotorA, 0);
delay (2000);// Motor wird für 2 sec ausgeschaltet
digitalWrite (RichtungA, HIGH); // Drehrichtung für Motor A wird umgedreht
///////////gleicher Antrieb in andere Richtung/////////
analogWrite(vMotorA, 85);
delay (2000); // Motor läuft für 2 sec mit 1/3 Leistung
analogWrite(vMotorA, 170);
delay (2000); // Motor läuft für 2 sec mit 2/3 Leistung
analogWrite(vMotorA, 255);
delay (2000);// Motor läuft für 2 sec mit voller Leistung
analogWrite (vMotorA, 0);
delay (2000);// Motor wird für 2 sec ausgeschaltet
}
erstellt 24.3.2011
Keine Kommentare:
Kommentar veröffentlichen
Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.