Armczbt
November 27, 2019, 8:42am
1
Bonjour,
je travaille sur un projet de scanner 3D et pour le créer j'ai repris la structure d'une imprimante 3D.
Il y aura alors 2 moteurs sur l'axe x(qui auront les mêmes instructions) et un sur l'axe y. Je travailler avec la carte RAMPS 1.4 pour les programmer.
Le problème est que je n'arrive pas à programmer ces moteurs avec un pas particulier. Je veux que les moteur permettent de s'arreter aux différentes positions tout les 5mm...
J'arrive à piloter les moteurs avec des digitalWrite(moteur, HIGH ou LOW) mais je ne sais comment les piloter dans mon cas....
Merci a vous
Bonjour
Pouvez vous poster le code qui ne fonctionne pas
Ainsi que le schéma de câblage
Merci
Armczbt
November 27, 2019, 1:37pm
3
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#define X_MIN_PIN 3
#define X_MAX_PIN 2
#define Y_STEP_PIN 60
#define Y_DIR_PIN 61
#define Y_ENABLE_PIN 56
#define Y_MIN_PIN 14
#define Y_MAX_PIN 15
#define Z_STEP_PIN 46
#define Z_DIR_PIN 48
#define Z_ENABLE_PIN 62
#define Z_MIN_PIN 18
#define Z_MAX_PIN 19
#define E_STEP_PIN 26
#define E_DIR_PIN 28
#define E_ENABLE_PIN 24
#define Q_STEP_PIN 36
#define Q_DIR_PIN 34
#define Q_ENABLE_PIN 30
#define SDPOWER -1
#define SDSS 53
#define LED_PIN 13
#define FAN_PIN 9
#define PS_ON_PIN 12
#define KILL_PIN -1
#define HEATER_0_PIN 10
#define HEATER_1_PIN 8
#define TEMP_0_PIN 13 // ANALOG NUMBERING
#define TEMP_1_PIN 14 // ANALOG NUMBERING
void setup() {
pinMode(FAN_PIN , OUTPUT);
pinMode(HEATER_0_PIN , OUTPUT);
pinMode(HEATER_1_PIN , OUTPUT);
pinMode(LED_PIN , OUTPUT);
pinMode(X_STEP_PIN , OUTPUT);
pinMode(X_DIR_PIN , OUTPUT);
pinMode(X_ENABLE_PIN , OUTPUT);
pinMode(Y_STEP_PIN , OUTPUT);
pinMode(Y_DIR_PIN , OUTPUT);
pinMode(Y_ENABLE_PIN , OUTPUT);
pinMode(Z_STEP_PIN , OUTPUT);
pinMode(Z_DIR_PIN , OUTPUT);
pinMode(Z_ENABLE_PIN , OUTPUT);
pinMode(E_STEP_PIN , OUTPUT);
pinMode(E_DIR_PIN , OUTPUT);
pinMode(E_ENABLE_PIN , OUTPUT);
pinMode(Q_STEP_PIN , OUTPUT);
pinMode(Q_DIR_PIN , OUTPUT);
pinMode(Q_ENABLE_PIN , OUTPUT);
digitalWrite(X_ENABLE_PIN , LOW);
digitalWrite(Y_ENABLE_PIN , LOW);
digitalWrite(Z_ENABLE_PIN , LOW);
digitalWrite(E_ENABLE_PIN , LOW);
digitalWrite(Q_ENABLE_PIN , LOW);
}
void loop () {
digitalWrite(Z_DIR_PIN , LOW);
digitalWrite(Z_STEP_PIN , HIGH);
delay(1);
digitalWrite(Z_STEP_PIN , LOW);
}
Ce code marche pour mes moteurs z mais j'aimerai le modifier pour pouvoir faire tourner les moteurs d'un pas particulier.
Aussi, je n'ai pas de schéma mais voici une photo du montage:
Merci beaucoup
Bonsoir
Vous pouvez utilisé la librairie de Laurentiu Badea :
Arduino library for A4988, DRV8825, DRV8834, DRV8880 and generic two-pin (DIR/STEP) stepper motor drivers - GitHub - laurb9/StepperDriver: Arduino library for A4988, DRV8825, DRV8834, DRV8880 and g...
vous pouvez envoyer des commandes simple :
stepper.move(variable);
En calibrant les pas et microstep /mm
vous pouvez déplacer vos axes avec précision
je l'utilise mais jamais avec des axes simultanés..
@+
Comment allez vous réalise le scan ?
Armczbt
December 2, 2019, 10:09am
6
MErci pour la librairie
Je ne sais pas encore pour le scan... J'ai un captreur IR qui va me renvoyer des distances et donc créeer des points.
ENsuite je ne sais pas quoi en faire....
Merci à vous