// zur Nutzung mit Android Bluetooth CarBot int LeftMotorForward = 6; int LeftMotorReverse = 7; int RightMotorForward = 8; int RightMotorReverse = 9; int rechtspwm =11; int linkspwm = 10; int dataFromBt; #include #define rxPin 2 //RX vom Arduino - TX vom Bluetooth #define txPin 3 //TX vom Arduino - RX vom Bluetooth SoftwareSerial bluetooth(rxPin, txPin); void setup() { bluetooth.begin(9600); bluetooth.println("bluetooth available"); pinMode(LeftMotorForward, OUTPUT); pinMode(LeftMotorReverse, OUTPUT); pinMode(RightMotorForward, OUTPUT); pinMode(RightMotorReverse, OUTPUT); pinMode(rechtspwm, OUTPUT); pinMode(linkspwm, OUTPUT); } void loop() { if(bluetooth.available()) { dataFromBt = bluetooth.read(); // Befehl per Einzelbuchstabe oder Zahl, reagiert schnell, im Gegensatz zu bluetooth.readString() if(dataFromBt == '2'){ bluetooth.println("links"); stoppen(); links(); } if(dataFromBt == '4'){ bluetooth.println("rechts"); stoppen(); rechts(); } if(dataFromBt == '1'){ bluetooth.println("vorwaerts"); stoppen(); vor(); } if(dataFromBt == '5'){ bluetooth.println("zurueck"); stoppen(); zurueck(); } if(dataFromBt == '3'){ bluetooth.println("stoppen"); stoppen(); } if(dataFromBt == '6'){ bluetooth.println("linksvor"); stoppen(); linksvor(); } if(dataFromBt == '7'){ bluetooth.println("rechtsvor"); stoppen(); rechtsvor(); } if(dataFromBt == '8'){ bluetooth.println("linksrueck"); stoppen(); linksrueck(); } if(dataFromBt == '9'){ bluetooth.println("rechtsrueck"); stoppen(); rechtsrueck(); } } } ////////// Subroutinen ////////////////// void stoppen(){ digitalWrite(RightMotorForward, LOW); digitalWrite(LeftMotorForward, LOW); digitalWrite(RightMotorReverse, LOW); digitalWrite(LeftMotorReverse, LOW); } void links(){ digitalWrite(LeftMotorForward, HIGH); digitalWrite(RightMotorReverse, LOW); analogWrite(linkspwm, 160); digitalWrite(RightMotorReverse, HIGH); digitalWrite(RightMotorForward, LOW); analogWrite(rechtspwm, 160); } void rechts(){ digitalWrite(LeftMotorForward, LOW); digitalWrite(RightMotorReverse, HIGH); analogWrite(linkspwm, 160); digitalWrite(RightMotorReverse, LOW); digitalWrite(RightMotorForward, HIGH); analogWrite(rechtspwm, 160); } void vor(){ analogWrite(linkspwm, 255); analogWrite(rechtspwm, 255); digitalWrite(RightMotorForward, HIGH); digitalWrite(LeftMotorForward, HIGH); digitalWrite(RightMotorReverse, LOW); digitalWrite(LeftMotorReverse, LOW); } void zurueck(){ analogWrite(linkspwm, 255); analogWrite(rechtspwm, 255); digitalWrite(RightMotorForward, LOW); digitalWrite(LeftMotorForward, LOW); digitalWrite(RightMotorReverse, HIGH); digitalWrite(LeftMotorReverse, HIGH); } void linksvor(){ analogWrite(linkspwm, 150); analogWrite(rechtspwm, 255); digitalWrite(RightMotorForward, HIGH); digitalWrite(RightMotorReverse, LOW); digitalWrite(LeftMotorForward, HIGH); digitalWrite(LeftMotorReverse, LOW); } void rechtsvor(){ analogWrite(linkspwm, 255); analogWrite(rechtspwm, 150); digitalWrite(RightMotorForward, HIGH); digitalWrite(RightMotorReverse, LOW); digitalWrite(LeftMotorForward, HIGH); digitalWrite(LeftMotorReverse, LOW); } void linksrueck(){ analogWrite(linkspwm, 150); analogWrite(rechtspwm, 255); digitalWrite(RightMotorReverse, HIGH); digitalWrite(RightMotorForward, LOW); digitalWrite(LeftMotorReverse, HIGH); digitalWrite(LeftMotorForward, LOW); } void rechtsrueck(){ analogWrite(linkspwm, 255); analogWrite(rechtspwm, 150); digitalWrite(RightMotorReverse, HIGH); digitalWrite(RightMotorForward, LOW); digitalWrite(LeftMotorReverse, HIGH); digitalWrite(LeftMotorForward, LOW); }