Bonjour,
Dans le cadre d'un projet scolaire, moi et mes collègues, on a pour but de creer un mini robot sumo.
La tache que j'ai reçue est de de programmer la carte Arduino Uno Rev 3 afin que mes 2 capteurs Sharp GP2Y0A21 soient fixés sur un Servo-moteur et que celui-ci pivote jusqu'a la detection d'un robot adversaire et puis qu'il s'arrete. Et quand le robot adverse est detecté, ma carte est censée calculer la distance et la position du servo-moteur.
Etant novice sur Arduino et sans avoir reçu de cours expliquant le fonctionnement d'Arduino, j'ai pu par mes moyens apprendre a utiliser arduino et j'ai fait un programme mais il ne marche pas.
Pouvez vous m'aider SVP et m'expliquer ou j'ai fait des erreurs et comment jpourrai y remedier ![]()
Merci d'avance
Voici mon programme :
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created
int pos = 0; // variable to store the servo position
int ledPin = 13; // select the pin for the LED
const int maxDist = 75;
const int sensor1Pin = A0;
const int sensor2Pin = A1;
int sensorValue = 0; // variable to store the value coming from the sensor
int sensor1Val = 0;
int sensor2Val = 0;
int servoPos = 0;
int servoRotateL = 0;
void setup()
{
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
myservo.attach(10); // attaches the servo on pin 10 to the servo object
}
void loop()
{
checkRotating();
sensor1Routine();
checkRotating();
sensor2Routine();
}
void checkRotating()
{
if (servoPos >= 180)
servoRotateL = 0;
else
servoRotateL = 1;
}
void sensor1Routine()
{
sensor1Val = analogRead(sensor1Pin);
int dist = getDistance(sensor1Val);
if (dist <= maxDist)
{
if (servoRotateL == 1)
servoPos++;
else
servoPos--;
myservo.write(servoPos);
}
}
void sensor2Routine()
{
sensor2Val = analogRead(sensor2Pin);
int dist = getDistance(sensor2Val);
if (dist <= maxDist)
{
if (servoRotateL == 1)
servoPos++;
else
servoPos--;
myservo.write(servoPos);
}
}
int getDistance(int Val)
{
return (int) (28943.f * pow((float)Val, -1.314));
}