Pages: [1]   Go Down
Author Topic: romeo et moteur pas a pas  (Read 886 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,
j'ai une carte Romeo 1.1. j'arrive à faire tourner des servos et un moteur pas à pas à aimants permanents sans problème. Là où ça se corse : quand j'utilise ce moteur : http://fr.nanotec.com/actuateurs_lineaires_%20L2018.html. La vis sans fin ne tourne pas ou bien pas à la bonne vitesse, elle saute des pas et même parfois elle part dans un sens puis dans l'autre... l'alimentation : 1 batterie 12V de quad ou une alim 12V 2.5A (j'ai retiré le jumper 5). pour le moment je n'ai pas d'alim 48V. Le moteur chauffe mais je peux encore le tenir. Les connections : M1 : 1ère bobine, M2 : 2e bobine (vérifié à l'ohmmètre). A noter que d'autres moteurs pas à pas hybrides me donnent aussi des soucis.

le code :
Code:
#include <Stepper.h>
Stepper myStepper(200,4,6,5,7); // j'ai essayé avec d'autres pas/rev. et aussi essayé l'ordre des pins 4,5,6,7, qui ne marche pas du tout.

void setup() {
  myStepper.setSpeed(10); // j'ai essayé jusqu'à 300
}
void loop() {
    myStepper.step(1); // j'ai essayé d'autres valeurs, ce matin ça marchait avec celle là, cet après midi plus...
//j'ai essayé les delays et delaymicroseconds
}

Merci pour votre aide...

* L2018S0604-T3.pdf (193.13 KB - downloaded 10 times.)
* romeo guide util.pdf (2279.14 KB - downloaded 20 times.)
« Last Edit: December 13, 2012, 07:35:29 am by Jean-François » Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3230
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mettre le code entre les balises code, le bouton avec le # (en éditant le message ça marche aussi).
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci Jean François.

Code:
#include <Stepper.h>
Stepper myStepper(200,4,6,5,7); // j'ai essayé avec d'autres pas/rev. et aussi essayé l'ordre des pins 4,5,6,7, qui ne marche pas du tout.

void setup() {
  myStepper.setSpeed(10); // j'ai essayé jusqu'à 300
}
void loop() {
    myStepper.step(1); // j'ai essayé d'autres valeurs, ce matin ça marchait avec celle là, cet après midi plus...
//j'ai essayé les delays et delaymicroseconds
}
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3602
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A mon avis c'est un problème de branchement, il s'agit d'un moteur bipolaire, si tu ne fais pas la séquence dans le bon ordre ça fout la m****e. Crées un programme avec différentes configuration qui change toutes les 10 secs, il devrait y avoir une combinaison qui marche
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci B@tto : j'avais déjà essayé ça aussi, sans succès : j'obtiens 4 jeux de combinaisons qui marchent de la même façon
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai trouvé une solution à mon problème, le moteur tourne rond et sans résonance, ne saute pas de pas, la tige filetée a un mouvement égal, j'arrive à faire varier la vitesse dans certaines limites que je voudrais pouvoir élargir : au dessous de 800 microsec. le moteur ne tourne plus...

Code:
int A = 4; int ANTIA = 5; int B = 6; int ANTIB = 7; // marche G a D
//int A = 7; int ANTIA = 6; int B = 5; int ANTIB = 4;  // marche D a G

void setup() {               
  pinMode(A, OUTPUT); pinMode (ANTIA, OUTPUT); pinMode (B, OUTPUT);  pinMode (ANTIB, OUTPUT);
}

void loop() {
 
digitalWrite(A, HIGH); digitalWrite(ANTIA, HIGH);
digitalWrite(B, HIGH);  digitalWrite(ANTIB, LOW);
 delayMicroseconds(800);    // STEP 1
digitalWrite(A, LOW);  digitalWrite(ANTIA, HIGH);
digitalWrite(B, HIGH);  digitalWrite(ANTIB, LOW);
  delayMicroseconds(800);   //STEP 2
digitalWrite(A, LOW);  digitalWrite(ANTIA, HIGH);
digitalWrite(B, HIGH);  digitalWrite(ANTIB, HIGH);
  delayMicroseconds(800);   // STEP 3
digitalWrite(A, HIGH); digitalWrite(ANTIA, HIGH);
digitalWrite(B, HIGH);  digitalWrite(ANTIB, HIGH);
  delayMicroseconds(800);   // STEP 4
}
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3602
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Suivant les technologies de moteur, l'interface utilisée et la qualité du moteur il est normale d'avoir une vitesse limite qui semble souvent faible comparer à un moteur c.c. Tu peux essayer d'ajouter les demi-pas, par exemple si tu une sequence comme ça :
1100
0110
0011
1001

Tu peux faire :

1100
1110
0110
0111
0011
1011
1001

Normalement ça donne plus de couple au moteur aussi
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci B@tto, effectivement ça marche bien !
Logged

Pages: [1]   Go Up
Jump to: