Hallo liebe Gemeinde,
Ich bin 49 Jahre alt, baue Schiffsmodelle mit möglichst viel Funktionen und hab vor ca. einem halben Jahr damit begonnen den Arduino mit in meine Schffe einzubauen.
Jetzt baue ich gerade die Calypso und hab den Kran funktionsfähig gemacht. Mechanisch funktioniert er und mit meinem geschriebenen Programm läuft er mit einigen Mängeln.
Könnte von Euch mal jemand ein Auge auf meinen Sketch werfen und mir mit Ideen zur Verbesserung weiterhelfen?

Folgende Probleme hab ich bis jetzt:
1. Blink LED blinkt auch weiter wenn Programm durchlaufen ist!
2. Seilposition verschiebt sich leicht ( ich denke das ist ein Problem mit den Delays)!
An der Startfreigabe arbeite ich noch( muss ich noch mit Pullup oder Pulldown Tastern verwirklichen)

Ich habe in dem Sketch auch alle Ideen die Ich schon probiert habe dringelassen, aber auskomplimentiert!
Hier der Sketch
Code:
//Kran*der*Calypso*ansteuern
//1*Stepper*und*1*DC*Motor


#include*<Stepper.h>
#include*"TimerOne.h"
#define*LED*7

int s1 = 4;                          //Starttaster von RC
int s2 = 6;                          //Endschalter Kran in Ruheposition
int value = LOW;
int Kranstart = HIGH;
//const*int*ledPin*=**7;******//*the*number*of*the*LED*pin

//*Variables*will*change:
//int*ledState*=*LOW;*************//*ledState*used*to*set*the*LED
//long*previousMillis*=*0;********//*will*store*last*time*LED*was*updated

//long*interval*=*250;***********//*interval*at*which*to*blink*(milliseconds)

//int*StartKran*=*HIGH;

int SPMU1 = 32;
int RELAISAUF = 2;   // Seil aufrollen
int RELAISAB  = 3;   // Seil abrollen

Stepper myStepper1(SPMU1,10,11,12,13);  //Kran drehen          

void setup() {
{
**pinMode(LED, OUTPUT);
**Timer1.initialize(100000);         // initialize timer1, and set a 1/2 second period
**Timer1.attachInterrupt(callback);  // attaches callback() as a timer overflow interrupt
**Timer1.pwm(9, 512);                // setup pwm on pin 9, 50% duty cycle
**}
**// set the digital pin as output:
**//pinMode(ledPin, OUTPUT);
**
**pinMode(s1,INPUT);      // Signal Kran starten
**pinMode(s2,INPUT);      // Schalter Kran in Ruheposition
**
**pinMode(RELAISAUF,OUTPUT); 
**pinMode(RELAISAB,OUTPUT); 
**
**myStepper1.setSpeed(400);  
}
void callback(){
**{
**// Die LED blinkt unabhängig vom Programmcode in loop()
**digitalWrite(LED, digitalRead(LED) ^ 1); // EXOR invertiert
*
**}
}

void loop()


*
**//digitalRead((s1,HIGH)&&(s2,HIGH) = digitalWrite (StartKran,HIGH));
*// {
*// unsigned long currentMillis = millis();
*
**//if(currentMillis - previousMillis > interval) {
****// save the last time you blinked the LED
***// previousMillis = currentMillis;  
****// if the LED is off turn it on and vice-versa:
****//if(ledState ==LOW);
**//  ledState =((ledState == LOW)? HIGH : LOW);
****//ledState = HIGH;
****//else
****//ledState = LOW;
****// set the LED with the ledState of the variable:
***// digitalWrite(ledPin, ledState);
*//}
//}
{
**value*=*digitalRead(s2);
**digitalWrite(Kranstart,value);{
**if (Kranstart,HIGH)  
**
**digitalWrite (RELAISAUF, HIGH);             
**delay(2600);
**digitalWrite (RELAISAUF, LOW);
**delay(2000);
**
**myStepper1.step(-3600);  //Kran ausdrehen (Winkel einstellen)
**delay(2000);           //Warten
**
**digitalWrite (RELAISAB, HIGH);
**delay(13000);                 //Seil ab für 13 sec
**digitalWrite (RELAISAB, LOW);
**delay(20000);
**
**digitalWrite (RELAISAUF, HIGH);
**delay(13000);
**digitalWrite (RELAISAUF, LOW);
**delay(2000);
**
**
**myStepper1.step(3600);  //Kran eindrehen
**delay(3000);
**
**digitalWrite (RELAISAB, HIGH);
**delay(2600);
**digitalWrite (RELAISAB, LOW);
**delay(5000);
**}
**{
*// detachInterrupt (void callback);{
**//  {
*// digitalWrite(LED, digitalRead(LED) ^ 0); // EXOR invertiert
*
**//}
//}
**while(s2,HIGH);
**
}}
Danke schonmal für eure Bemühungen und vielleicht wird mir ja geholfen

Gruß Bodo