Horloge imprimé en 3D, Moteur pas à pas

Bonjour à tous,

Je suis entrain de fabriquer une horloge à poser imprimé en 3D.
Celle-ci sera mis en mouvement pas un moteur pas à pas (Nema14), un arduino et un driver ( A4988).

Je vous mettrais par la suite des images de l’horloge et le projet fini, les fichier STEP pour ceux qui souhaite imprimer en 3D ce projet.

J’ai donc besoin d’une rotation précise du moteur pas à pas.
Mais je n’arrive pas à mettre en rotation mon moteur pas à pas.

J’ai suivi différent tuto dont celui là: http://arduino103.blogspot.fr/2013/11/a4988-un-breakout-pour-commander-des.html
Utilisant arduino micro , Moteur Nema 14, un driver A4988 . Le moteur semble bloqué et ne tourne pas.

Des idées, des recommandations, …?

Merci d’avance a la communauté arduino.

bonjour,
mauvais branchement, pas assez de puissance.
il faut plus de détails

Tu es sûr de ne pas avoir inversé des bobines du PAP lors du câblage avec ton driver?

baptiste974:
Le moteur semble bloqué et ne tourne pas.

bonjour
Lorsque tu tiens l'axe entre tes doigts :

  • sans alim : tu arrive à le faire tourner ?
  • avec alim :
    -- c'est bloqué ?
    -- tu detecte des vibrations" ?

Voici ci dessus mon schéma de câblage, (comme tout les tuto Moteur pas à pas bipolaire).

Mon moteur est alimenté en 9v ou 12v (je choisi sur mon alimentation). (le moteur fonctionne sur la datasheep en 10v).
Pour ce qui est bobine de câblage, j’ai vérifié les bobines, et j’ai même inversé le sens j’ai toujours le même problème.

Je ne sens pas de vibrations ni de bruit “électrique” du moteur.
Lorsque je met le programme, rien ne se passe, hormis le fait qu’il semble bloqué. Hors tension l’axe est libre et lorsqu’il est sous tensions avec le programme et le driver… il est bloqué. l’axe est beaucoup plus dur. ( bien sur à la main je le fais tourner, mais il est plus dur sous tension)

A tu fais un pont entre Reset et Sleep du module A4899 ?

Gilbert

Oui j'ai également fais cela.

Je me demande si c'est pas le driver qui est mort/grillé ...
Y a t-il une façon de vérifier mon driver A4988 ?

Essaies avec ce programme A9488_Test en câblant:

D13 sur ENABLE
D9 sur STEP
D8 sur DIRECTION

Ne pas oublier de faire le pont entre RESET et SLEEP

Gilbert

[// --- Commande d'un StepStick/Driver A4988 ----------------------
// A4988_Test.ino
//
// Commande d'un moteur pas-à-pas à l'aide d'un pilote A4988 avec
//     Arduino.
//
// Un projet www.mchobby.be (vente de kit et composant)
// Meurisse D. - Licence CC-SA-BY
//


#define pinEnable 13 // Activation du driver/pilote
#define pinStep    9 // Signal de PAS (avancement)
#define pinDir     8 // Direction 

int pas=200;
int temps=10;

void setup()
{
  Serial.begin(19200);
  Serial.println("Test A4988");
  
  pinMode( pinEnable, OUTPUT );
  pinMode( pinDir   , OUTPUT );
  pinMode( pinStep  , OUTPUT );
  
}

void loop()
 {
   avant();  
   arriere();  
 }
 
 void avant()
 {
  digitalWrite( pinDir   , HIGH); // Direction avant
  digitalWrite( pinStep  , LOW);  // Initialisation de la broche step
  
  // Avance de x pas
  for(int i=0; i<pas; i++){
    Serial.println( i );
    digitalWrite( pinStep, HIGH );
    delay( temps );
    digitalWrite( pinStep, LOW );
    delay( temps );
  } 
  delay(2000);
  }
  
  void arriere()
  {
  // Changer de direction
  digitalWrite( pinDir   , LOW); // Direction avant
  
  // Refaire x pas dans l'autre sens
    for(int i=pas; i>0; i--)
    {
    Serial.println( i );
    digitalWrite( pinStep, HIGH );
    delay( temps );
    digitalWrite( pinStep, LOW );
    delay( temps );
    } 
  
  // Pas de step et pas d'ordre... 
  //   l'axe du moteur est donc bloqué 
  Serial.println("Axe bloque + attendre 3 sec");
  delay( 3000 );
  
  // déblocage de l'axe moteur
  Serial.println("Deblocage axe");
  digitalWrite( pinEnable, HIGH ); // logique inversée
  fin ();
  }
  
 void fin()
 {
  // Fin et blocage du programme
  // Presser reset pour recommander
  Serial.println("Fin de programme");
  Serial.println("Presser reset pour recommander");
  while(1==1);{}
}

Bonjour :o

Mon problème venait, du fais que mon driver était mort.
Donc maintenant j’ai mon mouvement qui fonctionne parfaitement. Cependant j’ai un décalage de plusieurs secondes après 24H.

J’ai donc acheté un module RTC I2c, pour régler ce dernier problème.

Je cherche donc à avoir un signal / impulsion chaque minute par exemple.

Mais jai des problèmes avec cela. Bien évidemment des regardé quantité de tutoriels.

Je m’en remet donc à votre aide. :slight_smile: :slight_smile: :slight_smile:
Je chercher un programme pour ma carte arduino micro qui me donne un ordre au driver du moteur chaques minutes. Oui oui simplement ça… Merci d’avance

Bonjour,
Sur un de mes projets j'utilise la librairie DS3231 et je programme la sortie SQW pour fournir une impulsion toutes les secondes:

#include "DS3231.h"
DS3231 clock;
//init RTC
clock.enableOscillator(true,false,0); //enable 1Hz on SQW output

Dans mon code, je compte alors les impulsions et toutes les 30 impulsions dans mon cas je génère une impulsion de commande du moteur de mon horloge (une horloge Bodet en l'occurence. Le code est opensource ici ). J'utilise aussi les interruptions pour le comptage, mais on peut s'en passer si on ne maitrise pas le truc.

L'autre méthode est de programmer une alarme dans la RTC à t0 + 60s (à refaire à chaque déclenchement d'une alarme pour programmer la prochaine).

Tu prends un quartz d'horloge, un diviseur de fréquence (voir sur sonelec) et tu divises le signal du quartz jusqu'à avoir une impulsion par seconde.

Merci à tous les deux :slight_smile:

Es ce que la méthode de "patg_" peu marcher avec un module du type DS1307 comme celui-ci: DS1307 I2C Real Time Clock Module

Car c'est ce module que je possède.
Merci d'avance

Il faudrait aussi que tu te donnes la peine de lire les datasheets :wink:

Extrait de celle du DS1307:
SQW/OUT (Square Wave/Output Driver) – When enabled, the SQWE bit set to 1, the SQW/OUT pin
outputs one of four square wave frequencies (1Hz, 4kHz, 8kHz, 32kHz). The SQW/OUT pin is open
drain and requires an external pull-up resistor. SQW/OUT will operate with either Vcc or Vbat applied

Donc oui la méthode utilisant le signal de 1Hz sur SQW fonctionne. Mais pas celle utilisant les alarmes car ce circuit ne les gère pas.