Servo-Motor mit einem Potentiometer steuern (Projekt 2)
Aufgabenstellung
In diesem Projekt soll ein Servo-Motor mithilfe eines Arduinos und einem Potentiometer steuerbar sein.
Vorab wichtig zu Wissen!
Arduino
- Der Arduino besitzt unterschiedliche Schnittstellen, weil der Arduino ein digitaler Mikrocontroller ist, kann er nur 5 Volt ausgeben oder annehmen.
- Darum wird für das Projekt 2 eine PWM Schnittstelle benötigt.
- Die [PWM] Schnittstellen sind ganz einfach zu erkennen an diesem Zeichen (~)
Servo-Motor
- Schwarz oder Braun = Masse (GND)
- Rot = +5V
- Orange, Gelb oder Weiß = PWM-Signal
Potentiometer
- Das Potentiometer greift eine Eingangsspannung auf und gibt verschieden große Mengen davon an einen Schaltkreis weiter.
- So kann später der Servo-Motor ein und ausgeschaltet werden, mit dem Potentiometer.
Steckbrett
- Erklärung zum arbeiten mit einem Steckbrett klicken!
Benötigte Materiallien
Nr. | Anz. | Beschreibung | Link | Pos. | Anz. | Beschreibung | Link | ||
---|---|---|---|---|---|---|---|---|---|
① | 1 | Funduino Arduino UNO R3 | kaufen | ② | 10 | Jumper Kabel, männlich/männlich | kaufen | ||
③ | 1 | Steckbrett | kaufen | ④ | 1 | Potentiometer 10k | kaufen | ||
⑤ | 1 | TowerPro SG90 Servomotor | kaufen |
Aufbau Schaltung
- Auf dem Bild (Abb.3 Schaltung) wird dargestellt, wie die Schaltung für das Projekt "Servo-Motor mit einem Pogtentiometer steuern" aufgebaut werden kann.
Programmierung
Schritt 1
- Erstellen der ersten Arduino Datei (Link zum Tutorial).
Schritt 2
- Grundkenntnisse vom Projekt "Pulsierende LED" verstanden haben. (Link).
- Grundkenntnisse für das Projekt "Servo-Motor mit einem Potentiometer steuern" verstehen(Link zu den Grundkenntnissen).
Schritt 3
- Nachdem die Schritte 1 und 2 abgeschlossen sind, kann mit der Programmierung des Projektes gestartet werden.
1)#include
Für das Projekt wird ein Servo-Motor verwendet, hierfür wird eine Bibiolothek benötigt.
Diese wird über den Befehl #include <Name>
hinzugefügt.
Lösung |
#include <Servo.h>
void setup()
{
//später
}
void loop()
{
//später
}
|
2)Initialisierung
Der nächste Schritt ist alle Variablen zu initialisieren die später Verwendet werden.
Es müssen 3 Varialen angelegt werden, für den Motor, Variable um den analogen Wert des Potentiometers zu speicher und eine Variable für die Position des Motors.
Lösung |
#include <Servo.h>
Servo Motor;
// speichert den analogen Wert des Drehpotentiometers
int ReglerWert;
// Position des Motors
int Position;
void setup()
{
//später
}
void loop()
{
//später
}
|
Schritt 4
- Nach dem beenden von Schritt 3, kann nun das Ergebnis mit der Munsterlösung verglichen werden.
Musterlösung
Quelle: https://funduino.de/wp-content/uploads/2021/01/Servomotor.pdf
Müsterlösung |
// eingebaute Bibliothek einbinden
# include <Servo.h>
// Bezeichnung des Motors
Servo Motor;
// speichert den analogen Wert des Drehpotentiometers
int ReglerWert;
// Position des Motors
int Position;
void setup()
{
// Motor an Pin 9 angeschlossen (attach)
Motor.attach(9);
}
void loop()
{
int ReglerWert = analogRead(A0);
/*
map -> Umwandlung des gelesenen Wertes
von 0 bis 1023 (analoger Sensorwert)
auf 0 bis 180 (Drehung des Motors)
*/
Position = map(ReglerWert, 0, 1023, 0, 180);
// Motor zur Position bewegen
Motor.write(Position);
}
|
Video
→ zurück zum Hauptartikel: Klicken!