Bonjour, je suis actuellement en création d'un programme mais je rencontre un probléme.
Mon but est de, a l'aide d'un moteur et d'un pont en H (12c motor driver), piloter une plaque de compression qui devra compacter une canette et, changer de sens de rotation quant une tension de surintensité sera localiser.
J'aimerais savoir quelle commande utiliser sur arduino pour lancer le moteur dans le sens 1 et, une fois la tension de surintensité localiser changer le sens de rotation.
void MotorDirectionSet(unsigned char Direction)
Description: Adjust the direction of the motors
Direction:can be Forward/Reverse rotating.
exemple tiré de cette page de doc
#include <Wire.h>
void setup(){
Wire.begin(); // join i2c bus (address optional for master)
delayMicroseconds(10000); //wait for motor driver to initialization
}
void loop(){
MotorSpeedSetAB(100,20);
delay(10); // this delay needed
MotorDirectionSet(0b1010); // 0b1010 Rotating in the positive direction
delay(1000);
MotorDirectionSet(0b0101); // 0b0101 Rotating in the opposite direction
delay(500);
}
void setup() {
Wire.begin(); // join i2c bus (address optional for master)
delayMicroseconds(10000); //wait for motor driver to initialization
}
void loop() {
MotorSpeedSetAB(100,100);//when driving a stepper, the speed should be set to 100;
delay(10);
MotorDirectionSet(0b0001);
delay(4);
MotorDirectionSet(0b0011);
delay(4);
MotorDirectionSet(0b0010);
delay(4);
MotorDirectionSet(0b0110);
delay(4);
MotorDirectionSet(0b0100);
delay(4);
MotorDirectionSet(0b1100);
delay(4);
MotorDirectionSet(0b1000);
delay(4);
MotorDirectionSet(0b1001);
delay(4);
}
J'ai lancer le programme, mais les erreurs suivantes sont apparus :
sketch_dec08a:2: error: expected unqualified-id before '...' token
sketch_dec08a.ino: In function 'void loop()':
sketch_dec08a:15: error: 'MotorSpeedSetAB' was not declared in this scope
sketch_dec08a:17: error: 'MotorDirectionSet' was not declared in this scope
Un grand merci pour ton aide et la qualité de tes réponses
le programme que tu m'a envoyé m'a également indiqué quelques erreurs :
sketch_dec08a.ino: In function 'void loop()':
sketch_dec08a:9: error: 'MotorSpeedSetAB' was not declared in this scope
sketch_dec08a:11: error: 'MotorDirectionSet' was not declared in this scope
Dans le code d'exemple ça veut dire insérez ici ce qu'il faut pour que tout marche - par exemple la librairie qui va déclarer la fonction MotorSpeedSetAB ou le code des fonctions
Je viens d‘essayer ce programme, un grand merci ce programme semble fonctionner(compilation reussit).
j‘essaierait de faire fonctionner le moteur quant je l‘aurais à disposition, je te tient au courant :)
par contre, y a pas moyen de baisser la taille du programme. J‘ai l‘habitude de faire des petits programme et travailler sur un programme de 170 lignes me perturbe.
Si il n‘y a pas moyen de changer la taille, je ferait avec, ce n‘est pas un probleme tres important.
Cependant, j‘ai chercher dans le doc de reference mais je n‘ai trouver aucun moyen pour que, à la place de changer le sens apres un temps, le sens change quant le moteur degage une certaine intensite qui sera mesurer a partir d‘un capteur d‘intensite.
Vous pouvez mieux structurer le code - déplacer toutes les fonctions dans un autre onglet de l'IDE et créer un .h référençant les fonctions en extern que vous importez dans votre code
Votre fichier de travail sera "plus petit" - le code des fonctions sera dans l'autre onglet
Je ne sais pas si ça fonctionne mais c'est un peu l'idée, j'ai juste copié collé les trucs à mettre dans le .h et dans le .cpp et dans la partie principale et rajouté les include qui vont bien
La carte est connectée en I2c, je ne vois pas bien ce que vient faire A2 (ou alors quelque-chose m'échappe)
Même si le moteur consomme très peu, on n'a pas (encore) inventé le moteur qui fonctionne sans alimentation.
Tu as raison, de base j'étais sur la broche I2C mais sa ne fonctionnait pas, j'ai chercher des infos sur internet et j'ai vu A2 (j'ai dut mal comprendre). Bien entendu sa ne fonctionne toujours pas.
J'ai oublier de repasser sur la broche I2C aprés ^^
Tout me semble bien brancher, c'est bizarre que sa ne fonctionne pas car le probléme ne semble pas venir du programme.