Arduino-Kurs: Fünfter Tag – Erweiterte Sensoren und Motoren

Servomotor

– Ein Servomotor ist ein Gerät, das präzise Steuerung von
Winkelposition, Geschwindigkeit und Beschleunigung ermöglicht.

– Servomotoren werden häufig in Robotik, Modellbau, und
Steuerungssystemen verwendet.

 

Wie funktioniert ein Servomotor?

– Servomotoren bestehen aus einem kleinen Gleichstrommotor,
einem Getriebe, einem Potentiometer (zur Positionsmessung) und einer
Steuerungselektronik.

– Sie haben drei Anschlüsse: Stromversorgung (meistens 5V),
Masse (GND) und Steuerleitung (Signal).

 

Steuerung eines Servomotors

– Die Steuerleitung nimmt Pulsweitenmodulation (PWM)-Signale
an.

– Ein PWM-Signal besteht aus einer Serie von Pulsbreiten,
die die gewünschte Position des Servos kodieren.

– Eine Impulsbreite von 1 ms bewegt den Servo in die
0-Grad-Position, 1,5 ms bewegt ihn in die 90-Grad-Position und 2 ms bewegt ihn
in die 180-Grad-Position.

 

Ultraschallsensor

– Ein Ultraschallsensor misst die Entfernung zu einem Objekt
mithilfe von Ultraschallwellen.

– Er besteht aus einem Sender, der Schallwellen aussendet,
und einem Empfänger, der die reflektierten Wellen empfängt.

 

Wie funktioniert ein Ultraschallsensor?

– Der Sensor sendet einen kurzen Ultraschallimpuls aus.

– Der Impuls wird von einem Objekt reflektiert und vom
Sensor empfangen.

– Der Sensor misst die Zeit, die der Impuls benötigt, um
zurückzukehren, und berechnet daraus die Entfernung.

 

Projekt 1: Abstandmessgerät

 

Ziel: Einen Servomotor basierend auf den von einem
Ultraschallsensor gemessenen Entfernungen bewegen.

Komponentenliste

– Arduino Uno

– HC-SR04 Ultraschallsensor

– Servo-Motor

– Jumper-Kabel

– Breadboard

 

1. GND:

   – Verbinde einen
GND-Pin des Arduino mit der GND-Schiene (blaue Schiene) auf dem Breadboard.

   – Verbinde den
GND-Pin des HC-SR04 mit der GND-Schiene (blaue Schiene) auf dem Breadboard.

   – Verbinde den
GND-Pin des Servo-Motors mit der GND-Schiene (blaue Schiene) auf dem
Breadboard.

 

2. VCC:

   – Verbinde den
5V-Pin des Arduino mit der VCC-Schiene (rote Schiene) auf dem Breadboard.

   – Verbinde den
VCC-Pin des HC-SR04 mit der VCC-Schiene (rote Schiene) auf dem Breadboard.

   – Verbinde den
VCC-Pin des Servo-Motors mit der VCC-Schiene (rote Schiene) auf dem Breadboard.

 

Signalpins

1. Trig-Pin:

   – Verbinde den
Trig-Pin des HC-SR04 mit Pin 9 des Arduino.

 

2. Echo-Pin:

   – Verbinde den
Echo-Pin des HC-SR04 mit Pin 10 des Arduino.

 

3. Servo-Signal:

   – Verbinde das
Signal-Kabel des Servo-Motors mit Pin 6 des Arduino.

 

Beispielcode für die Abstandsmessung und Servosteuerung

#include <Servo.h>

 

// Pinbelegung

const int trigPin = 9;

const int echoPin = 10;

const int servoPin = 6;

 

// Variablen
für Messung

long duration;

int distance;

 

//
Servo-Objekt erstellen

Servo myServo;

 

void setup() {

  //
Serielle Kommunikation starten

  Serial.begin(9600);

 

  //
Pinmodi setzen

  pinMode(trigPin, OUTPUT);

  pinMode(echoPin, INPUT);

 

  //
Servo an Pin 6 anschließen

  myServo.attach(servoPin);

}

 

void loop() {

  //
Ultraschallsensor anstoßen

  digitalWrite(trigPin, LOW);

  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);

 

  //
Echo-Zeit messen

 
duration =
pulseIn(echoPin, HIGH);

 

  //
Entfernung berechnen

 
distance = duration *
0.034 / 2;

 

  //
Ausgabe der Entfernung zur Überprüfung

  Serial.print(„Entfernung: „);

  Serial.print(distance);

  Serial.println(“ cm“);

 

  //
Servo basierend auf der Entfernung bewegen

  if (distance <= 10) {

    myServo.write(0); // 0 Grad Position

  } else if (distance > 10 && distance <= 20) {

    myServo.write(90); // 90 Grad Position

  } else {

    myServo.write(180); // 180 Grad Position

  }

 

  //
Kurze Pause vor der nächsten Messung

  delay(100);

}

 

 

 

Zusammenfassung der Schritte

1. GND-Verbindungen:

   – Arduino GND –> Breadboard GND-Schiene

   – HC-SR04 GND –> Breadboard GND-Schiene

   – Servo GND –> Breadboard GND-Schiene

 

2. VCC-Verbindungen:

   – Arduino 5V –> Breadboard VCC-Schiene

   – HC-SR04 VCC –> Breadboard VCC-Schiene

   – Servo VCC –> Breadboard VCC-Schiene

 

3. Signalverbindungen:

   – HC-SR04 Trig –> Arduino Pin 9  

   – HC-SR04 Echo –> Arduino Pin 10

   – Servo Signal –> Arduino Pin 6

 

4. Code:

   – Lade den obigen Arduino-Sketch auf den Arduino hoch.

   – Öffne den seriellen Monitor in der Arduino IDE (Stelle sicher, dass die Baudrate auf 9600 eingestellt ist).

   – Öffne den
seriellen Monitor in der Arduino IDE (Stelle sicher, dass die Baudrate auf 9600
eingestellt ist).

Mit diesen klaren Schritten und dem Beispielcode sollte dein Setup korrekt funktionieren, um die Entfernung zu messen und basierend darauf den Servo-Motor zu steuern. Wenn alles richtig verbunden ist, sollte der Servo entsprechend der gemessenen Entfernung seine Position ändern. 

Abschlussprojekt und Präsentation 

   – Praktisch: Die
Schüler arbeiten an einem eigenen kleinen Projekt oder in Gruppen an einem
größeren Projekt, wie z.B. einem Mini-Roboter, einer Alarmanlage oder einem
einfachen Spiel.

   – Präsentation:
Jede Gruppe oder jeder Schüler stellt sein Projekt vor und erklärt, wie es
funktioniert.

Teile diesen Beitrag

Mehr zu entdecken

Allgemein

Arduino-Kurs: RGB-LED/PWM und Abschlussprojekte

Abschlussprojekt und Präsentation     – Praktisch: DieSchüler arbeiten an einem eigenen kleinen Projekt oder in Gruppen an einemgrößeren Projekt, wie z.B. einem Mini-Roboter, einer Alarmanlage

Allgemein

Arduino-Kurs: Fünfter Tag – Erweiterte Sensoren und Motoren

Servomotor – Ein Servomotor ist ein Gerät, das präzise Steuerung vonWinkelposition, Geschwindigkeit und Beschleunigung ermöglicht. – Servomotoren werden häufig in Robotik, Modellbau, undSteuerungssystemen verwendet.