Overblog
Editer la page Suivre ce blog Administration + Créer mon blog

Présentation

  • : train modelisme HO
  • : Train Russe HO, projet d'un petit réseau HO et présentation d'une vitrine animée de salon avec un décor sous la neige. Русский тепловоз HO. Attelage Kadee. amélioration et détaillage de matériel ferroviaire SNCF. fabrication de caténaire 1500V
  • Contact

Profil

  • ERIC

Rechercher

/ / /

Mise à jour: 20/04/2016

Je vais expliquer comment faire une programmation logique avec un ARDUINO pour commander différents signaux SNCF .

Il faut dans un premier temps se procurer le logiciel ARDUNIO, il est téléchargeable gratuitement sur le cite officiel ARDUNIO.

J'utilise la version "arduino 1.6.0".

Je ne suis pas un spécialiste de la programmation en langage Arduino, j'ai téléchargé gratuitement un autre petit logiciel de programmation en "block" fonctionnant en parallèle avec le logiciel Arduino > nommé ARDUBLOCK.

Il faut bien sûr se procurer une carte ARDUINO et un cordon USB que l'on peut trouver sur différents sites d'électronique sur le net.

--------------------------------------------------------------------------------------------------------------------------

PRESENTATION RAPIDE DE LA CARTE ARDUINO

- Connecteur USB pour connecter à un PC

- Un connecteur jack pour alimenter la carte ARDUINO avec un alim. externe entre 7 et 12V continue.

- Des "pin" de sorties d'alimentation 3.3V , 5V et OV (masse) .

- Une "pin" d'entrée "Vin 7_12V" pour alimenter la carte ARDUINO avec une alim. externe.

- Un port d'entrée analogique "A0_A5" que l'on utilisera en entrée numérique pour augmenter le nombre d'entrées pour certains signaux à 9 entrées et 8 sorties.

- Un port d'entrée /sortie numérique "0_13" que l'on utilisera soit en entrée ou en sortie.

Certaines "pin" ont des fonctions particulières que nous n'utiliserons pas.

(PWM , bus série Rx Tx, reset......)

SIGNALISATION FERROVIAIRE AVEC ARDUINO

-------------------------------------------------------------------------------------------------------------------------

PROGRAMATION EN "BLOCK"

Pour s'exercer nous allons programmer une porte logique "ET" à deux entrées et une sortie.

Les deux entrées seront sur les "pin" 1 et 2.

la sortie sera sur la "pin" 13.

(Pour la sortie 13, il existe une LED de visualisation sur la carte, il n'est pas nessécaire d'avoir un montage extérieur.

Lancer le logiciel ARDUINO, puis dans le menu déroulant "outil" , lancer "ARDUBLOCK"

Coller les block les uns après les autres en commençant toujours par la "boucle", puis les "conditions" puis les "tests" puis la "fonction" (ET) puis les entrées et la sortie en les numérotant , 1, 2, et 13.

Schéma  "block"

Schéma "block"

Ensuite il faut le " transcrire "les block en langage ARDUINO avec le bouton du haut "Téléverser vers l'Arduino"

-La page de code ARDUINO s'affiche.

Si la carte ARDUINO est connectée au PC par le câble USB , le programme est automatiquement téléchargé dans la carte ARDUINO.....

(Losque le programme est transféré dans la carte Aduino, assurez vous que toutes les entées / sorties soient déconnectées ou à "1 logique" > 5V). Si non, il peut y avoir des messages d'erreur...

Code ARDUINO

Code ARDUINO

--------------------------------------------------------------------------------------------------------------------------

TEST ELECTRIQUE DE LA "PORTE &"

Pour le test il est préférable de connecter au 0V, avec des résistances de ~3.3k, les deux entrées.

On peut faire maintenant le test "logique", si les deux entrées sont à "1" > (+5V), la sortie pin13 est à "1" (+5V) > LED de visualisation allumée sur la carte.

Si une des deux entrées est a "0" >(0V) la sortie pin13 est à "0" (0V) > LED de visualisation éteinte sur la carte.

Si les deux entrées sont à "0" >(0V) la sortie pin13 est à "0" (0V) > LED de visualisation éteinte sur la carte.

Table de vérité d'une porte "ET".

SIGNALISATION FERROVIAIRE AVEC ARDUINO

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PROGRAMMATION SIGNALISATION SNCF

Passons à la signalisation SNCF.

Cette signalisation fonctionne suivant une certaine logique en fonction de plusieus types de signaux.

Type de signaux

Type de signaux

--------------------------------------------------------------------------------------------------------------------------

PROGRAMMATION POUR UN "SEMAFOR"

Pour tester la logique et le fonctionnement j'ai dessiné le schéma sur un logiciel de simulation logique sur PC.

Voici le schéma résultant.

Schéma logique SEMAPHORE

Schéma logique SEMAPHORE

Les lampes de signalisation SNCF s'allument suivant un ordre de priorité bien défini.

C ou Cv - Carré (rouge ou violet).
S - Sémaphore.
S - Sémaphore sans arrêt. (Clignot.)
M - Manoeuvre réduite. (Clignot.)
M - Manoeuvre.
RR - Rappel de ralentissement 30.
RR - Rappel de ralentissement 60. (Clignot.)
A - Avertissement.
R - Ralentissement 30.
A - Jaune clignotant. (Clignot.)
R - Ralentissement 60.
VL - Ralentissement 160. (Clignot.)
VL - Voie libre.

Il y a plusieurs combinaisons pour allumer les lampes des signaux qui sont très bien expliquées sur le site:

http://geillon.pagesperso-orange.fr/trains/signaux/)

--------------------------------------------------------------------------------------------------------------------------

EXPLICATIONS DU SCHEMA LOGIQUE SEMAPHORE

Au repos la sortie Vert est allumée > V=1 (Jaune >J=0) ( Rouge >R=0)

Au repos toutes les entrées sont à 1 (+5V) (dans mon cas).

{ Il est possible d'avoir les entrées à 0V au repos et de piloter les sorties avec un 1 logique (+5V) mais il faudra modifier en inversant les entrées dans la programmation. }

------------------

Pour changer l'état de la sortie il faut positionner l'entrée à 0 (0V, ou masse)

Dans l'ordre:

J=0 >LED jaune =1

R=0 >LED rouge=1 (L'entée Rouge est prioritaire sur l'entrée Jaune quel que soit son état (1 ou 0).

Le clignotant: dans tout les cas les LED de sortie peuvent clignoter sur un sémafor.

--------------------------------------------------------------------------------------------------------------------------

PROGRAMMATION EN BLOCK DU SEMAPHORE

Une fois la logique validée on peut programmer le schéma logique en block ARDUINO.

Il faut prédéfinir les numéros de" pin" des entrées et sorties de l'ARDUINO.

pin1 > entrée Rouge

pin2 > entrée Jaune

pin3 > entrée Clignot.

pin13 >sortie LED Rouge (sémaphore)

pin12 >sortie LED Jaune

pin11 >sortie LED Vert

Schéma avec les N° de pin ARDUINO

Schéma avec les N° de pin ARDUINO

Pour la programmation en block ARDUINO, il suffit de suivre le schéma logique en numérotant les entrées et les sorties.

Voici le résultat pour un signal SEMAPHORE:

Programme block SEMAPHORE

Programme block SEMAPHORE

--------------------------------------------------------------------------------------------------------------------------

EXPLICATION DU PROGRAMME BLOCK

Il y a en fait un programme principal et 3 sous programmes:

Le prog. principal "boucle" en continu et appel successivement dans l'ordre les sous prog. T1,puis LOGIGQUE ,puis T2 ,puis LOGIQUE et retourne a T1....

Dans le sous programme " LOGIQUE" on retrouvre les équations logiques des entrées qui piloteront les sorties LED du SEMAFOR.

Dans le sous programme " T1 " on pilote l'état "HAUT" (=1 ou +5V) de la temporisation de clignotement des LED Rouge Jaune et Verte.

Dans le sous programme " T2 " on pilote l'état "BAS" (=0 ou0V) de la temporisation de clignotement des LED Rouge Jaune et Verte.

Le delai pour le cligntement entre deux états "HAUT" et "BAS" est de 0.8 seconde (800ms)

Il faut ensuite "téléverser" le programme block en code ARDUINO.

Dans la programmation , une variable " t " a été ajoutée. Cette variable " t "passe à "1" puis à "0" (dans les sous programme T1 et T2, lorsque l'entrée " CLIGNOT " est à 0V.

On retrouve donc cette même variable " t " dans le sous programme " LOGIQUE " pour permettre le clignotement des sorties.

Cette variable " t " est l'équivalent du fil de connexion en sortie de la seule porte " ET " au niveau du clignotement sur le schéma .

Code ARDUINO

Code ARDUINO

Vérification du fonctionnement sur platine de test :

Montage en volant pour test du signal SEMAPHORE

Montage en volant pour test du signal SEMAPHORE

--------------------------------------------------------------------------------------------------------------------------

EXEMPLE POUR UN SIGNAL CARRE AVEC OEILLETON

Schéma logique d'un signale CARRE avec oeuilleton blanc

Schéma logique d'un signale CARRE avec oeuilleton blanc

Programme block ARDUINO pour signale CARRE avec oeuilleton blanc

Programme block ARDUINO pour signale CARRE avec oeuilleton blanc

Code ARDUINO pour signale CARRE avec oeuilleton blanc

Code ARDUINO pour signale CARRE avec oeuilleton blanc

Partager cette page
Repost0
Published by ERIC