Coucou,
je suis en train de faire un robot suiveur de ligne mais le code me donne mal à la tête. Je n'arrive pas à faire fonctionner le code. J'ai essayé de changer la bibliothèque, mais même en changeant et en mettant à jour, cela ne fonctionne pas.
Je demande de l'aide à vous.
AIDEZ MOI
voici mon code et une capture d'écran du problème
#include "Grove_I2C_Motor_Driver.h"
#include "ChainableLED.h"
#include "Ultrasonic.h"
// default I2C address is 0x0f
#define I2C_ADDRESS 0x0f
#define NUM_LEDS 5
int signalPin = 3;
int signalPin2 = 4;
ChainableLED leds(7, 8, NUM_LEDS);
Ultrasonic ultrasonic(5);
void setup() {
Motor.begin(I2C_ADDRESS);
pinMode(signalPin, INPUT);
pinMode(signalPin2, INPUT);
leds.init();
}
void loop()
{
long RangeInCentimeters;
Serial.println("The distance to obstacles in front is: ");
RangeInCentimeters = ultrasonic.MeasureInCentimeters(); // two measurements should keep an interval
Serial.print(RangeInCentimeters);//0~400cm
Serial.println(" cm");
if(HIGH == digitalRead(signalPin) and HIGH == digitalRead(signalPin2) and RangeInCentimeters > 15)
{
Motor.speed(MOTOR1, -500);
Motor.speed(MOTOR2, 500);
Serial.println("GO");
leds.setColorHSL(0.0, 0.25, 1.0, 0.3);
delay(100);
}
else if (HIGH == digitalRead(signalPin) and LOW == digitalRead(signalPin2) and RangeInCentimeters > 15)
{
Motor.speed(MOTOR1, 100);
Motor.speed(MOTOR2, 100);
Serial.println("Turn R");
leds.setColorHSL(0.0, 0.025, 1.0, 0.5);
delay(100);
}
else if (LOW == digitalRead(signalPin) and HIGH == digitalRead(signalPin2) and RangeInCentimeters > 15)
{
Motor.speed(MOTOR1, -100);
Motor.speed(MOTOR2, -100);
Serial.println("Turn L");
leds.setColorHSL(0.0, 0.025, 1.0, 0.5);
delay(100);
}
else
{
Motor.stop(MOTOR1);
Motor.stop(MOTOR2);
Serial.println("Obstacles");
leds.setColorHSL(0.0, 0.0, 1.0, 0.5);
delay(100);
}
}
// End of file