Salut,
J'ai un problème avec la fonction map, je voudrait l'inclure pour que mon robot aille tout droit, j'utilise des servos pour le faire avancer
Merci de vos réponses
#include <Servo.h>
int capteur1 = 3; // Connecté au Pin 3
int capteur2 = 4;
int capteur3 = 5;
int capteur4 = 6;
Servo servo;
Servo servo1;
Servo servo2;
int pos = 0;
void setup() {
pinMode(capteur1, INPUT);
pinMode(capteur2, INPUT);
pinMode(capteur3, INPUT);
pinMode(capteur4, INPUT);
servo.attach(9);
servo1.attach(10);
servo2.attach(11);
Serial.begin(9600);
}
void loop()
{
if(HIGH == digitalRead(capteur1))
for(pos = 0; pos < 45; pos += 1) // goes from 45 degrees to 0 degrees, he turn right
{
servo.write(45);
delay(15);
}
else Serial.println("Capteur1: BLANC");
delay(1000);
if(HIGH == digitalRead(capteur2))
for(pos = 0; pos < 27; pos+=1) // goes from 27 degrees to 0 degrees, he turn right
{
servo.write(27); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
else Serial.println("Capteur2: BLANC");
delay(1000);
if(HIGH == digitalRead(capteur3))
for(pos = 27; pos>=1; pos-=1) // goes from 0 degrees to 37 degrees
{
servo.write(27); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
else Serial.println("Capteur3: BLANC");
delay(1000);
if(HIGH == digitalRead(capteur4))
for(pos = 45; pos>=1; pos-=1) // goes from 0 degrees to 45 degrees, he turn left
{
servo.write(45); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
else Serial.println("Capteur4: BLANC");
delay(1000);
}
Si j'ai essayé mais il n'avance pas, le sujet n'est pas de savoir s'il est beau ou pas mon code mais je voudrais que mon robot avance et recommence la ligne, j'ai vraiment besoin d'aide
C'est la saison des : " Aidez moi svp c'est urgent pour le bac! "
Pour le bac ne doit ton pas faire un travail personnel ?
Que diront-ils quand ils seront dans une entreprise ? Excusez moi il faut que je consulte des forums d'entraide !
J'ai mis servo.write mais mon robot n'avance toujours pas mais capte la ligne.
#include <Servo.h>
int capteur1 = 3; // Connecté au Pin 3
int capteur2 = 4;
int capteur3 = 5;
int capteur4 = 6;
Servo servo;
Servo servo1;
Servo servo2;
int pos = 0;
int n =0;
void setup() {
pinMode(capteur1, INPUT);
pinMode(capteur2, INPUT);
pinMode(capteur3, INPUT);
pinMode(capteur4, INPUT);
servo.attach(9);
servo1.attach(10);
servo2.attach(11);
Serial.begin(9600);
}
void loop()
{
if(HIGH == digitalRead(capteur1))
for(pos = 0; pos < 45; pos += 1) // goes from 45 degrees to 0 degrees, he turn right
{
servo.write(pos);
delay(15);
}
else Serial.println("Capteur1: BLANC");
delay(1000);
if(HIGH == digitalRead(capteur2))
for(pos = 0; pos < 27; pos+=1) // goes from 27 degrees to 0 degrees, he turn right
{
servo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
else Serial.println("Capteur2: BLANC");
delay(1000);
if(HIGH == digitalRead(capteur3))
for(pos = 27; pos>=1; pos-=1) // goes from 0 degrees to 37 degrees
{
servo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
else Serial.println("Capteur3: BLANC");
delay(1000);
if(HIGH == digitalRead(capteur4))
for(pos = 45; pos>=1; pos-=1) // goes from 0 degrees to 45 degrees, he turn left
{
servo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
else Serial.println("Capteur4: BLANC");
delay(1000);
{
servo1.write(n);
servo2.write(180-n);
}
}
j'ai un robot suieur de ligne, qui fonctionne qu'avec des servos, un servo pour faire la direction et 2 pour faire la "puisssance" (en faite, pour tourner sans interruption), j'ai branché les servos de puissance sur une batterie extérieur mais le fil de commande sur la carte arduino (uno)
Servo.write(0) -------> rotation vitesse maxi dans un sens
Servo.write(180)------> vitesse maxi dans l'autre sens
Si les servos sont montés en sens inverse, de chaque côté , (cas normal), cette commande permet d'avancer (ou reculer!) droit. En réalité il faut ajuster les 2 valeurs au voisinage de 0 et de 180...
Donc pour le diriger il suffit de jouer sur la vitesse à droite OU à gauche.
Je ne comprends pas l'utilité du 3°servo destiné à la direction.
Tu nous files un code à la syntaxe et à l'indentation plus que douteuse.
Tu nous files une fonction sans même l'utiliser dans ton code.
Tu crie à qui veut l'entendre que ton robot n'avance pas.
MAIS
Tu ne nous à toujours pas dit comment ton robot était conçu, l'emplacement des moteurs, l'orientation des moteurs, ...
On ne sait absolument pas quel est ton but final !
Tu utilises un capteurs de : lumière / couleur / autre (rayez la mention inutile) ? Ce serait bien de le préciser tu ne crois pas ?
Avec si peu d'info et un "je m'en foutisme" total (il y a une charte sur ce forum ! J-F tu est bien trop gentil ;)) on ne peut pas te donner de réponses claires.
Pour un projet si "urgent" le minimum c'est de faire le nécessaire pour obtenir des réponses claires rapidement ...
Salut,
J'utilise des line-finder qui utilisent de l'infrarouge.
Les servos sont placés à l'arrière et ils sont sans butés.
Mon but final, d'avoir un programme qui fonctionne et qui fasse rouler le robot