Vielen Dank für die Anregungen, die ich in den Posts gefunden habe.
Nach delay (schlafen, essen, Kinderbesuch und dann Referenzen von AccelStepper lesen und Code neu schreiben )
reagieren auch die Regelpotis.
Zufrieden bin ich mit dem Sketch noch nicht, muss den loop noch aufräumen.
Meine Grundfrage wurde von euch ja bereits in den ersten Antworten erledigt und so wurde mir der Weg gezeigt, den ich einschlagen muss.
Hier jetzt meine erste lauffähige Version ohne Steuertaster
// 20.07.2019 auf COM18
// Version 1.1 step 7on
#include <AccelStepper.h>
#include <EEPROM.h>
#include <LiquidCrystal.h>
LiquidCrystal mylcd(8, 9, 4, 5, 6, 7);
#define LCDdimmer 10
#define Brightness 200
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5
#define DIR 2 // Endstufe: DIR grün
#define STEP 3 // Endstufe: Puls rot
#define ENABLE 12
//#define frei 11
AccelStepper stepper (1, 3, 2); // Driver 1, Step 3, Dir2)
int sens2;
int sens3;
int sens5;
double fake2;
double fake3;
double fake4;
double fake5;
int pitch;
int Laengeneinstellung;
int SpeedPedalSensor=A5; // Sensor Eingang A5 für Speed-Pedal-Regler
int Schalter=4; // Sensor Eingang A4 für Schalter
int SpeedPedalSchalter=3; // Sensor Eingang A3 für Speed-Pedal-Schalter
int LaengenRegler=2; // Sensor Eingang A2 für Längen-Regler
char go ;
char ascii[10]; //--------LCD-Anzeigeformat
int lcd_key = 0; //--------LCD-Buttons
int adc_key_in = 0;
int read_LCD_buttons(){
adc_key_in = analogRead(0);
if (adc_key_in > 1000) return btnNONE;
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 250) return btnUP;
if (adc_key_in < 450) return btnDOWN;
if (adc_key_in < 650) return btnLEFT;
if (adc_key_in < 850) return btnSELECT;
return btnNONE;
}
void setup()
{
Serial.begin(9600);
Serial.println("Diameter");
Serial.println();
pinMode(DIR, OUTPUT);
digitalWrite(DIR,HIGH);
pinMode(ENABLE, OUTPUT);
digitalWrite(ENABLE,HIGH);
pinMode(LCDdimmer, INPUT);
digitalWrite(LCDdimmer, LOW);
mylcd.begin(16, 2);
mylcd.setCursor(0, 0);
mylcd.print("AccelStepper");
mylcd.setCursor(0,1);
mylcd.print(" V1.1");
delay(1500);
mylcd.clear();
mylcd.setCursor(5, 0);
mylcd.print("Soll ");
mylcd.setCursor(14, 0);
mylcd.print("cm ");
mylcd.setCursor(5, 1);
mylcd.print("Rest ");
mylcd.setCursor(14, 1);
mylcd.print("cm ");
delay(2000);
stepper.setMaxSpeed(1);
stepper.setAcceleration(3000.0);
}
void loop()
{
digitalWrite(ENABLE,LOW);
//---------------------loop---analogRead(A2)------LängeneinstellPoti------
sens2 = analogRead(LaengenRegler); // 0-1023 -> 0-300
fake2 = map(sens2, 0, 1023, 265, 0);
mylcd.setCursor(10, 0);
mylcd.print (dtostrf(fake2,3,0,ascii));
//---------------------loop---analogRead(A3)------SpeedPedalSchalter------
//sens3 = analogRead(SpeedPedalSchalter); // 0-1023 -> 0-1
//---------------------loop---analogRead(A4)------Schalter----------------
//sens4 = analogRead(Schalter); // 0-1023 -> 0-1
//---------------------loop---analogRead(A5)------SpeedPedalRegler--------
sens5 = analogRead(SpeedPedalSensor); // 0-1023 -> 0-2500
fake5 = map(sens5, 0, 1023, 3, 2600);
mylcd.setCursor(0,1);
mylcd.print (dtostrf(fake5/10,3,0,ascii));
stepper.setMaxSpeed(fake5*2); //Geschwindigkeit setzen
stepper.setAcceleration(3000.0);
stepper.moveTo(46.9*fake2); //Position setzen (sens2)
//---------------------------------------ENABLE-----------------------------------
if (fake5<4){
go=0;
}
else {
go=1;
}
if (go==0){
digitalWrite(ENABLE,HIGH);
mylcd.setCursor(0,0);
mylcd.print("OFF");
}
else {
digitalWrite(ENABLE,LOW);
mylcd.setCursor(0,0);
mylcd.print("RUN");
stepper.run();
}
}