Da es sich anscheinend um eine Demofunktion handelt würde versuchen an der Seilrolle eine Odometriescheibe oder ahnliches Verfahren anzubringen und direkt an der Rolle per Interrupt messen wie viele cm Seil abgerollt/aufgerollt wurden.
Bei ereichen eines vorher definiertem Wert hört die Seilwinde dann auf. Beachtem muss mann das man je nach Drehrichtung addiert oder subtrahiert. Aber da du ja eh Relais ansteuerts sollte es kein Problem darstellen das im programm mit zu erfassen.
Die LED soll/braucht vermutlich nicht so ganz genau im Sekundentakt blinken, dann reicht es hier die millis-Funktion zu nutzen.

Der nachfolgende Code ist für ein openCM9-Board welches auch mit Sketch/Arduino-IDE programmiert werden kann, und muss ggf angepasst werden:
Code:
millis()
 : Returns the number of milliseconds since the Arduino board began running the current program. 
 This number will overflow (go back to zero), after approximately 50 days.
 */

// Variables:
long previousMillis = 0; // will store the last time the LED was updated
int interval = 1000;  // interval at which to blink (in milliseconds)

void setup() {
  // Set up the built-in LED pin as output:
  pinMode(BOARD_LED_PIN, OUTPUT);
}

void loop() {
  // Check to see if it's time to blink the LED; that is, if the
  // difference between the current time and last time we blinked
  // the LED is bigger than the interval at which we want to blink

  if ((int)millis() - previousMillis > interval) {
    // Save the last time you blinked the LED
    previousMillis = millis();

    // If the LED is off, turn it on, and vice-versa:
    toggleLED();
  }
}
Es gibt auch noch andrere Lösungen die wo ein Interrupt alles 50ms ausgelöst wird und dann zwei Werte hochzählt (LED und Winde) und dann jenachdem das Programm abzweigt. Allerdings wird bei einem zeitlichen Ablauf der Seilwinde vermutlich immer wieder das Problem entsehen das die position nicht passt.

Einfache Endanschläge ( auch optische) könnten praktisch auch funktionieren. Allerdings kommt es darauf an wie gut man die hinzugefügt bekommt. Besonders beim Haken senken könnte es problematisch werden.