Rail Motorisé Moteur pas à pas + interrupteur de fin de course

Bonjour,

Merci pour votre retour et votre test, je vais tester de mon côté.
J'avais lu le fait qu'il fallait inversé les ports dans le code mais je n'ai pas fait attention sur ce code.

Concernant l'alimentation du moteur n'est-il pas possible de l’alimenter via la carte UNO? J'aimerais éviter d'avoir 2 alimentations sur mon montage.
Est-ce que je peux alimenter le moteur et le potentiomètre sur les même ports de la carte (en faisant une dérivation sur ma breadboard?
ou la carte UNO et le moteur avec la même alimentation (alimentation externe)?

Merci

PS: je n'utilise pas un adaptateur pour l'alimentation mais une carte d'alimentation. Je ne sais pas si cela change quelque chose au montage de l'adaptateur 5V montré sur le montage ci-dessus.

Merci

Alléluia, Ça fonctionne !! Merci à vous.

Il ne me reste plus qu'a voir si je peux tout alimenter avec une seul alimentation.
j'avais acheté une carte UNO car il y avait déjà une prise d'alimentation incluse mais si j'utilise une carte d'alimentation externe et que je peux brancher la carte UNO ou NANO dessus, je passerais peut-être sur une NANO.

Je cherchais aussi à avoir un bouton permettant d'arrêter le chariot, le bouton de mon module d'alimentation me permet de le faire (j'attendrais que le chariot soit au centre du rail).

Je m'amuserais par la suite à ajouter un bouton et code permettant de centrer la lampe via un nombre de pas calculé probablement.

Merci

non c'est une mauvaise idée; votre Arduino n'est pas une alimentation, les petites pistes sur la carte ne sont pas prévues pour délivrer des courants forts. C'est un micro-contrôleur.

mais vous pourriez avoir une alim 5V qui se sépare en 2 et va d'un côté au moteur et de l'autre à l'arduino (avec éventuellement des condensateurs pour protéger l'arduino du bruit créé par le moteur)

ce n'est pas très dur de rajouter des boutons maintenant que vous avez la bibliothèque Toggle installée

voici avec un bouton d'arrêt (le bouton rouge) par exemple

vous appuyez pour démarrer ou pour arrêter le mouvement (il continue dans le même sens sauf si vous avez appuyé entre temps sur un des fins de course)

click to see the code
#include <Stepper.h>
#include <Toggle.h>

const int stepsPerRevolution = 200;  // à adapter
Stepper moteur(stepsPerRevolution, 8, 9, 10, 11);

const byte pinFdcDroite = 2;
const byte pinFdcGauche = 12;
const byte pinBoutonStop = 3;
enum Etat {ARRET, CW, CCW};
Etat etatMoteur = ARRET;
Etat ancienEtat = CW;

const byte potPin = A0;
unsigned long attente, dernierPas;
unsigned long maxAttente = 200;
unsigned long minAttente = 2;

Toggle fdcDroite, fdcGauche, boutonStop;

void setup() {
  Serial.begin(115200);
  fdcDroite.begin(pinFdcDroite);
  fdcGauche.begin(pinFdcGauche);
  boutonStop.begin(pinBoutonStop);
}

void loop() {
  unsigned long nouvelleAttente = map(analogRead(potPin), 0, 1023, maxAttente, minAttente);
  if (nouvelleAttente != attente) {
    attente = nouvelleAttente;
    Serial.print("∆t = ");  Serial.println(attente);
  }

  boutonStop.poll();
  if (boutonStop.onPress()) {
    if (etatMoteur == ARRET) etatMoteur = ancienEtat;
    else {
      ancienEtat = etatMoteur;
      etatMoteur = ARRET;
    }
  }

  switch (etatMoteur) {
    case ARRET:
      break;

    case CW:
      if (attente < maxAttente && millis() - dernierPas >= attente) {
        moteur.step(1);
        dernierPas = millis();
      }
      break;

    case CCW:
      if (attente < maxAttente && millis() - dernierPas >= attente) {
        moteur.step(-1);
        dernierPas = millis();
      }
      break;
  }

  fdcDroite.poll();
  fdcGauche.poll();
  if (fdcDroite.onPress() || fdcGauche.onPress()) {
    switch (etatMoteur) {
      case ARRET: if (ancienEtat == CW) ancienEtat = CCW; else ancienEtat = CW; break;
      case CW: etatMoteur = CCW; break;
      case CCW: etatMoteur = CW; break;
    }
  }
}

Bonjor J-M-L

Dans cette version, il y a toujours le problème du brochage du moteur, inverser la paire du milieu.

Stepper moteur(stepsPerRevolution, 8, 9, 10, 11);
en
Stepper moteur(stepsPerRevolution, 8, 10, 9, 11);

Il est à noter, que c'est aussi le cas avec des exemples de la bibliothèque Stepper.

Cordialement
jpbbricole

Bonjour pauloproject

Peut être pas directement depuis la carte, c'est pas bon.
Puisque tout est en 5V, moteur et Arduino, tu peux prendre un câble USB que tu "éclates"
image
Le noir sur GND de l'Arduino et sur le module moteur et le rouge sur 5v de l'Arduino et sur le + du module moteur.
Un condensateur de quelques centaines de uF ne serait pas de trop.

Cordialement
jpbbricole

oui c'est pour le wokwi

c'est pour cela que j'avais dit

Bonjour,

Je reviens sur mon projet concernant l'alimentation. Je veux être sûre que mon montage est sans risque et trouver comment avoir 1 seul alimentation pour le tout.
J'ai illustré mon montage actuel pour tester le codage et en le dessinant je me suis dit que j'étais un peu dans la configuration initial pour laquelle jef59 conseillait de mettre des diodes anti-retour (les switch étant reliés au même GND).

Ici j'alimente la carte UNO par USB ou jack et le moteur avec l'autre alimentation.

Dans ce montage je n'ai plus que 2 switch donc pas de risque de court-circuit.

1er question: En l'état ce montage est-il a risque?

2nd question: Comment alimenter le tout avec 1 seul alimentation?

PS: le code utilisé est celui jpbbricole ci-dessus.

Merci

Bonjour pauloproject

Tout est en 5V, comme indiqué ici.
image

Cordialement
jpbbricole

attention cependant à ne pas faire passer trop de puissance dans le rail de la la breadboard.

un seul stepper 28BYJ-48 ça devrait être OK mais il ne faut pas rajouter de consommateurs gourmands (sous 5V / 1A ça devrait aller mais faut pas dépasser 1A pour être raisonnable)

Bonsoir,

-NON, ici pas besoin de diode anti retour.
-Si les entrées BP sont en INPUT-PULLUP, pour moi, c'est OK.
-Pour les alims, je n'ai pas suivis en combien de volts devaient être alimenter les moteurs.

Moi j'aime bien alimenter par la prise jack.
Je sais, le rendement, etc ..., bref, j'utilise de vieilles alim à découpages de PC (toure ou portable) ou une batterie, une pile ET une prise jack, ça a un aussi bon rendement que le 5V USB piqué sur un PC allumé, puis ça évite des erreurs de câblage.

Hello Jef,

Ok, Nikel merci.

il y a qu'un moteur 28BYJ-48 qui s'alimente en 5v via le module UNL2003.
j'avais initialement prévus d'utiliser la prise jack et j'ai acheter la carte UNO pour cette raison.
Mais avec mon montage actuelle je dois alimenter ma carte UNO et mon moteur avec 2 alim différente.

Je vais passer sur une NANO pour gain de place et ajouter une carte d'alimentation externe (jack et USB) pour pouvoir alimenter le moteur indépendamment de la carte NANO.
Je souhaite alimenter la NANO par la même source d'alimentation.
En gros tout avec la même alimentation sur secteur ou USB.

1 Like

Ce n'est pas tout à fait cela.

Le kit moteur + carte ULN a (selon les schémas du fabricant)
-Deux broches VCC sur J1 pour alimenter l'ULN, et les LED (sur la carte du kit, tous les VCC sont reliés) que tu peux relier au 5V Arduino (pin27 Arduino, voir + bas).
-Une broche VM sur J1, pour alimenter indépendemment la partie puissance de moteur (aussi en 5V, c'est ton idée).

pj-1126(2).pdf (39,7 Ko)

(C'est la Doc de Go Tronic sur la carte du kit moteur).

Ensuite, l'alimentation Arduino, tu peux le fournir par 3 moyens différents selon la Doc Arduino

"Arduino® Nano

Power:
1/ Mini-B USB connection
2/ 7-15V unregulated external power supply (pin 30)
3/ 5V regulated external power supply (pin 27)"

Le 2/, c'est l'équivalent de la prise jack, il faut au MINI, 7V, et c'est un régulateur interne qui fabrique du 5V.

Le 3/, c'est du 5V REGULÉ que tu aménne toi même de l'extérieur, il remplace le travail du régulateur interne.

A mon avis, tu ne peux pas utiliser le 2/ et le 3/ ensemble, mais pas de probléme si tu fais 1/ + 2/ ou 1/ + 3.

J'eviterais d'alimenter moteur (VM) et 3/ sur la même alim pour éviter de polluer le 5V regulé alimentant la carte Arduino.

Donc si tu ne veux que 1 seul alim ET l'USB (mais l'USB pas en permanence, j'utiliserais une alim 7V regulée alimentant Arduino en 2/ et (kit moteur + ULN) selon 2/

Tu peux t'orienter vers les "convertisseur DC/DC Buck"
C'est des abaisseurs de tension réglables, par exemple, tu mets 12V DC en entrées, et tu régle 7V DC E'en sortie, pour alimenter Arduino et kit moteur.

Ce n'est qu'un exemple

Et le "tout" de cette proposition n'est pas la solution unique, c'est une solution.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.