voila je debute dan l arduino,
j'ai bien comprie le code pour gerer la vitesse de boucle entre O et 180°
j'ai bien compri le code de placement de l'angle
mais c est a cette etape que je bug
j'aimerai pouvoir que lors de mon reglage de mon angle de depart (de mon potentiométre 1) fasse le changemet comme mon point de depart de ma boucle
je vous remercie d'avance de votre aide
bonne soirée a vous
Pas bien compris ce que vous dites mais si vous voulez qu’une valeur entière X soit le point de départ d’une boucle il suffit d’écrirefor (int i = X; i <= 180; i++) {...}
Et si X provient d’une lecture du potentiomètre connecté sur A0
int X = analogRead(A0);
X = map(X, 0, 1023, 0, 180);
ceci j'ai bien compris
j'explique mon projet créé une boucle avec un servomoteur avec un potentiométre de vitesse et un potentométre qui gere le point de depart de la boucle
les 2 separe je sais le faire mais comment mettre les 2 ensemble dans l'ecriture c'est la que sa me pause souci
A mon avis il ne faut pas de boucle (for, while) il faut sans doute utiliser millis() et laisser la loop tourner - éventuellement avec une petite machine à état.
voila 2 code ou je n’ai rien inventé
donc la je dit d’allez du point 0 a 180 et 180 a 0
donc il me faut trouver comment dire que 0 peut changer par rapport au potar du 1 er code
corrigez votre post ci dessus et rajoutez les code tags autour du code: [code]`` [color=blue]// votre code ici[/color] ``[/code].
ça doit ressembler à cela:// votre code ici
(faites aussi ctrl-T (PC) or cmd-T (Mac) dans l'IDE avant de copier le code pour qu'il soit indenté correctement)
je te remercie pour t'on retour mon post est modifier
je comprend bien le I=X mais se X comment le dedier au code du 1 er c'est cette logique que j'ai du mal a capté
merci de t'on aide c'est cool
Tu veux que X varie avec la position du potentiomètre il me semble.
Donc tu pourrais peut-être faire une analogie entre ce X et le val que tu as dans le premier code tu ne penses pas?
oui c’est bien sa sauf qu’avec se 1 er potentiometre je change la valeur de mon point 0
donc dans mon potentiometre de vitesse il ne faut pas que j’ecrive
for(pos = 0; pos <= 180; pos += 1)
mais
for(pos = val; pos <= 180; pos += 1)
c’est bien sa?
je debute j’asseye de comprendre
merci de votre aide
bidouilleelec:
Bonjour moonlight59
Pour la 1ère erreur le compilateur vous indique précisement le lieu et la cause de l'erreur :
sketch_dec30a:10:1: error: expected initializer before 'void'
Regardez attentivement la ligne précédente :
int valu
Idem pour la 2ème erreur :
sketch_dec30a:21:1: error: expected unqualified-id before '{' token
Regardez la """ } """ précédente : à quoi sert-elle?
Pour les 3ème à 6ème erreurs , je vous laisse chercher.
Le copier-coller doit se faire avec prudence et attention !
Cordialement,
bidouilleelec
je te remercie pour t'on aide j'avence
j'ai choisi la technique du copier coller pour comprendre la logique (etre sur d'avoir des code bon de base en solo)
j'était conscient que la superposition de code pris a droite et a gauche n'allez pas forcement marché de suite
c'est pour cela que je demande pas qu'on face le code a ma place mais m'orienter dans la reflexion
comme je debute j'ai pence que cette technique est pas trop mal pour comprendre les chose
et oui je sais que le copier collé a c'est limite
encore merci de votre aide je continu a résoudre mais erreur et encore quelque ligne a change et sa sera bon je pense
#include <Servo.h>
Servo myservo;
int potpin = 0; // potar gestion point 0
int val;
int potard = 1; // potar gestion vitesse de boucle
int valu;
void setup()
{
myservo.attach(9);
}
void loop() {
val = analogRead(potpin);
val = map(val, 0, 1023, 0, 180);
myservo.write(val);
delay(15);
}
// code de mouvement
void checkPot() {
valu = analogRead(potard);
valu = map(val, 0, 1023, 100, 20000);
}
for ( pos = val; pos <= 180; pos += 1)
{
checkPot();
myservo1.write(posi);
delayMicroseconds(valu);
}
for ( pos = 180; pos >= val; pos -= 1)
{
checkPot();
myservo1.write(posi);
delayMicroseconds(valu);
}
alors voila il me reste je pense que 1 erreur comme je suis arrivé a la fin du code mais la je la comprend pas
c’est sur la ligne retour
for ( pos = 180; pos >= val; pos -= 1)
j’ai pas d’erreur sur l’allez mais sur le retour oui et la je comprend pas et je vois pas d’erreur de syntax du moin il me semble et la je sèche
void mouvement (int val)
{
int i;
for ( i = val; i <= 180; i += 1)
{
checkPot();
myservo.write(potard);
delayMicroseconds(valu);
}
for ( i = 180; i >= val; i-= 1)
{
checkPot();
myservo.write(potard);
delayMicroseconds(valu);
}
}
deja commençons part la base Bonne année a tous et je vous souhaite a tous de belle ligne de programmation
voila grace a votre aide il a plus d’erreur sur me ligne de programmation et pour sa un grand merci a vous
et maintenant j’attend avec impatience d’etre rentré du travaille pour pouvoir le teste
merci a vous
for ( i = val; i <= 180; i += 1)
{
checkPot();
myservo.write(potard);
delayMicroseconds(valu);
}
for ( i = 180; i >= val; i-= 1)
{
checkPot();
myservo.write(potard);
delayMicroseconds(valu);
}
}
Dans tous les cas il faut poster le code entier.
J’aime bien les variables au nom “parlant”.
Exemple :
potPosition au lieu de potpin
valPosition au lieu de val
potVitesse au lieu de potard
valVitesse au lieu de valu