comment brancher les 4 sorties d'Arduino au L297!!

bonjour,
dans le but de faire la commande d'un moteur pas a pas j'utilise une µC arduino avec la carte de contrôle de moteur pap bipolaire qui utilise les circuit L6203 et L297(http://www.selectronic.fr/upload/produit/fichetechnique/69501M.pdf)... le problème c que j'aie essayé de brancher les sorties de commande de arduino (pin1, pin2, pin3 et pin4) au circuit L297! mais je connais pas où je met telle ou telle sortie... il y a 10 entrées du circuit L297 (clock, reset, Enable, Half/Full, CW/CCW, Control, Home, Sync...) je ne sais quelle entrée j'utilise (je suis perdu!!) :-[
aidez moi SVP c urgent!

:-? Si tu fais un tour dans les datasheets du L297, tu devrais avoir un schéma d'application ....

Gozaki

www.laboelectronique.be

j'ai rien trouvé!!! :-[

t'as pas du chercher beaucoup... :stuck_out_tongue:

un lien en francais :

merci Gozaki,
mon problème est le suivant:
d'un cçoté j'ai une carte arduino avec 4 sortie (pin1 pin2 pin3 et pin4) et de l'autre coté j'ai 10 entrées du kit de commande de moteur (clock, control, half/full, cw/ccw, sync, home, enable, +5v... regradez le lien)
http://www.selectronic.fr/upload/produit/fichetechnique/69501.pdf
je ne sais pas où je branche chaque sortie d'arduino (4 sorties contre 10 entrée!!! :-/) c'est ça ce qui m'embète!!

par exemple:
Stepper stepper(STEPS, 8, 9, 10, 11);

j'ai les ports 8, 9, 10 et 11 comme sorties. si j'ai bien compris on branche chaque sortie à une des 10 entrés du kit de commande (clock, control, half/full, cw/ccw, sync, home, enable, +5v...) mais la quelle on met dans clock ou half/full ou control ou ...etc je suis perdu!!
je suis perdu :-[

tu ne dois pas utiliser la librairie Stepper avec un L297 : elle gère les différents signaux de phase pour aller directement vers des transistors ou un L293, alors que le L297 te débarasse le fait pour toi.

A priori, tu as besoin de clock (pour régler la vitesse via une sortie PWM de l'aRduino) et de cw/ccw (pour le sens de rotation par une sortie tout ou rien). Rajoute enable (pour activer/désactiver et éviter de consommer quand le moteur est immobile, avec une patte tout o rien de l'aRduino) pour plus de sécurité mais ce n'est pas obligatoire.

Pour le reste (home, sync, half/full, control), pas forcément besoin pour le moment donc regarde la datasheet ou Internet pour savoir quelle valeur (masse ou Vcc / 5V) appliquer.

merci Luj06,
je pense que j'aie pas bien compris comment appliquer une commande sur un moteur pas a pas!!..
En fait, mon objectif est de maintenir la stabilité d'un pendule inversé avec un chariot... donc, je voulais commander le moteur pas a pas en fonction de la position angulaire du pendule mesurée par un potentiomètre... je récupère les mesures et en fonction de l'angle mesurée j'applique une commande sur le moteur pour maintenir le pendule à la position d'equilibre (0°)...etc.
pour ce faire, j'ai un kit de commande de moteur pas a pas http://www.selectronic.fr/upload/produit/fichetechnique/69501.pdf et la carte arduino..
je veux savoir s'il est possible de cammander ce système à travers ce kit de commande (voir le liens) ou il y a une autre méthode que je connais pas!!
le code ressemble un peut le suivant:

#include <Stepper.h>

// change this to the number of steps on your motor
#define STEPS 100

// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
Stepper stepper(STEPS, 8, 9, 10, 11);

// the previous reading from the analog input
int previous = 0;

void setup()
{
// set the speed of the motor to 30 RPMs
stepper.setSpeed(30);
}

void loop()
{
// get the sensor value
int val = analogRead(0);

// move a number of steps equal to the change in the
// sensor reading
stepper.step(val - previous);

// remember the previous value of the sensor
previous = val;
}

pas de réponse!!! :-/
j'éspère qqn m'aider!! :-[

Tu utiliserais Stepper avec les pattes 8 - 9 - 10 -11 si tu devais piloter directement les entrées IN1 IN2 des deux L6208 qui sont sur ta carte.

Mais ils ont eu la bonne idée de mettre un L297 devant donc tu ne peux pas utiliser cette librairie mais c'est pas grave. Tu pourras regarder à l'occasion ce qui est dit ici en anglais : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1138310274

La datasheet : L297 Datasheet pdf - STEPPER MOTOR CONTROLLERS - SGS Thomson Microelectronics

  • enable : connecter sur 5v
  • reset : connecter sur 5v
  • half/full : connecter à GND
  • clock : connecter sur patte 2
  • CW/CCW : connecter sur patte 3
  • home : pas utile (c'est un retour d'info, pas une commande)
  • etc.. selon la doc

Ensuite il suffit de faire ce genre de code :

void setup()
{
   // sens de rotation 
   digitalWrite(3,LOW);
}

void loop()
{
   // lancer à vitesse lente
   analogWrite(2,20);
   // attendre
   delay(1000);
   // accélérer
   analogWrite(2,120);
   // attendre
   delay(1000);
   // arrêter
   analogWrite(2,0);
   // attendre
   delay(1000);
   // changer de sens
   digitalWrite(3,HIGH);
   analogWrite(2, 120);
   // etc... amuse toi bien !
}

Merci pour ta reponse Luj06...je vais essayer ça demain! et je te tiendrai au courant!! :smiley:
cordialement.

je voulais te remercier Luj06 pour ton aide!
j'ai fait comme tu ma expliqué et ça marche bien :slight_smile:
@+

C'est un peu hors sujet, mais je vois que tu souhaites utiliser un potentiomètre pour la détection de position du pendule, ne crains tu pas les frottements de ce composant ? un codeur optique ne serait-il pas plus indiqué ?

oui, ta tout a fait raison!
mais comme moi je n'en ai pas de codeur donc je suis obligé d'utiliser un potentiomètre!
voila! :-[