arret d un moteur pas a pas en cours de rotation

Un shield de pilotage pour 4 moteurs à courant continu ou 2 moteurs pas à pas, qui permet une alimentation sur 12V et qui n'utilise que 4 sorties Pwm (sur 6) et 2 entrées analogiques (sur 6) de l'Arduino

arret d un moteur pas a pas en cours de rotation

Message non lude phoebus » Ven 23 Mar 2012 09:39

Bonjour à tous
Je désire arrêter un moteur pas a pas alors qu'il est en rotation.
Voici le programme que j'utilise côté arduino, les instructions de rotation et arrêt sont envoyées depuis un programme java exécuté sur le pc et transmis en série.
Code: Tout sélectionner
/*
  Mega multple serial test
 
 Receives from the main serial port, sends to the others.
 Receives from serial port 1, sends to the main serial (Serial 0).
 
 This example works only on the Arduino Mega
 
 The circuit:
 * Any serial device attached to Serial port 1
 * Serial monitor open on Serial port 0:
 
 created 30 Dec. 2008
 by Tom Igoe
 
 This example code is in the public domain.
 
 */
#include <Wire.h>
#include <snootor.h>

SnootorStep M;



void setup() {
  // initialize both serial ports:
  Serial.begin(9600);
  //Serial1.begin(9600);
Wire.begin();
  M.init(2000,100,1,MOTOR_MODE_HALFSTEP);
}

void loop() {
  // read from port 1, send to port 0:
  M.setMode(MOTOR_MODE_HALFSTEP);
  if (Serial.available()) {
    String phrase="";
    int inByte = Serial.read();
   // while (inByte!=13)
   // {
  //  phrase += char(inByte);
  //  inByte = Serial.read();
  //  }
   
    switch (inByte){
     
      case 'p':
         M.stop();
         M.forward(2000);
   while(!M.stopped()){
      SC.delay(200);
      SC.dump();
    }
      break;
      case 'm':
      M.stop();
         M.back(2000);
   while(!M.stopped()){
      SC.delay(200);
      SC.dump();
    }
      break;
            case 'a':
      M.stop();
         //M.back(2000);
  //SC.delay(8000);
      break;
    }
   delay(250);
   
    Serial.write(inByte);
  }
}

pouvez-vous m'indiquer comment procéder.
Cordialement à tous

Phoebus
Avatar de l’utilisateur
phoebus
 
Messages: 3
Inscription: Ven 23 Mar 2012 09:33

Re: arret d un moteur pas a pas en cours de rotation

Message non lude Lionel » Lun 26 Mar 2012 16:56

Bonjour,

vous serait il possible de détailler un peu plus votre code (commentaires) et le fonctionnement désiré (quelle touche fait quoi ?)

Merci
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: arret d un moteur pas a pas en cours de rotation

Message non lude phoebus » Mar 27 Mar 2012 09:21

Bonjour,
Je désire "piloter" mon moteur à partir d'une application PC écrite en java.
Les instructions envoyées par mon application coté pc sont "m" sens moins du moteur, "p" sens plus du moteur, "a" arrêt du moteur, ces instructions sont envoyées par le port série à l'arduino.
Une instruction "m" ou "p" fait tourner le moteur d'un tour. Coté arduino lorsqu'il reçoit une instruction de rotation il exécute M.forward(2000); pour "p" ou M.back(2000); pour "m".
Tout se passe bien le moteur tourne dans le sens que je désire, ma difficulté est de pouvoir arrêter une rotation par "a" alors que le moteur est en train d’effectuer son tour.
Dans le même cas de figure, initialiser la position de mon effecteur, ici un plateau tournant sur une position angulaire en accostant un capteur.
Le cycle serait :
a ) Lancer une rotation (au moins un tour)
b ) Arrêt de la rotation des la détection de la position angulaire sur le capteur.

Merci pour vos réponses
Cordialement,
Ph M
Phoebus du F.L.A.L.
Météo de LASFAILADES
Avatar de l’utilisateur
phoebus
 
Messages: 3
Inscription: Ven 23 Mar 2012 09:33


Retourner vers Rotoshield

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité