je suis en pleine fabrication d'un ascenseur en alu pour le stockage de mes rames.
l'ascenseur est piloté par un moteur pas à pas Nema23 et un driver DM556T + vis à bille
le tout piloté par arduino. donc similaire à ton application
l'interfaçage sera réalisée à l'aide d'un Kuhen WD10 (car programmable dans tous les sens) pour les informations de TC vers Arduino.
et dans l'autre sens un module LDT RS16-0 relayé par des relais de Arduino vers TC.
les informations seront codées 2^4 soit 16 bits pour minimiser les entrées/sorties de Arduino.
coté TC c'est de la programmation et donc une usinage à gaz.
il existe un décodeur universel ici : https://www.locoduino.org/spip.php?article165 et plein d'autres choses sur ce site.
mais je l'ai testé en liaison avec TC et pour être honnête ça ne marche pas à 100% , il y des cas ou l'ordre envoyé par TC n'est pas reconnu par ce décodeur, surement une question de fréquence/vitesse de l'arduino (ou moi qui sait pas).
bon courage, ceux sont des beaux projets mais qui demandent beaucoup de persévérance pour aboutir à ses fins
mais comme on dit :
Nombreuses sont les perspectives qui s'offrent au regard de celui qui a franchi le sommet de la montagne