Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Arduino
  3. Les autres circuits
Extrait - Arduino Faites-le jouer au train (2e édition)
Extraits du livre
Arduino Faites-le jouer au train (2e édition)
6 avis
Revenir à la page d'achat du livre

Les autres circuits

Les alimentations

1. L’alimentation principale

Les circuits électroniques d’une centrale DCC nécessitent deux tensions d’alimentation très différentes :

  • 5 V (voire 3,3 V) pour les microcontrôleurs et les circuits logiques

  • 14 à 20 V pour les circuits de puissance

Une seule alimentation peut très bien convenir pour fournir toutes les tensions d’alimentation. Une solution particulièrement pratique et économique consiste à récupérer une alimentation de PC portable. Compacte et sécurisée, elle peut délivrer une tension comprise entre 15 et 20 V sous un courant de 4 à 8 A. Il y a de quoi faire tourner quelques locomotives. Une tension de 14 V est un minimum, sachant qu’il y a un peu de chute de tension dans l’amplificateur de puissance, dans le circuit de protection et dans les voies. L’idéal est aux environs de 16 V, mais on peut monter un peu plus haut, la plupart des alimentations de portables délivrant 19 V. Certaines de ces alimentations ont un connecteur de sortie non standard, il peut être nécessaire de couper le câble pour y souder un nouveau connecteur.

Il faut bien faire attention si l’on veut récupérer d’autres types d’alimentation, comme des alimentations d’imprimantes ou de scanners. Celles-ci peuvent fort bien délivrer du courant alternatif. Il ne faut pas les utiliser au risque de détruire tous les circuits électroniques !

Dans tous les cas, les spécifications de l’alimentation principale sont les suivantes :

  • Sortie en courant continu

  • Tension de sortie entre 14 et 20 V

  • Au moins 4 A disponibles

Si l’on n’a pas d’alimentation de ce type, il reste possible d’en trouver sur les sites de petites annonces ou dans une recyclerie. Sinon, on trouve aussi des alimentations de remplacement pour ordinateur portable qui peuvent parfaitement faire l’affaire.

Par contre, il n’est pas possible de récupérer des alimentations de PC fixes. Elles ne délivrent...

Les amplificateurs

1. La théorie

Le signal DCC envoyé aux rails est un signal alternatif pulsé : alternatif car il varie entre +18 V et -18 V, pulsé car le signal n’a pas l’allure de sinusoïdes, il s’agit de signaux carrés.

Le signal délivré par l’Arduino ne peut pas être envoyé directement sur les rails. Les niveaux électriques ne sont pas les bons et le courant délivré n’est pas suffisant. Il faut donc changer les niveaux électriques et fournir de la puissance. Un amplificateur doit se charger de cette tâche. Dans le jargon de la norme DCC, il est d’usage de parler de booster.

Il ne s’agit pas d’une simple amplification, car il faut aussi fournir des tensions négatives alors que l’on ne dispose pas d’une alimentation négative. En pratique, c’est assez simple, car il suffit de permuter les rails.

  • Si l’Arduino délivre 5 V, on envoie 18 V sur le rail droit et 0 V sur le rail gauche.

  • Si l’Arduino délivre 0 V, on envoie 0 V sur le rail droit et 18 V sur le rail gauche.

Grâce à cette manipulation, il n’est pas nécessaire d’avoir une alimentation -18 V pour générer le signal DCC. Plutôt que d’envoyer le signal sur un seul rail et de laisser l’autre à la masse, on envoie le signal alternativement sur un rail, puis sur l’autre, et on obtient le même résultat.

Maintenant, il faut générer ce signal. Ceci se fait au moyen d’un pont en H. Un tel montage est représenté sur le schéma suivant.

images/03AT17.png

Ici, on suppose que tout fonctionne sous 15 V. Les niveaux sur l’entrée sont en 0/15 V et l’inverseur logique fonctionne également sous cette tension (74HCT04). Les transistors sont des MOSFET de puissance de type IRF520/ IRF9520 ou d’un type similaire.

  • Lorsque l’entrée est à l’état haut (15 V), le transistor T1 est bloqué tandis que T3 est conducteur. La tension est donc à 0 V côté gauche. De l’autre côté du pont, suite à l’inverseur logique qui applique 0 V sur la gâchette des transistors, c’est T2 qui est conducteur et T4 qui est bloqué. La tension est donc de 15 V côté...

Le clavier et l’écran

1. Un circuit tout prêt

Pour réaliser une petite centrale facilement transportable, un programmeur de CV ou un testeur de périphériques I²C, un grand écran et un grand clavier ne sont pas forcément nécessaires. On trouve dans le commerce des modules à brancher sur Arduino (que l’on appelle des shields) qui intègrent directement un écran LCD de deux lignes de 16 caractères et quelques touches de commandes. Ce genre de circuit peut parfaitement faire l’affaire et nécessite peu de câblage additionnel. Pour le trouver sur les sites de vente en ligne, tapez « lcd keypad shield ».

Les touches de commandes ne forment pas vraiment un clavier à part entière, mais cela permet un minimum d’interactivité : il y a un pavé directionnel, un bouton de sélection et un bouton RESET. Les cinq premiers sont directement câblés sur l’entrée analogique A0, via un pont de résistances, la tension lue correspondant donc au bouton actionné. Le dernier bouton étant directement relié au signal RESET du microprocesseur.

Sur cette photo, le petit module d’interface qui est présenté plus loin dans ce chapitre est déjà soudé sur le shield.

images/03A04-P1030411.png

2. Une petite modification

Le bouton RESET n’est pas vraiment nécessaire : l’interrupteur marche-arrêt a la même fonction. En outre, le bouton RESET est mal placé, l’utilisateur peut facilement l’actionner par mégarde. Il peut être bien plus intéressant de l’utiliser comme un sixième bouton. La manipulation est très simple (mais elle fait perdre la garantie, s’il y en avait une, sur le module) : il n’y a que deux pistes à couper et une résistance à ajouter. L’image ci-dessous représente l’intervention à effectuer, mais il faut bien s’assurer que le module est du même modèle que celui présenté sur la photo, certaines variantes ayant des connexions supplémentaires du côté des entrées analogiques (en bas à droite sur la photo ci-dessus, et en bas à gauche sur le schéma ci-dessous).

images/03A05-MODIF.png

Les deux...

Le programme de pilotage

1. Présentation

Cet ensemble Arduino, écran et clavier est maintenant prêt à être utilisé pour diverses réalisations qui seront présentées dans les prochains chapitres de cet ouvrage :

  • Pilotage d’une locomotive

  • Programmation des variables de configuration

  • Testeur de bus I²C

  • Configuration des périphériques I²C

  • Paramétrage des aiguillages

  • Paramétrage des détecteurs

L’assignation des entrées-sorties est la suivante :

  • A0 : clavier

  • A1 : vitesse

  • A4 : I²C SDA

  • A5 : I²C SCL

  • D4 à D9 : interface écran LCD

  • D10 : rétro-éclairage écran LCD

  • D11 : PWM (activation DCC)

  • D12 : DIR (signal DCC)

  • D13 : BRAKE (coupure DCC)

Le programme qui suit permet de gérer les interactions de l’utilisateur au moyen du clavier et du réglage de vitesse. Pour l’instant, il ne fait pas grand-chose, mais il va servir de base à toutes les options qui vont y être ajoutées par la suite.

Téléchargement depuis la page Informations générales : at-test-multi.ino.

La base de ce programme est celle du programme précédent, avec des fonctions en plus. Cela commence d’abord par de nouvelles définitions, on y trouve le numéro de l’entrée analogique utilisée pour le contrôle de la vitesse, puis il y a la liste des pages qui peuvent être sélectionnées en fonction du choix de l’utilisateur, et pour finir le nombre de pages accessibles depuis le menu principal (celui-ci n’étant pas compté dans le nombre total, il n’y a donc que trois pages en tout).

#define SPEED_ANALOG_INPUT 1  
  
#define UI_PAGE_MAIN 1  
#define UI_PAGE_PILOT_MAIN 11  
#define UI_PAGE_PILOT 12  
#define UI_PAGE_I2C_TEST 31  
  
#define UI_NUM_MENU_OPTIONS 3 

La version complète de ce programme permet d’accéder à bien plus de pages, elle n’est pas détaillée ici mais le principe reste le même.

Les définitions suivantes correspondent aux paramètres qui peuvent être fournis aux fonctions se chargeant d’afficher les pages. Ils permettent de définir le mode d’affichage...