Hallo liebe Arduianer
,
ich bin momentan am Bau einer Wickelmaschine für Kohlefaserwellen. Es handelt sich um zwei kleine unipolare Motoren die eine Welle zum drehen bringt. Diese Welle wickelt ein CFK Filament in einem definierten Winkel auf. Um diesen Winkel realisieren zu können brauch man einen Läufer der wärend der Rotation der zuvor genannten Welle von Links nach rechts verfährt. Diese Bewegung wird von einem bipolaren Motor ausgeführt.
Hier noch ein Beispiel:
Bis jetzt habe ich ein Programm geschrieben welches auch funktioniert. Sobald ich aber statt den Werten Funktionen eingebe die alles automatisch berrechnen sollen, bewegen sich die Motoren nicht mehr.
Wenn mir jemand helfen könnte wäre ich super dankbar!!
////////////////////////////////////////////////////////////////////
/////////////////////////////Parameter////////////////////////////
///////////////////////////////hier/////////////////////////////////
////////////////////////////einstellen//////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
int Umdrehung=(12);//rpm
int Druchmesser=(20);//mm
int Laenge=(100);//mm
int Winkel=(45);//°
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// currents of up to 750mA
// and voltages up to 30V
#include <AccelStepper.h>
//hier kommt es zu Fehler
int drehzahlW=((Umdrehung/60)*4096);
int drehzahlL=((((Umdrehung*3.14*Druchmesser)/tan(Winkel)/1.5)/60)*200);
int dist=((Laenge/1.5)*200);
//laeufer
#define STEPPER1_DIR_PIN 3
#define STEPPER1_STEP_PIN 2
//welleL
#define HALFSTEP 8
#define motorPin5 4
#define motorPin6 5
#define motorPin7 6
#define motorPin8 7
//welleR
#define HALFSTEP 8
#define motorPin1 8
#define motorPin2 9
#define motorPin3 10
#define motorPin4 11
//def
AccelStepper laeufer(AccelStepper::DRIVER, STEPPER1_STEP_PIN, STEPPER1_DIR_PIN);
AccelStepper welleL(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
AccelStepper welleR(HALFSTEP, motorPin8, motorPin6, motorPin7, motorPin5);
void setup()
{
laeufer.setMaxSpeed(drehzahlL);
laeufer.setAcceleration(300.0);
laeufer.moveTo(dist);
welleL.setMaxSpeed(1000);
welleL.setSpeed(drehzahlW);
welleR.setMaxSpeed(1000);
welleR.setSpeed(drehzahlW);
}
void loop()
{
welleL.runSpeed();
welleR.runSpeed();
if (laeufer.distanceToGo() == 0)
laeufer.moveTo(-laeufer.currentPosition());
laeufer.run();
}