aide pour plateaux photo tournant

bonjour à tous,
je suis un petit nouveau dans le monde de l’arduino, je trouve ce monde terriblement intéressant.

je travail actuellement sur un petit projet, une table tournante pour prises de photos (voici un lien ou j’ai trouvé l’idée et le code 360 image capture by roxen)

j’ai suivi les instructions (et repérer une ou deux erreur de broche, que j’ai rectifier dans mon code)
jusque là tout va bien ça fonctionne.

mais pour moi le moteur et trop faible, donc je voudrai faire un dérivé plus puissant.
dans le projet d’origine, c’est un moteur pap et dans le nouveau projet c’est un moteur dc 24v 2A ( que j’ai eu gratos d’ou mon intérêts sur ce moteur :slight_smile: )

les références du moteur http://nidec-ma.de/en/productlist.html?command=selectProducts&id=2219
le driver que je compte utilisé https://www.olimex.com/Products/RobotParts/MotorDrivers/BB-VNH3SP30/
es-ce que le driver sera le bon?
voici une vidéo d’un moteur dc contrôlé comme un moteur pas à pas, regardé à partir de la 7min55sec

le but final serai d’adapter mon code d’origine pap à celui du moteur dc.

voici le code
// This program controls a stepper motor and a camera remote shutter control
// See 360 image capture by roxen

#define STEPS_PER_REV 1600// 400 physical motor steps * 4 substeps from Big EasyDriver
#define NOF_IMAGES 36
int STEPS_PER_IMAGE = STEPS_PER_REV / NOF_IMAGES;

#define TURN_CLOCKWISE_BTN_PIN 2
#define TURN_COUNTERCLOCKWISE_BTN_PIN 4
#define TAKE_PHOTO_BTN_PIN 3
#define RUN_SEQUENCE_BTN_PIN 5

#define CAMERA_SHUTTER_PIN 8

#define STEPPER_DIR_PIN 7
#define STEPPER_STEP_PIN 6

#define STEPPER_DELAY 10 // Adjust to set rotation speed

void setup() {
pinMode(TURN_CLOCKWISE_BTN_PIN, INPUT);
pinMode(TURN_COUNTERCLOCKWISE_BTN_PIN, INPUT);
pinMode(TAKE_PHOTO_BTN_PIN, INPUT);
pinMode(RUN_SEQUENCE_BTN_PIN, INPUT);

pinMode(CAMERA_SHUTTER_PIN, OUTPUT);
digitalWrite(CAMERA_SHUTTER_PIN, LOW);

pinMode(STEPPER_DIR_PIN, OUTPUT);
pinMode(STEPPER_STEP_PIN, OUTPUT);
}

void loop() {
if (digitalRead(TURN_CLOCKWISE_BTN_PIN) == HIGH) {
step(1);
}

if (digitalRead(TURN_COUNTERCLOCKWISE_BTN_PIN) == HIGH) {
step(-1);
}

if (digitalRead(TAKE_PHOTO_BTN_PIN) == HIGH) {
take_photo();
}

if (digitalRead(RUN_SEQUENCE_BTN_PIN) == HIGH) {
for (int i = 0; i < NOF_IMAGES; i++) {
take_photo();
delay(100); // Adjust to not move until picture is taken
step(STEPS_PER_IMAGE);
delay(900); // Adjust to avoid camera buffer overload and let platform settle in new position
}
}
}

void take_photo() {
digitalWrite(CAMERA_SHUTTER_PIN, HIGH);
delay(20);
digitalWrite(CAMERA_SHUTTER_PIN, LOW);
}

void step(int steps) {
if (steps > 0) {
digitalWrite(STEPPER_DIR_PIN, HIGH);
}
else {
digitalWrite(STEPPER_DIR_PIN, LOW);
}

for (int i = 0; i < abs(steps); i++) {
digitalWrite(STEPPER_STEP_PIN, LOW);
digitalWrite(STEPPER_STEP_PIN, HIGH);
delay(STEPPER_DELAY);
}
}

merci de votre aide

mick

mickali:
mais pour moi le moteur et trop faible, donc je voudrai faire un dérivé plus puissant.
dans le projet d'origine, c'est un moteur pap et dans le nouveau projet c'est un moteur dc 24v 2A ( que j'ai eu gratos d'ou mon intérêts sur ce moteur :slight_smile: )

les références du moteur http://nidec-ma.de/en/productlist.html?command=selectProducts&id=2219

bonsoir
La commande d'un PAP pour obtenir un deplacement angulaire donné est plus simple à mettre oeuvre que pour un moteur DC.
il semblerait que ton moteur dispose d'un capteur hall renvoyant 207 impulsions/tour moteur ,enfin je pense , je n'ai pas discriminé sur le DS , si les 207 Imp s'entendent par tour moteur ou par tour de l'axe de sortie (ratio 1/69)