Je viens à vous après plusieurs heures de recherche sur différents forums, en vain.
En fait, nous aimerions piloter un moteur à courant continu à vitesse constante qui doit être positive, puis après une temporisation, être à la même valeur mais cette fois-ci du côté négatif (pour ouvrir et fermer un tiroir).
Nous avons donc réalisé un pont en H pour alimenter le moteur dans les deux sens (avec un L298), mais niveau codage Arduino, ça coince un peu...
En effet, nous ne savons pas comment définir la valeur de la vitesse, car le seul tuto que j'ai trouvé qui est bien expliqué, utilise un potentiomètre. Après nous alimentons le moteur en 1.6 V directement, donc est-ce qu'il suffit de faire comme une sorte de fonction logique avec le pont pour définir le sens ?
Désolé si je suis totalement à côté de la plaque, mais merci aux personnes qui pourront nous aider !
Bonjour,
En fait c'est un peu le même principe qu'avec un potentiomètre non ?! Le vitesse du moteur est fonction de la valeur que le potentiomètre renvoi.
Uzuma:
Bonjour,
En fait c'est un peu le même principe qu'avec un potentiomètre non ?! Le vitesse du moteur est fonction de la valeur que le potentiomètre renvoi.
On est deux à travailler sur cette partie électronique et ce n'est pas moi qui ai réalisé le montage purement électrique, et j'ai l'impression qu'il n'y a pas de capteur à proprement parlé, sauf si celui-ci est intégré au L298...
Mais pourquoi a-t-on besoin d'un capteur sachant que comme on va alimenter le moteur avec une tension constante, la vitesse de celui-ci va rester constante non ?
PI_SI:
On est deux à travailler sur cette partie électronique et ce n'est pas moi qui ai réalisé le montage purement électrique, et j'ai l'impression qu'il n'y a pas de capteur à proprement parlé, sauf si celui-ci est intégré au L298...
Mais pourquoi a-t-on besoin d'un capteur sachant que comme on va alimenter le moteur avec une tension constante, la vitesse de celui-ci va rester constante non ?
Non.
Pour exemple, avec la même tension d'alimentation ton moteur tournera plus vide à vide qu'en charge.
Oui jusque-là ça reste logique ^^
Mais on ne change pas la charge non plus, tout restera constant, c'est juste le sens de rotation qui va changer. Donc on peut pas se débrouiller sans capteur ?
PI_SI:
Oui jusque-là ça reste logique ^^
Mais on ne change pas la charge non plus, tout restera constant, c'est juste le sens de rotation qui va changer. Donc on peut pas se débrouiller sans capteur ?
Bien sur que ça va marcher mais dans ce cas, mais il ne faut pas parler de vitesse constante. Dans une question les termes utilisés ont parfois leurs importance.
Dans ce cas il y a fort à parier que la vitesse de déplacement du tiroir ne sera pas constante mais dépendra de la résistance mécanique du dispositif à sa position donnée !!!
La vitesse sera constante de loin et par temps de brouillard
J'ai déjà jeté un coup d'oeil sur ce lien, mais le problème est que dans ce cas, il utilise un "breakoutboard L298", et comme nous on a juste le composant et des diodes rajoutées à la main, je sais pas si le système est identique ou pas (vu que j'y connais pas grand chose)...
Cela ne me pose pas de problème, il faut bien apprendre "le poids des mots"
PI_SI:
J'ai déjà jeté un coup d'oeil sur ce lien, mais le problème est que dans ce cas, il utilise un "breakoutboard L298", et comme nous on a juste le composant et des diodes rajoutées à la main, je sais pas si le système est identique ou pas (vu que j'y connais pas grand chose)...
Moi je proposais ceci : Comme avec un potentiomètre, la vitesse varie en fonction de la valeur reçu, l'on pourrait fixer la valeur à laquelle l'on voudrait que le moteur tourne. Pour avoir une vitesse constante en fonction de la charge, l'on peut faire des tests. Et là encore le poids de la charge ne varie pas.
/*
Commande d'un L293E - circuit pont H
via arduino
*/
int pinInput1 = 3; // Commande de sens, Input 1
int pinInput2 = 4; // Commande de sens, Input 2
int pinPower = 9; // Commande de puissance, Output Enabled
void setup(){
pinMode( pinInput1, OUTPUT );
pinMode( pinInput2, OUTPUT );
// Pas besoin de pinMode pour commande PWM
}
void loop(){
// Premier essai
// Tourne un peu. I=150 mA
TournerDroite( 90 ); // 180 est la puissance PWM
delay(5000);
TournerGauche( 180 );
delay(5000);
ToutDroit();
delay(5000);
// Deuxieme essais
// Tourne a fond. I=180ma
TournerDroite( 210 );
delay(5000);
TournerGauche( 210 );
delay(5000);
ToutDroit();
delay(5000);
}
void TournerDroite( int powerRate ){
digitalWrite( pinInput1, HIGH );
digitalWrite( pinInput2, LOW );
analogWrite( pinPower, powerRate );
}
void TournerGauche( int powerRate ){
digitalWrite( pinInput1, LOW );
digitalWrite( pinInput2, HIGH );
analogWrite( pinPower, powerRate );
}
void ToutDroit(){
digitalWrite( pinInput1, LOW );
digitalWrite( pinInput2, LOW );
analogWrite( pinPower, 0 );
}
Du coup je me suis inspiré du lien de tout à l'heure pour faire mon code, vous pouvez me donner votre avis dessus svp ?
const int enable=3; //Connecté à Arduino pin 3(sortie pwm)
const int in1=2; //Connecté à Arduino pin 2
const int in2=4; //Connecté à Arduino pin 4
/*
Dans le setup
*/
//Configurer les broches comme sortie
pinMode(enable,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
digitalWrite(enable,LOW);// Empêche le moteur de tourner
/*
Dans le void d'action
*/
// Sens de rotation du moteur
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
analogWrite(enable,75); // faire tourner le moteur à environ 30% des 5V d'alim, donc environ 1.6V
delay (2000); // le faire tourner pendant 2 secondes
digitalWrite(enable,LOW); //arrêter le moteur
// Sens de rotation du moteur inversée
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
analogWrite(enable,75); // faire tourner le moteur à environ 30% des 5V d'alim, donc environ 1.6V
delay (2000); // le faire tourner pendant 2 secondes
digitalWrite(enable,LOW); //arrêter le moteur
@Uzuma : C'est très généreux de ta part de proposer une solution mais j'ai l'impression que PI_SI a plein de composants dans la main et il ne sait pas quoi faire avec
Il faut qu'il nous donne sa situation actuelle pour voir ce que l'on peut faire.
Comme infobarquee a cassé la boule de cristal, on ne peut plus pas voir sa paillasse.
Dans ce cas-là, il faudra que j'attende que mon ami revienne m'apporter le moteur qu'il a fixé, car je l'ai pas en ma possession pour le moment
Mais est-ce que je pourrais au moins avoir un indice sur la validité du code ou si je risque de faire totalement cramer mon pc à cause d'une erreur de code ? ^^'
PI_SI:
Dans ce cas-là, il faudra que j'attende que mon ami revienne m'apporter le moteur qu'il a fixé, car je l'ai pas en ma possession pour le moment
Disposes-tu de 2 diodes led et 2 résistances entre470 ohms et 1 kohms ?
PI_SI:
Mais est-ce que je pourrais au moins avoir un indice sur la validité du code ou si je risque de faire totalement cramer mon pc à cause d'une erreur de code ? ^^'
Malheureusement il a gardé tout le matériel avec lui, j'ai que la carte Arduino avec la plaque reliée, donc aucun moyen de tester quoi que ce soit, il va falloir l'attendre... :~
Bonjour,
Avez-vous essayé le moteur tout seul ?
Si tu regardes la datasheet, il est possible de faire tourner votre moteur (en mettant les bonnes pins au bon niveau) sans la carte Arduino. Avez-vous fait ce genre de test ?
@+