Problème Arduino -> Servomoteurs
#1
Posté 03 février 2012 - 10:57
J'ai un petit problème concernant mon projet de TPE:
J'ai commencé à construire un robot sur la même base que votre tutoriel Roby, et j'ai donc fais mon chassis et raccordé l'Arduino aux Servomoteurs.
Mon problème arrive sur le fait que lorsque je code la carte avec le code proposé dans le tutoriel, l'upload se passe bien mais ensuite, les servo se mettent en, route 1 seconde pour ensuite s'arrêter définitivement, et je dois réuploader pour revoir ce mécanisme se faire, mais donc je pense que les servos ne lisent pas les infos que transmettent la carte (j'ai aussi essayé de modifier le code de la carte, mais toujours le même résultat).
J'attends donc vos renseignements si vous en avez concernant mon problème. Merci!
#2
Posté 03 février 2012 - 12:31
Quel servo utilise tu , peux tu mètre une photo ???
Quel alimentation utilise tu pour ton robot ???
Et quel et l'Arduino que tu utilise ???
Peux tu mettre ton programme en page sur le forum , pour l’étudier , et ainsi trouvais ton
problème.
@Cordialement
#3
Posté 03 février 2012 - 03:36
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#4
Posté 03 février 2012 - 04:57
Tu as mis la résistance de shunt ?
#5
Posté 03 février 2012 - 07:57
Voici exactement les servo que j'utilise: http://www.conrad.fr/servo_standard_modelcraft_rs_2_p_50802_52047_834134_489775_FAS
J'utilise aussi la Arduino Duemilanove et pour l'alim j'utilise 4 LR6 pour les servos et une 9V pour la carte
Voici le code utilisé (même que dans le tuto:
#include <Servo.h> #define AVANT 1 #define ARRIERE 0 #define GAUCHE 2 #define DROITE 3 #define SERVOG 1 #define SERVOD 0 #define VMAX 5 Servo servog; Servo servod; int getNeutral(int s) { if(s == SERVOG) return 86; else return 84; } void handleS(int s, int speed) { int tab[6] = {0,1,3,8,10,30}; int pos = getNeutral(s); int acc; if (speed < 0) acc = - tab[abs(speed)]; else acc = tab[speed]; if(s == SERVOG) servog.write(pos += acc); else servod.write(pos -= acc); } void move(int direction) { int m1 = 0, m2 = 0; switch(direction) { case DROITE: m1 = 1; m2 = -1; break; case GAUCHE: m1 = -1; m2 = 1; break; case AVANT: m1 = 1; m2 = 1; break; case ARRIERE: m1 = -1; m2 = -1; break; } handleS(SERVOG, m1*VMAX); handleS(SERVOD, m2*VMAX); } void setup() { servog.attach(10); servod.attach(9); move(AVANT); } void loop() { delay(15); }
@microrupteurman2
J'ai bien vérifié et j'ai apparemment bien raccordé les bons fils au bon endroit dans ma plaque d'essai
@julkien
Je ne vois pas ce que vous voulez dire par la modification des servos, et non je n'ai mis aucune résistance.
#6
Posté 03 février 2012 - 08:19
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#8
Posté 08 février 2012 - 04:29
Indépendament des modifications du hardware, il n'y aurait pas un problème dans le code ?
La fonction setup() fait bouger le/les servos au démarrage puis la fonction loop() est executée mais elle ne fait rien d'autre qu'attendre.
Est-ce que je n'ai pas tout compris ?
#9
Posté 09 février 2012 - 03:09
Bonjour,
Indépendament des modifications du hardware, il n'y aurait pas un problème dans le code ?
La fonction setup() fait bouger le/les servos au démarrage puis la fonction loop() est executée mais elle ne fait rien d'autre qu'attendre.
Est-ce que je n'ai pas tout compris ?
ben oui c'est noramle il n'y pas de fonction appelé dans "void Loop" (mis apart ce delais)
il aurais fallut mettre :
void loop () { delay(15); move(AVANT); }
enfin j'ai pas essayer mais faut pas hesiter a me reprendre si je me trompe !
#10
Posté 14 février 2012 - 02:56
Tu peux en trouver sur gotronic ou robotshop ...
Valentin
Les principes gouvernent les gens honnêtes, les lois gouvernent les gens méchants.
#11
Posté 10 mars 2012 - 04:27
#12
Posté 10 mars 2012 - 04:35
tu sera obliger de les modifier je suis moi meme en train de faire le roby sauf que moi je n'arrive pas a installer ma carte mais j'ai deja modifier mes servo c'est vraimentfacile grace au tuto du forum
A.R.M.I
Autonomous Robotics Mechanics Intelligent
#13
Posté 10 mars 2012 - 05:16
Mais je trouve ça bête de devoir modifier les servomoteurs quand même... Mais si c'est le seul moyen, alors je verrais ce que je peux faire..
Soit tu rachètes des servo en faisant attention qu'ils soient déjà débridés, soit tu débrides les tiens, car dans les servos que tu as, il y a une buté qui empêche celui-ci de tourner à 360.
Mon site internet : http://ferdinandpiette.com/
#14
Posté 10 mars 2012 - 10:54
désoler de te contredir mais sur un servo tu a 2 buter une sur un des engrenage et l'autre dans le potentiometre j'ai eu le tour avec mes servo je les avais refermer mais il faisait toujours 180°Soit tu rachètes des servo en faisant attention qu'ils soient déjà débridés, soit tu débrides les tiens, car dans les servos que tu as, il y a une buté qui empêche celui-ci de tourner à 360.
A.R.M.I
Autonomous Robotics Mechanics Intelligent
0 utilisateur(s) li(sen)t ce sujet
0 members, 0 guests, 0 anonymous users