Bonjour,
J'aurais un projet de faire une fraiseuse CNC pour le travail du Bois, j'ai déjà acheté sur le net la carte générique Type Arduino DUE et les contrôleurs des moteurs : TB6560 j'ai récupéré 2 moteurs MINEBEA 23LM-C058-04V.
J'ai fais un premier montage pour tester le bon fonctionnement du Steppe
r.
J'ai utiliser le code issu de ce forum
#include <AccelStepper.h> int INTERUPTEURPIN = 10 ; int Pin_Pot = 0 ; int val_Pot ; int Speed ; unsigned long Val_Read; unsigned long Old_Read; const long Interval = 500; // interval de lecture valeur Potentiométre #define MAXSPEED 1000 #define MAXACCEL 3000 AccelStepper stepper(1, 9, 2); // Pin 9 Step et 2 Direrction void setup() { Serial.begin(115200); //Initialisation de la communication avec la console pinMode(INTERUPTEURPIN, INPUT); digitalWrite(INTERUPTEURPIN, HIGH); //Pullup interne activé stepper.setMaxSpeed(MAXSPEED); stepper.setAcceleration(MAXACCEL); } void loop() { val_Pot = analogRead(Pin_Pot); Speed = map(val_Pot, 0, 1023, -MAXSPEED, MAXSPEED); Val_Read = millis(); if (Val_Read - Old_Read >= Interval) { //Lecture potentiométre tout les "Interval" Serial.print("Valeur Pot : "); Serial.println(val_Pot); // affiche la valeur du potentiomètre Serial.print("Vitesse : "); Serial.println(Speed); // affiche la vitesse Old_Read = Val_Read; } if ( digitalRead(INTERUPTEURPIN) == true ) stepper.setSpeed(Speed) ; else stepper.setSpeed(0); stepper.runSpeed(); }
Mais cela ne fonctionner pas
J'ai modifié ce code en supprimant <AccelStepper.h>
byte enable = 3; byte dirCH = 2; byte stepPin = 9; int numberOfSteps = 10000; byte ledPin = 13; int pulseM = 1000; // 1 microseconds int Steps = 500; // 1 milliseconds - or try 1000 for slower steps int val; int INTERUPTEURPIN = 10 ; int Pin_Pot = 0 ; int val_Pot ; int Speed ; unsigned long Val_Read; unsigned long Old_Read; const long Interval = 1; // interval de lecture valeur Potentiométre void setup() { Serial.begin(115200); Serial.println("Starting StepperTest"); digitalWrite(ledPin, LOW); delay(1000); pinMode(enable, OUTPUT); pinMode(dirCH, OUTPUT); pinMode(stepPin, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(enable, LOW); } void loop() { if ( digitalRead(INTERUPTEURPIN) == true ) { val_Pot = analogRead(Pin_Pot); Serial.print("Valeur Pot : "); Serial.println(val_Pot); // affiche la valeur du potentiomètre Serial.print("Vitesse : "); Serial.println(Speed); // affiche la vitesse} for (int n = 0; n < numberOfSteps / 2; n++) { val_Pot = analogRead(Pin_Pot); Speed = map(val_Pot, 700, 0, 1, 1000); digitalWrite(dirCH, HIGH);//Gauche digitalWrite(stepPin, HIGH); delayMicroseconds(Speed); digitalWrite(stepPin, LOW); delayMicroseconds(Steps * 100); } delay(2000); digitalWrite(enable, LOW); } }
Je ne comprend pas pourquoi la bibliothèques <AccelStepper.h> ne marche pas.
cordialement
jeepee0407