alle Unterrichtseinheiten auf einen Blick

Servo-Ansteuerung  einer Parkhaus-Schranke

 

Das Servo ist hier einfach in eine Leiste eingeklemmt.


So kann es in die Schranke eingesetzt werden und genau so auch wieder herausgenommen werden.

In Parkhäusern ist die Höhe eingeschränkt. Deshalb muss ein langer Schrankenbaum wie hier im Bild durch eine Vierer-Gelenk-Kette abgeknickt werden.

mit Handkurbel

Baue ein Funktionsmodell einer Parkhaus-Schranke!

Deine Parkschranke soll mit dem Servo angetrieben werden.


Beim Bau ist darauf zu achten, dass die gegenüberliegenden Seiten der Vierer-Gelenk-Kette gleich lang sind. Dann wird der vordere (linke) Teil der Schranke immer waagerecht geführt.

Die Schranke wird mit dem Aufsteck-Hebel einfach auf das Servo aufgesteckt.

Beim ersten Anschluss an den ARDUINO mußt Du herausfinden, welche Stellung richtig ist (0 - Stellung)



Servo-Ansteuerung  mit einem einfachen Programm

Code

Bedeutung des Codes

Wenn Du die Schaltung wie oben ausgeführt hast,

- verbinde den Arduino mit dem Computer 

- starte das Arduino-Programmfenster

- lösche den Text im Fenster

- kopiere den CODE (rechts) und füge ihn in das leere Programmfenster ein

- klicke auf  Hochladen



#include <Servo.h> 


Servo servoblau; 

void setup()

{servoblau.attach(8); 

}

void loop()




{servoblau.write(10);

delay(3000);


servoblau.write(110); 

delay(3000);


servoblau.write(10);

delay(5000);


}

Die Servobibliothek wird aufgerufen. Sie wird benötigt, damit die Ansteuerung des Servos vereinfacht wird.

Erstellt für das Programm ein Servo mit dem Namen „servoblau“


Das Setup enthält die Information, dass das Servo an der Steuerleitung (gelb) mit Pin 8 verbunden wird.  


Im „loop“ wird über den write-Befehl „servoblau.write(Grad)“ das Servo angesteuert. Zwischen den einzelnen Positionen gibt es eine Pause, damit das Servo genug Zeit hat, die gewünschten Positionen zu erreichen.


Position 1 ansteuern mit dem Winkel 10°

Das Programm stoppt für 3 Sekunden


Position 2 ansteuern mit dem Winkel 110°

Das Programm stoppt für 3 Sekunden



Position 3 ansteuern mit dem Winkel 10°

Das Programm stoppt für 5 Sekunden


}

Die Schranke wird mit dem Aufsteck-Hebel einfach auf das Servo aufgesteckt.

Beim ersten Anschluss an den ARDUINO mußt Du herausfinden, welche Stellung richtig ist (0 - Stellung)


Probiere solange, bis Deine Schranke die beiden Stellungen  „geöffnet“ und „geschlossen“ korrekt anzeigt.

1)  Stelle die Öffnungszeit auf 30 Sekunden ein.




 

Servo-Ansteuerung  mit dem Potentiometer

CODE

Wenn Du die Schaltung wie oben ausgeführt hast,

- verbinde den Arduino mit dem Computer 

- starte das Arduino-Programmfenster

- lösche den Text im Fenster

- kopiere den CODE (rechts) und füge ihn in das leere Programmfenster ein

- klicke auf  Hochladen


Nun kannst Du das Servo mit dem Potentiometer steuern.


#include <Servo.h>              // Servo Library einbinden

 

Servo myservo;                    // Neues Servo Objekt erstellen



int val;                         // Wert des Potentiometers hier speichern

 

void setup() // setup() wird einmal zu Programmbeginn ausgeführt

{

  myservo.attach(9);              // Servo an Pin 9 koppeln

 

  Serial.begin(9600);             // Serielle Kommunikation starten

}


void loop()                            // loop() wird endlos wiederholt

{

    val = analogRead(5);       // Stellung des Potentiometers
                                            an Anlog-Eingang 5 auslesen


   val = map(val, 0, 1023, 0, 180);  // 10-bit Wert des Analogeingangs
                                              (0-1023) in Winkel 0-180 umrechnen


  Serial.println(val);           // Errechneten Winkel zur Kontrolle an
                                     den PC übertragen (Seriellen Monitor starten!)

 

  myservo.write(val);     // Einstellwinkel in Grad an das
                                      Servo-Objekt schicken

 

  delay(50);                      // Kurze Pause, damit der Servo
                                        die neue Position anfahren kann

}

// C++ code

//

#include <Servo.h> 


Servo servo;


int pushButton=4;


int ledRed=3;

int ledGreen=2;


void setup()

{

 pinMode(pushButton, INPUT);


 pinMode(ledRed, OUTPUT);

 pinMode(ledGreen, OUTPUT);


 servo.attach(9);


 digitalWrite(pushButton, HIGH); //Pull up Widerstand aktivieren


void loop()

{

 int pressed=digitalRead(pushButton);


 digitalWrite(ledGreen, LOW);

 digitalWrite(ledRed, HIGH);


 if(pressed=LOW)

 {

 digitalWrite(ledGreen, HIGH);

 digitalWrite(ledRed, LOW);


 servo.write(360);

 delay(2000);

 servo.write(0);

 }


 delay(15);

}

Diese Website verwendet Cookies. Bitte lesen Sie unsere Datenschutzerklärung für Details.

OK