Moteur et limit switch

En fait, tu passes bien par l'étape Yellow_on(); Red_off(); mais comme le programme retourne aussitôt au début de loop les lignes Red_on(); Yellow_off(); sont immédiatement exécutées et tu ne vois pas l'étape intermédiaire.
En fait, tu n'as implémenté qu'une partie de ton besoin. Après l'étape Yellow_on(); Red_off(); il faudrait ajouter l'attente du relâchement du relais RF comme indiqué dans tes dessins puis le retour de la barrière en position fermée.

Au final, tu essaies de faire une machine à état, voilà un peu de lecture: