Page 1 sur 1

arret d un moteur pas a pas en cours de rotation

Message non luPosté: Ven 23 Mar 2012 09:39
de phoebus
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

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

Message non luPosté: Lun 26 Mar 2012 16:56
de Lionel
Bonjour,

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

Merci

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

Message non luPosté: Mar 27 Mar 2012 09:21
de phoebus
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