Servo mit einem Arduino NANO und Software steuern

Servo mit einer Software steuern

Hier ein kleines Beispiel wie man einen Servo aus dem Modellbau über einen Micro Controller seriell steuert. Die Software verbindet sich via serielle Schnittstelle mit dem Controller und schickt ASCII Zeichen als Befehle die man beim Empfänger (Contoller) vorher mit Aufgaben belegt hat (programmiert).  Man sendet z.B. „off4“ dann wird der Pin 4 am Controller auf LOW geschaltet. Dort  kann man dann ein Relais anschließen.

Hier der Code für den Arduino und die Software ab WIN7 zum herrunterladen

#include <Servo.h>

Servo servo1;
int MAX_CMD_LENGTH = 10;
char cmd[10];
int cmdIndex;
char incomingByte;
int Winkel1 = 0;
 
void setup(){
  servo1.attach(8); //Servo an der Steuerleitung (gelb) mit Pin 8 https://youtu.be/l_gm-BXYbDU 
  Serial.begin(9600);
  cmdIndex = 0;
  servo1.write(Winkel1);   
}


void loop(){
  if (incomingByte=Serial.available()>0) {
      char byteIn = Serial.read();
      cmd[cmdIndex] = byteIn;  
      if(byteIn=='\n'){
        //command finished
        cmd[cmdIndex] = '\0'; 
        //Serial.println(cmd);
        cmdIndex = 0;
       
        if(strcmp(cmd, "off4")  == 0){
          digitalWrite(4,HIGH);
          Serial.println("Empfangen: off4");
        }else if (strcmp(cmd, "on4")  == 0) {
          digitalWrite(4,LOW);
          Serial.println("Empfangen: on4");
        }else{
          //Serial.println(Winkel1);
          Winkel1 = atoi(cmd); 
          servo1.write(Winkel1); //ansteuern mit dem Winkel x° as int
        }
        
      }else{
        if(cmdIndex++ >= MAX_CMD_LENGTH){
          cmdIndex = 0;
        }
      }
    } 
}

Hier noch ein Video mit zwei Servos und einem PAN TILT Aufbau.