int LeftMotorForward = 6; int LeftMotorReverse = 7; int RightMotorForward = 8; int RightMotorReverse = 9; const int sensorPin = A0; // pin that the sensor is attached to const int ledPin = 13; // pin that the LED is attached to // variables: int sensorValue = 0; // the sensor value int sensorMin = 1023; // minimum sensor value int sensorMax = 0; // maximum sensor value void setup() { Serial.begin (9600); pinMode(LeftMotorForward, OUTPUT); pinMode(LeftMotorReverse, OUTPUT); pinMode(RightMotorForward, OUTPUT); pinMode(RightMotorReverse, OUTPUT); // turn on LED to signal the start of the calibration period: pinMode(13, OUTPUT); digitalWrite(13, HIGH); // calibrate during the first five seconds while (millis() < 5000) { sensorValue = analogRead(sensorPin); // record the maximum sensor value if (sensorValue > sensorMax) { sensorMax = sensorValue; } // record the minimum sensor value if (sensorValue < sensorMin) { sensorMin = sensorValue; } }//Ende while // signal the end of the calibration period digitalWrite(13, LOW); }//Ende Setup void loop() { // read the sensor: sensorValue = analogRead(sensorPin); // apply the calibration to the sensor reading sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255); // in case the sensor value is outside the range seen during calibration sensorValue = constrain(sensorValue, 0, 255); // Serial.print(sensorValue); // Serial.println(" sensorValue"); vor(); if (sensorValue < 80) { //hell stoppen(); rechts(); } delay(100); }// Ende Loop ///////////// Subroutinen //////////////////// void stoppen(){ digitalWrite(LeftMotorForward, LOW); digitalWrite(LeftMotorReverse, LOW); digitalWrite(RightMotorForward, LOW); digitalWrite(RightMotorReverse, LOW); } void rechts(){ digitalWrite(RightMotorForward, HIGH); digitalWrite(LeftMotorReverse, HIGH); delay(100); digitalWrite(RightMotorForward,LOW); digitalWrite(LeftMotorReverse, LOW); delay(10); } void vor(){ digitalWrite(RightMotorForward, HIGH); digitalWrite(LeftMotorForward, HIGH); } void zurueck(){ digitalWrite(RightMotorReverse, HIGH); digitalWrite(LeftMotorReverse, HIGH); }