Pages: [1]   Go Down
Author Topic: comment brancher les 4 sorties d'Arduino au L297!!  (Read 2638 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!
Logged

Belgium
Offline Offline
Jr. Member
**
Karma: 1
Posts: 80
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Gozaki
-----------------------------
www.laboelectronique.be
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Belgium
Offline Offline
Jr. Member
**
Karma: 1
Posts: 80
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

t'as pas du chercher beaucoup... smiley-razz

un  lien en francais :

http://www.positron-libre.com/electronique/moteur-pas-a-pas/circuit-commande-l297.php
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 :-[
Logged

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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;
}
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 : http://www.datasheetcatalog.com/datasheets_pdf/L/2/9/7/L297.shtml

- 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 :

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 !
}
« Last Edit: August 26, 2010, 01:27:28 pm by julien@pobot.org » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Newbie
*
Karma: 0
Posts: 6
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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é ?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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! :-[
Logged

Pages: [1]   Go Up
Jump to: