Arduino Roboter
Arduino Roboter
Steuerung der Getriebemotoren mit dem Joystick:
Material:
- Arduino UNO
- Kabel
- 4 Getriebemotoren
- Erweiterungsplatine (Diese ist bei dem Arduino Roboter Model "ELEGOO Smart Robot Car Kit V3.0" enthalten)
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
}