Here we go! Die Step-Werte sind fikitv und nur beispielhaft. Ich habe die Saiten bis auf die E-Saite noch nicht dauerhaft drauf. Geht noch darum die Umdrehungen und die Richtung per Auge zu zählen.
Mein C ist richtig, richtig übel. Alles vergessen was ich vor vielen, vielen Monden gelernt habe weil ich es auch nie gebraucht habe. Sohnemann steht mir als Hilfe gerade auch nicht zur Verfügung. Der Code ist allerdings so simpel, dass ich ihn sogar verstehe und soll möglichst auch so bleiben
Von daher
// Include the AccelStepper library:
#include "AccelStepper.h"
// AccelStepper Setup. Define stepper motor connections and motor interface type.
AccelStepper stepperE(1, 2, 3); // 1 = Driver interface
// Mega Pin 2 connected to STEP pin of Driver
// Mega Pin 3 connected to DIR pin of Driver
AccelStepper stepperA(1, 4, 5); // 1 = Driver interface
// Mega Pin 4 connected to STEP pin of Driver
// Mega Pin 5 connected to DIR pin of Driver
AccelStepper stepperD(1, 6, 7); // 1 = Driver interface
// Mega Pin 6 connected to STEP pin of Driver
// Mega Pin 7 connected to DIR pin of Driver
AccelStepper stepperG(1, 8, 9); // 1 = Driver interface
// Mega Pin 2 connected to STEP pin of Driver
// Mega Pin 3 connected to DIR pin of Driver
AccelStepper stepperB(1, 10, 11); // 1 = Driver interface
// Mega Pin 4 connected to STEP pin of Driver
// Mega Pin 5 connected to DIR pin of Driver
AccelStepper steppere(1, 12, 13); // 1 = Driver interface
// Mega Pin 6 connected to STEP pin of Driver
// Mega Pin 7 connected to DIR pin of Driver
// Variables to store current, previous and move position
int val = 0;
int previous = 0;
int long newval1 = 0;
int long newval2 = 0;
int long newval3 = 0;
int long newval4 = 0;
int long newval5 = 0;
int long newval6 = 0;
void setup() {
stepperE.setMaxSpeed(2000); // Set speed fast enough to follow pot rotation
stepperE.setAcceleration(2000); // High Acceleration to follow pot rotation
stepperA.setMaxSpeed(2000); // Set speed fast enough to follow pot rotation
stepperA.setAcceleration(2000); // High Acceleration to follow pot rotation
stepperD.setMaxSpeed(2000); // Set speed fast enough to follow pot rotation
stepperD.setAcceleration(2000); // High Acceleration to follow pot rotation
stepperG.setMaxSpeed(2000); // Set speed fast enough to follow pot rotation
stepperG.setAcceleration(2000); // High Acceleration to follow pot rotation
stepperB.setMaxSpeed(2000); // Set speed fast enough to follow pot rotation
stepperB.setAcceleration(2000); // High Acceleration to follow pot rotation
steppere.setMaxSpeed(2000); // Set speed fast enough to follow pot rotation
steppere.setAcceleration(2000); // High Acceleration to follow pot rotation
Serial.begin(9600);
}
void loop() {
val = analogRead(A4);
Serial.println(val);// Read Potentiometer current value
if ((val > previous+6) || (val < previous-6)) { // Check that a move of the pot is at least > or < than 6
newval1 = map(val, 0, 1023, 0, 2600); // Map value (200 = 1 stepper shaft rotation)
newval2 = map(val, 0, 1023, 0, -3000); // Map value (200 = 1 stepper shaft rotation)
newval3 = map(val, 0, 1023, 0, 2600); // Map value (200 = 1 stepper shaft rotation)
newval4 = map(val, 0, 1023, 0, -3000); // Map value (200 = 1 stepper shaft rotation)
newval5 = map(val, 0, 1023, 0, 2600); // Map value (200 = 1 stepper shaft rotation)
newval6 = map(val, 0, 1023, 0, -3000); // Map value (200 = 1 stepper shaft rotation)
stepperE.runToNewPosition(newval1); // Move stepper to new position
stepperA.runToNewPosition(newval1); // Move stepper to new position
stepperD.runToNewPosition(newval1); // Move stepper to new position
stepperG.runToNewPosition(newval1); // Move stepper to new position
stepperB.runToNewPosition(newval1); // Move stepper to new position
steppere.runToNewPosition(newval1); // Move stepper to new position
previous = val; // save current value into variable previous
}
}
Viel Freude damit und jetzt schon mal vielen lieben Dank für wahrscheinlich den fehlenden Tipp!
LG
Micha