Sketch pour piloter un moteur pas à pas avec ATtiny84 et driver A4988Polulu
Ce sketch est inspiré de celui de Mr Meurisse qui l'a conçu pou Arduino UNO. (sur MC hobby)
Je l'ai adapté pour l'At84, voici le shéma :
Voici le sketch, il peut être utilisé pour toutes opération de levage, grues, portique, bossoirs, ancre..etc. Quand on n'a pas la place de mettre un servo, on utilise un micro-moteur pas à pas.
// At84A4988Test.ino --- Commande du Driver A4988 avec At84 -- Le Moujo --11/2020
/* Le croquis utilise 1744 octets (21%) de l'espace de stockage de programmes. Le maximum est de 7552 octets.
Les variables globales utilisent 91 octets (17%) de mémoire dynamique, ce qui laisse 421 octets pour les variables locales. Le maximum est de 512 octets. */
#include <Stepper.h>
#define pinEnable 4 // Activation du driver
#define pinStep 7 // Signal de PAS
#define pinDir 6 // Direction
void setup() {
Serial.begin(9600);
Serial.println("Test A4988");
pinMode( pinEnable, OUTPUT );
pinMode( pinDir , OUTPUT );
pinMode( pinStep , OUTPUT );
}
void loop() {
int i = 0; // position de départ
digitalWrite( pinDir , HIGH); // Direction avant
digitalWrite( pinStep , LOW); // Initialisation de la broche step
for ( i = 0; i < 200; i++) { // Avance de 200 pas
Serial.println( i );
digitalWrite( pinStep, HIGH );
delay( 1000 );
digitalWrite( pinStep, LOW );
delay( 1000 ); //1 seconde
}
// Changer de direction
digitalWrite( pinDir, LOW); // Direction avant
// Refaire 200 pas dans l'autre sens (retour au point 0)
for ( i = 0; i < 200; i++) {
Serial.println( i );
digitalWrite( pinStep, HIGH );
delay( 1000 ); //1 seconde
digitalWrite( pinStep, LOW );
delay( 1000 );
}}
// Fin du programme