Aiuto per simulazione cnc

Per farla breve....vorrei simulare un operazione di apertura e chiusura , attraverso una macro usata dal software UCCNC per una cnc .
Per fare questa operazione sostituirò la scheda di controllo della cnc con arduino UNO il quale deve inviare un segnale, l'invio di questo segnale sarà poi ricevuto da un microcontrollore con montato un attiny85 con il suo programma, il quale dividerà in step e dir questo inpulso.Tali segnali saranno poi ricevuti da un tb6600 controller a cui sono collegati due motorini.
Potreste gentilmente darmi due righe di codice da mettere su arduino ....sono ancora alle prime armi e cerco di capire...forse anche troppo e subito....se sono sulla strada giusta e se ho capito qualcosa.
Grazie per chi volesse aiutarmi.

#include <Arduino.h>

// Constants defined for clarity
#define DIRECTION_PIN     0
#define STEP_PIN          1
#define ACTION_PIN        2

#define SIGNAL_CLOSE      1
#define SIGNAL_OPEN       0

#define DIRECTION_CLOSE   1
#define DIRECTION_OPEN    0

#define INCREMENT_CLOSE  -1
#define INCREMENT_OPEN    1

#define CLOSED_STATE      0
#define OPEN_STATE        1
#define CLOSING_STATE     2
#define OPENING_STATE     3

#define CLOSED_STEPS      0
#define OPEN_STEPS        1600

#define STEP_DELAY        150

// variables to manage state - initialized in a closed state
int stepCounter = CLOSED_STEPS;
int coverState = CLOSED_STATE;
int stepIncrement = INCREMENT_CLOSE;

void setup() {
  // Define pins  
  pinMode(ACTION_PIN, INPUT_PULLUP);
  pinMode(DIRECTION_PIN, OUTPUT);
  pinMode(STEP_PIN, OUTPUT);

  // Initialize step and direction pins
  digitalWrite(DIRECTION_PIN, DIRECTION_CLOSE);
  digitalWrite(STEP_PIN, LOW);
}

void loop() {

  // Check if we've received a new signal
  // If we have a new close signal
  if (digitalRead(ACTION_PIN) == SIGNAL_CLOSE && (coverState == OPEN_STATE || coverState == OPENING_STATE)) {
    // Set closing state  
    coverState = CLOSING_STATE;
    stepIncrement = INCREMENT_CLOSE;
    digitalWrite(DIRECTION_PIN, DIRECTION_CLOSE);

  // Or if have a new open signal
  } else if (digitalRead(ACTION_PIN) == SIGNAL_OPEN && (coverState == CLOSED_STATE || coverState == CLOSING_STATE)) {
    // Set opening state
    coverState = OPENING_STATE;
    stepIncrement = INCREMENT_OPEN;
    digitalWrite(DIRECTION_PIN, DIRECTION_OPEN);
  }

  // Handle movement if necessary
  // If we are in the process of opening or closing, let's step
  if (coverState == OPENING_STATE || coverState == CLOSING_STATE) {
    digitalWrite(STEP_PIN, HIGH);
    delayMicroseconds(STEP_DELAY);
    digitalWrite(STEP_PIN, LOW);
    delayMicroseconds(STEP_DELAY);

    // And record where we are
    stepCounter = stepCounter + stepIncrement;
  }
  
  // If we are fully closed or fully open, set the appropriate state
  if (stepCounter == CLOSED_STEPS) {
    coverState = CLOSED_STATE;
  } else if (stepCounter == OPEN_STEPS) {
    coverState = OPEN_STATE;
  }
}

Ma il REGOLAMENTO lo vogliamo leggere !!! :angry:

Fosse anche per una sola riga, come richiesto al punto 7 del REGOLAMENTO, il codice va racchiuso tra i tag CODE, per cui, edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona <code/> nella barra degli strumenti per contrassegnarla come codice. Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac, sempre all'interno del IDE).

Guglielmo

*P.S.: Ti ricordo che, purtroppo, fino a quando non sarà sistemato il codice come indicato, nel rispetto del regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farlo al più presto.

fatto....spero