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

msport

  • Hero Member
  • *****
  • Messages: 941
  • 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: 44
    • 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

  • Sr. Member
  • ****
  • Messages: 331
    • 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: 941
  • 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: 44
    • 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: 941
  • 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: 44
    • 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: 44
    • 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

@+

papytrain

  • Newbie
  • *
  • Messages: 44
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #23 le: juillet 08, 2020, 05:57:14 pm »
Bonjour à tous
Je reviens sur ce sujet, car des soucis. Mon niveau 1 est prêt et après essai d'une loco ce n'est pas le top.
Le pont ne réagit pas pareil à vide qu'avec une loco. Je rappelle la procédure, un appui sur un bouton poussoir et rotation de 180° dans un sens. Un second appui et 180° dans l'autre sens.
Quelle modif faut'il faire dans le programme afin de supprimer l'automatisme de 180° et de faire la rotation manuellement lors de l'appui sur le bouton poussoir.
Le programme est stepper1 ( voir plus haut des messages ) et c'était Msport qui me l'a concocté.
En vous remerciant.
Papy

msport

  • Hero Member
  • *****
  • Messages: 941
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #24 le: juillet 08, 2020, 06:46:35 pm »
Version 2 : deux boutons : bouton sur 4, un sens, bouton sur 5, sens inverse. Par impulsion. Compile mais non testé.
Cordialement

papytrain

  • Newbie
  • *
  • Messages: 44
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #25 le: juillet 08, 2020, 07:03:04 pm »
Est-ce que ce serait possible de faire qu'avec 1 bouton ( que je n'aie pas à tout démonter en me couchant sous le réseau ) Peu importe du sens.
@+

msport

  • Hero Member
  • *****
  • Messages: 941
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #26 le: juillet 08, 2020, 07:29:36 pm »
Le deuxième bouton n'est pas indispensable ...
Cordialement

papytrain

  • Newbie
  • *
  • Messages: 44
    • Voir le profil
Re : Piloter un moteur pas à pas
« Réponse #27 le: juillet 09, 2020, 04:30:30 pm »
Bonjour
Merci
C'est ok.   ;)