Servo steuern

Bei diesem Experiment dachte ich an einen Antennen Rotor, mit dem ich die Antenne drehen kann. Am besten geht dafür natürlich ein Schrittmotor oder Stepper. Da ich noch auf den Treiber warten musste, habe ich damit angefangen, ein Servo per Infrarot Fernsteuerung zu drehen.

Video Anleitung

"Mit Arduino ein Servo per Infrarot Fernsteuerung kontrollieren"

Erstmal Fernsteuerung analysieren

Als erstes muss man herausfinden, was passiert, wenn man auf die Knöpfe der Fernsteuerung drückt. Da das Arduino Board eine serielle Schnittstelle (COM3 bei mir) hat, kann man mit einem Terminalprogramm, wie dem kostenlosen "Hterm", mitlesen, welche Daten gesendet werden.

hterm

Was man braucht

Darauf musst Du achten: die Belegung der Beine des Infrarot Sensors (eventuell genaue Bezeichnung in Google eingeben)

Arduino Code (Sketch)


#include        //IR Library einbinden
int RECV_PIN = 9;           //IR Sensor an Pin 9
#include           //Servo Library einbinden
Servo servo1;               //Servo definieren
int grad = 0;                   //Variable deklarieren
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();
  servo1.attach(8);
}
void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);
    if (results.value == 1431986946)   //wenn Taste >> gedrückt wird...Wert muss ermittelt werden
    {grad = grad + 5;}
    if (results.value == 4283186720)   //wenn Taste << gedrückt wird...Wert muss ermittelt werden
    {grad = grad - 5;}
    if (results.value == 299586532)   //wenn Taste Home gedrückt wird...Wert muss ermittelt werden
    {grad = 0;}
    servo1.write(grad);
    irrecv.resume();
  }
  }
  

Arduino Code zufällige Steuerung


  #include 
Servo servo1;
int grad;
void setup() {
servo1.attach(8);
}
void loop() {
  grad = random(0,180);  
servo1.write(grad);
delay (random(500, 1000));
}
  

Hinweis: Ich verwende Amazon Provisionslinks. Kein Preisunterschied für euch, kleiner Bonus für meine Arbeit.