#include <Servo.h>
Servo SERVO_LINKS; // Linkes Rad
Servo SERVO_RECHTS; // Rechtes Rad
int SERVOANSCHLUSS_RECHTS=2; //Zuordnung Servoanschluss vom rechten Rad
int SERVOANSCHLUSS_LINKS=3; //Zuordnung Servoanschluss vom linken Rad
byte LICHTSENSORWERT=0; // In dieser Variablen werden die Ergebnisse der 4 Lichtsensoren zusammengefasst
boolean LICHTSENSOR_1=10; //Lichtsensor 1 wird Pin 10 zugeordnet
boolean LICHTSENSOR_2=11; //Lichtsensor 2 wird Pin 11 zugeordnet
boolean LICHTSENSOR_3=12; //Lichtsensor 3 wird Pin 12 zugeordnet
boolean LICHTSENSOR_4=13; //Lichtsensor 4 wird Pin 13 zugeordnet
void setup()
{
SERVO_LINKS.attach(SERVOANSCHLUSS_LINKS); //linkes Rad 89-0 Vorwärts 91-180 Rückwärts
SERVO_RECHTS.attach(SERVOANSCHLUSS_RECHTS); //rechtes Rad 91-180 Vorwärts 89-0 Rückwärts
}
void loop()
{
LICHTSENSOREN();
switch (LICHTSENSORWERT)
{
case 0:
SERVO_LINKS.write(0); //Links vorwärts
break;
case 1:
SERVO_LINKS.write(0); //Links vorwärts
break;
case 2:
SERVO_LINKS.write(0); //Links vorwärts
break;
case 3:
SERVO_LINKS.write(0); //Links vorwärts
break;
case 4:
SERVO_LINKS.write(180); //Links rückwärts
break;
case 5:
SERVO_LINKS.write(180); //Links rückwärts
break;
case 6:
SERVO_LINKS.write(180); //Links rückwärts
break;
case 7:
SERVO_LINKS.write(180); //Links rückwärts
break;
case 8:
SERVO_RECHTS.write(180); //Rechts vorwärts
break;
case 9:
SERVO_RECHTS.write(180); //Rechts vorwärts
break;
case 10:
SERVO_RECHTS.write(180); //Rechts vorwärts
break;
case 11:
SERVO_RECHTS.write(180); //Rechts vorwärts
break;
case 12:
SERVO_RECHTS.write(0); //Rechts rückwärts
break;
case 13:
SERVO_RECHTS.write(0); //Rechts rückwärts
break;
case 14:
SERVO_RECHTS.write(0); //Rechts rückwärts
break;
case 15:
SERVO_RECHTS.write(0); //Rechts rückwärts
break;
}
}
void LICHTSENSOREN()
{
LICHTSENSORWERT=0;
LICHTSENSORWERT = digitalRead(LICHTSENSOR_1); // Pin 4 ins unterste Bit schreiben
LICHTSENSORWERT <<= 1; // eines nach links schieben.,
LICHTSENSORWERT |= digitalRead(LICHTSENSOR_2);
LICHTSENSORWERT <<= 1;
LICHTSENSORWERT |= digitalRead(LICHTSENSOR_3);
LICHTSENSORWERT <<= 1;
LICHTSENSORWERT |= digitalRead(LICHTSENSOR_4);
}
Das ist mein Programmcode.
Wenn ich es ablaufen lasse, drehen sich aus irgend einem Grund beide Servos.
Habe ich einen Fehler gemacht?
Wenn jemand den Fehler findet, würde ich mich sehr freuen.
Gruß Sam