Banner Ausblenden
Kleines Logo

Willkommen auf PSI-Online

Arduino Roboter

Arduino Roboter

Steuerung der Getriebemotoren mit dem Joystick:

Material:

 

Programm:

#define enA 5
#define in1 7
#define in2 8
#define enB 6
#define in3 9
#define in4 11

int motorSpeedA = 0;
int motorSpeedB = 0;

void setup() {
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
}
void loop() {
  int xAchse = analogRead(A2); //lies die koordinaten der x-achse aus
  int yAchse = analogRead(A3); //lies die koorsdinaten der y-achse aus
  if (yAchse < 500) {
    //Vorwärts fahren
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    digitalWrite(in3, LOW);
    digitalWrite(in4, HIGH);
    motorSpeedA = map(yAchse, 500, 0, 0, 255); //von 500 bis null so sollen die motoren A & B von 0 bis 255 beschleunigen (geschwindigkeit)
    motorSpeedB = map(yAchse, 500, 0, 0, 255);
  }
  else if (yAchse > 510) {
    //Rückwärts fahren
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
    digitalWrite(in3, HIGH);
    digitalWrite(in4, LOW);
    motorSpeedA = map(yAchse, 510, 1023, 0, 255); //von 500 aufwärts bis 1023 so sollen die motoren A & B von 0 bis 255 beschleunigen
    motorSpeedB = map(yAchse, 510, 1023, 0, 255);
  }
  else {
    //ansonsten sind die motoren aus
    motorSpeedA = 0;
    motorSpeedB = 0;
  }

  if (xAchse < 500) {
    //nach links fahren
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
    digitalWrite(in3, LOW);
    digitalWrite(in4, HIGH);
    motorSpeedA = map(xAchse, 500, 0, 0, 255);
    motorSpeedB = map(xAchse, 500, 0, 0, 255);
  }
else if (xAchse > 510) {
  //nach rechts fahren
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    digitalWrite(in3, HIGH);
    digitalWrite(in4, LOW);
    motorSpeedA = map(yAchse, 510, 1023, 0, 255);
    motorSpeedB = map(yAchse, 510, 1023, 0, 255);
}

  analogWrite(enA, motorSpeedA); // Sende das PWM signal zum motor A
  analogWrite(enB, motorSpeedB); // Sende das PWM signal zum motor B
}

Erstellt: Emily Leu (26.02.2020) Letzte Änderung: Emily Leu (29.04.2020)