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













