Cours:ErB32019 : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Page créée avec « =Projet robotique mobile : challenge GEII/GMP= ==Utilisation d'un moteur pas à pas== ===Utilisation du shield CNC=== Ce [http://osoyoo.com/2017/04/07/arduino-uno-cnc-shie... »)
 
m (Utilisation du shield CNC)
Ligne 7 : Ligne 7 :
 
* unz broche pour valider le fonctionnement (stepperEN dans notre code)
 
* unz broche pour valider le fonctionnement (stepperEN dans notre code)
 
Les positions de ces trois broches sont déterminées par le shield.
 
Les positions de ces trois broches sont déterminées par le shield.
 +
Voici le code Arduino correspondant :
 
<source lang=c>
 
<source lang=c>
 
const uint8_t dirY = 6;
 
const uint8_t dirY = 6;
Ligne 38 : Ligne 39 :
 
}
 
}
 
</source>
 
</source>
 +
Il est possible de n'utiliser que la partie électronique de puissance A4988 seule et de faire un circuit pour le relier à un Arduino nano.
 +
 +
Nous étudierons une autre possibilité avec un [https://www.instructables.com/id/Control-DC-and-stepper-motors-with-L298N-Dual-Moto/ L298N].

Version du 21 août 2019 à 20:42

Projet robotique mobile : challenge GEII/GMP

Utilisation d'un moteur pas à pas

Utilisation du shield CNC

Ce shield CNC est en principe dédié aux imprimantes 3D et notre version utilise la commande de puissance A4988. Nous utilisons la partie réservée à l'axe Y. Trois broches sont nécessaires :

  • une broche pour choisir la direction de rotation (dirY dans notre code)
  • une broche pour envoyer les impultions (pulseY dans notre code)
  • unz broche pour valider le fonctionnement (stepperEN dans notre code)

Les positions de ces trois broches sont déterminées par le shield. Voici le code Arduino correspondant :

const uint8_t dirY = 6;
const uint8_t pulseY=3;
const uint8_t stepperEN=8;

uint8_t dir = 0;
void setup() {
  // put your setup code here, to run once:
 pinMode(dirY,OUTPUT);
 pinMode(pulseY,OUTPUT);
 pinMode(stepperEN,OUTPUT);
 digitalWrite(stepperEN,LOW);
 digitalWrite(dirY,dir);
 
}

void loop() {
  // put your main code here, to run repeatedly:
  static uint16_t step=0;
  digitalWrite(pulseY,HIGH);
  digitalWrite(pulseY,LOW);
  delay(5);
  step++;
  if (step>200) {
    step=0;
    dir ^= 1;
    digitalWrite(dirY,dir);
  }

}

Il est possible de n'utiliser que la partie électronique de puissance A4988 seule et de faire un circuit pour le relier à un Arduino nano.

Nous étudierons une autre possibilité avec un L298N.