Auteur Sujet: Piloter un moteur pas à pas  (Lu 428 fois)

msport

  • Hero Member
  • *****
  • Messages: 657
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #15 le: octobre 02, 2019, 11:21:09 am »
Version 28BYJ-48 et bouton sur D4.
Cordialement

papytrain

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #16 le: octobre 02, 2019, 05:25:51 pm »
J'ai laissé tombé le programme Locoduino pour le moment.

J'ai chargé le code qui est sur la doc livrée avec le moteur et le driver

#include <HCSR04.h>

#include <Stepper.h>

const int stepsPerRevolution=200;

//for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
int stepCount=0; // number of steps the motor has taken

void setup(){
  // nothing to do inside the setup
 
}

void loop() {
  // read the sensor value:
  int sensorReading=analogRead(A0);
  // map it to a range from 0 to 100:
  int motorspeed = map(sensorReading, 0, 1023, 0, 100);
  // set the motor speed:
  if (motorSpeed > 0){
    myStepper.setSpeed(motorSpeed);
    // step 1/100 of a revolution:
    myStepper.step(stepsPerRevolution / 100;
  }
}

J'ai un message d'erreur sur cette ligne

if (motorSpeed > 0){
"motorSpeed"was not declared in this scope

Tony04

  • Full Member
  • ***
  • Messages: 213
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #17 le: octobre 02, 2019, 05:41:44 pm »
Bonjour papytrain,
une variable est sensible à la casse, il faut donc garder les minuscules et majuscules à leur place.
on déclare motorspeed en minuscule puis plus loin on utilise motorSpeed avec un S majuscule ce qui n'est plus la même variable.
Cordialement
Antoine

msport

  • Hero Member
  • *****
  • Messages: 657
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #18 le: octobre 02, 2019, 06:25:57 pm »
Et il manque la parenthèse ) :

myStepper.step(stepsPerRevolution / 100;

myStepper.step(stepsPerRevolution / 100);


Et apparemment, le nombre de pas/tour du code (200) ne correspond pas au nombre de pas/tour du moteur de l'article (4096).
Est-ce bien le même ?
« Modifié: octobre 02, 2019, 06:32:12 pm par msport »
Cordialement

papytrain

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #19 le: octobre 02, 2019, 06:32:25 pm »
Merci à vous, c'est sympa.

Maintenant j'ai 2 programmes, super!

Je ferai les essais dans quelques jours car je dois m'absenter.

@+

msport

  • Hero Member
  • *****
  • Messages: 657
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #20 le: octobre 02, 2019, 06:47:58 pm »
Avec un moteur 200 pas par tour, pour une plaque tournante de 300 mm de diamètre, soit environ un mètre de circonférence, chaque pas correspond à 1000 mm / 200 = 5 mm, c'est pas génial comme positionnement. Avec 4096 pas, on est a ~ 0,25 mm, c'est beaucoup mieux.
Cordialement

papytrain

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #21 le: octobre 02, 2019, 06:58:28 pm »
En effet. Ma plaque tournante aura un diamètre de 190mm.
Cette plaque se situera sur le niveau + 1 de mon réseau. J'ai déjà une plaque sur le réseau principale qui est une Roco. Je ne voulais pas réinvestir dans une 2ième plaque, vu le prix.
Cette mini plaque du niveau 1 sera faite en impression 3d.

papytrain

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #22 le: octobre 02, 2019, 11:46:19 pm »
Je n'ai pas pu attendre, le programme Locoduino est au top. Encore merci!

Pour l'autre petit programme je le testerai plus tard

@+