Cours:ErB32019 : Différence entre versions
(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.