int mRechts = 12; int mLinks = 13; int mRbremse = 9; int mLbremse = 8; int geschwindigkeit; int burstenMotor = 10; int LEDrot= 4; int LEDgelb= 5; int LEDgruengelb=6; int LEDgruen=7; int StartStop =2; int putzen; int IR1 = 5; int IR2 = 4; int IR3 = 1; void setup() { pinMode(mRechts, OUTPUT); //Richtung Motor rechts pinMode(mRbremse, OUTPUT); //Bremse Motor rechts pinMode(mLinks, OUTPUT); //Richtung Motor links pinMode(mLbremse, OUTPUT); //Bremse Motor links pinMode(burstenMotor,OUTPUT); //Bürstenmotor pinMode(LEDrot,OUTPUT); //LED ROT pinMode(LEDgelb,OUTPUT); //LED Gelb pinMode(LEDgruengelb,OUTPUT); //LED Grün1 pinMode(LEDgruen,OUTPUT); //LED Grün2 digitalWrite(burstenMotor, LOW); digitalWrite(mRbremse, HIGH); digitalWrite(mLbremse, HIGH); do{ int akkuAdc = analogRead(A0); float voltage = akkuAdc * (5.0 / 1023.0); voltage = voltage *3.13; if(voltage >10.5){ digitalWrite(LEDrot, HIGH); digitalWrite(LEDgelb, HIGH); digitalWrite(LEDgruengelb, HIGH); digitalWrite(LEDgruen, HIGH); } else if(voltage> 9){ digitalWrite(LEDrot, HIGH); digitalWrite(LEDgelb, HIGH); digitalWrite(LEDgruengelb, HIGH); digitalWrite(LEDgruen, LOW); } else if(voltage> 8){ digitalWrite(LEDrot, HIGH); digitalWrite(LEDgelb, HIGH); digitalWrite(LEDgruengelb, LOW); digitalWrite(LEDgruen, LOW); } else{ digitalWrite(LEDrot, HIGH); digitalWrite(LEDgelb, LOW); digitalWrite(LEDgruengelb, LOW); digitalWrite(LEDgruen, LOW); } }while(digitalRead(StartStop)==0); delay(1000); } void loop() { int akkuAdc = analogRead(A0); float voltage = akkuAdc * (5.0 / 1023.0); voltage = voltage *3.13; if(voltage >10.5){ digitalWrite(LEDrot, HIGH); digitalWrite(LEDgelb, HIGH); digitalWrite(LEDgruengelb, HIGH); digitalWrite(LEDgruen, HIGH); geschwindigkeit= 100; } else if(voltage> 9){ digitalWrite(LEDrot, HIGH); digitalWrite(LEDgelb, HIGH); digitalWrite(LEDgruengelb, HIGH); digitalWrite(LEDgruen, LOW); geschwindigkeit=200; } else if(voltage> 8){ digitalWrite(LEDrot, HIGH); digitalWrite(LEDgelb, HIGH); digitalWrite(LEDgruengelb, LOW); digitalWrite(LEDgruen, LOW); geschwindigkeit= 255; } else{ digitalWrite(LEDrot, HIGH); digitalWrite(LEDgelb, LOW); digitalWrite(LEDgruengelb, LOW); digitalWrite(LEDgruen, LOW); geschwindigkeit= 0; } int IRvr = analogRead(IR1); int IRvl = analogRead(IR2); int IRh = analogRead(IR3); digitalWrite(burstenMotor, HIGH); if(IRvr >500 && IRvl>500){ if(IRh>400){ goto nurdrehen; } digitalWrite(burstenMotor, LOW); digitalWrite(mRechts,LOW); digitalWrite(mLinks,LOW); analogWrite(3,geschwindigkeit); analogWrite(11,geschwindigkeit); delay(1000); nurdrehen: digitalWrite(mRechts,LOW); digitalWrite(mLinks,HIGH); analogWrite(3,geschwindigkeit); analogWrite(11,geschwindigkeit); delay(1000); digitalWrite(burstenMotor, HIGH); } else if(IRvr>350){ digitalWrite(mRechts,HIGH); digitalWrite(mLinks,LOW); analogWrite(3,geschwindigkeit); analogWrite(11,50); } else if(IRvl>350){ digitalWrite(mRechts,LOW); digitalWrite(mLinks,HIGH); analogWrite(3,50); analogWrite(11,geschwindigkeit); } else{ digitalWrite(mRbremse, LOW); digitalWrite(mLbremse, LOW); digitalWrite(mRechts,HIGH); digitalWrite(mLinks,HIGH); analogWrite(3,geschwindigkeit); analogWrite(11,geschwindigkeit); } }