Lijn volgende auto infrarood sensoren

Hallo allemaal ik heb geprobeerd om een ‘auto’ te maken die dan een lijn volgt. Ik had eerst alle onderdellen afzonderlijk getest met een positief resultaat zodus begin ik aan de opbouw van de wagen voor de wagen heb ik volgende onderdellen gebruikt:

  • arduino uno (een variant van op banggood)
  • motor driver shield L293D
  • DC 3V-6V TT motor. 4x
  • DC 7.4V 2 slot dubbele serie 18650 batterij houder
  • 2 stuks INR18650 3.6V 3500mah batterij
  • infrarood obstakel sensor. 2x
  • 6cm breadboard jumper kabel (diameter zou ik niet kunnen zeggen maar deze zijn redelijk dun)

Dus nu al mijn gebruikte onderdellen te hebben opgesomd, begin ik aan de opbouw van de wagen, zodra de auto ineen stond heb ik eerst getest of hij gewoon vooruit kon rijden na deze code geschreven te hebben en aangepast zodat hij rechtdoor kon rijden was het tijd om de sensoren aan te sluiten en mee in de code op te nemen. Na dit allemaal gedaan te hebben was het tijd voor de grote test ik zet de wagen aan en deze rijdt gewoon rechtdoor en negeert mijn lijn volledig, de afstand van de sensoren wat afgesteld via het ratje vanvoor maar dit bleek ook niets op te lossen. Een paar dagen later wil ik de auto opnieuw testen maar ploft er een motor (vermoed ik dit heb ik nog niet nagekeken)
De code dat ik heb gebruikt is deze ik heb enkel de richtingen van de motors aangepast zodat deze in dezelfde richting reden

//ARDUINO LINE FOLLOWING CAR//

//including the libraries
#include <AFMotor.h>

//defining pins and variables
#define lefts A0
#define rights A1

//defining motors
AF_DCMotors motor1(1, MOTOR12_1KHZ)
AF_DCMotors motor2(2, MOTOR12_1KHZ)
AF_DCMotors motor3(3, MOTOR34_1KHZ)
AF_DCMotors motor4(4, MOTOR34_1KHZ)

void setup() {
//setting the speed of the motors
motor1.setSpeed(120);
motor2.setSpeed(120);
motor3.setSpeed(120);
motor4.setSpeed(120);
//declaring pin types
pinMode(lefts,INPUT);
pinMode(rights,INPUT);
//begin serial communication
Serial.begin(9600);

}
void loop (){
//printing values of the sensors to the serial monitor
Serial.println(analogRead(lefts));
Serial.println(analogRead(rights));
//line detected by both
if(analogRead(lefts)<=400 && analogRead(rights<=400)){
//stop
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);

}
//line detected by left sensor
else if(analogRead(lefts)<=400 && !analogRead(rights)<=400){
//turn left
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);

}
//line detected by right sensor
else if(!analogRead(lefts)<=400 && analogRead(rights)<=400){
//turn right
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor3.run(FORWARD);

}
//line detected by none
else if(!analogRead(lefts)<=400 && !analogRead(rights)<=400){
//stop
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
}

De infrarood sensoren werken wel want deze heb ik achteraf nog is afzonderlijk getest. Wel heb ik op het motor shield de pins nog moeten solderen waar de sensoren op aangesloten zijn maar dit zag er ook prima uit in mijn ogen dus weten jullie misschien de oorzaak waaraan het zou kunnen liggen dat de auto de lijn negeert ? Ik hoop jullie voldoende informatie te hebben gegeven over mijn project.

Alvast bedankt

Ik weet het niet (of toch wel ?)
.
Maar ik zie wel dat je voor dat je iets gaat aansturen, eerst de sensor nog een keer een waarde laat lezen.
Wat je dus gaat doen, heeft niets te maken met wat je sensor daarnet naar de seriële monitor heeft gestuurd, en ook niets met wat er bij de vorige stap werd gecontroleerd.
Hoe weet je of wat de sensor kan zien niet is veranderd sinds je een waarde naar de seriële monitor stuurde ?

Ik zou eerst de sensoren laten kijken (letterlijk), de gevonden waarde tijdelijk opslaan, en daar dan mee gaan werken om te zien of er iets gedaan moet worden.
Dus per keer dat jouw loop doorlopen word, 1 keer beide sensoren uitlezen.

Graag wanneer je code wil laten zien, deze in [code] [/code] tags zetten.