Commande d'un réseau en DCC avec un module ARDUINO

Centrale DCC pilotée par smartphone ou tablette


Cette centrale permet de commander un train en DCC avec un smartphone ou une tablette sans passer par un ordinateur.
La centrale peut utiliser un module Arduino Uno ou Nano. Les deux modules ont les mêmes caractéristiques mais l'Arduino Nano est beaucoup plus petit que l'Uno.

Trois versions ont été réalisées: une version avec commande en Bluetooth limitée aux smartphones avec Android et deux versions avec commande en WiFi compatibles avec les smartphones Android et les iphones .

1.Commande en Bluetooth

La commande en Bluetooth est très simple à mettre en oeuvre. On peut facilement réaliser une petite centrale DCC qui marche très bien pour moins de 50 Euros.
Le seul inconvénient du Bluetooth est la portée entre le smartphone et la centrale qui ne dépasse pas une vingtaine de mètres, mais c'est généralement suffisant pour un petit réseau.

La centrale DCC est commandée par une application ANDROID appelée BlueDCC chargée sur la tablette.
Afin de simplifier la conception de cette application, il n'y a qu'un seul octet transmis par la tablette à l'ARDUINO, ce qui limite les performances du système qui sont les suivantes:
- adresse comprise entre 3 et 99
- vitesse comprise entre 0 et 28
- sens de marche AV ou AR
- fonctions F0 à F12
- commande de 45 accessoires. Vous trouverez le schéma d'un décodeur d'aiguille en cliquant ici.
- diffusion d'une annonce en gare en utilisant une petite enceinte Bluetooth connectée au smartphone. L'enceinte Bluetooth peut être dissimulée dans un bâtiment.

1.1 Centrale DCC

La centrale DCC est constituée des éléments suivants:
- un module ARDUINO UNO ou NANO qui génère le signal DCC
- un booster réalisé avec un module LMD18200 qui peut fournir 3A
- un module HC-05 ou HC-06 qui permet de connecter un smartphone à l'Arduino en Bluetooth
- un module détecteur de courant ACS712 qui permet de protéger la centrale contre les court circuits
- une alimentation qui fournit une tension comprise entre 15 et 18 Volts et un courant jusqu'à 3A
Le schéma de principe de la centrale est donné sur la figure ci-dessous.



La figure ci-dessous montre les interconnexions entre les composants avec un Arduino Nano.


L'Arduino est alimenté en 5V grâce à un régulateur 7805 qui est connecté à l'alim 15V.
Les connexions du module HC-05 avec l'Arduino sont les suivantes:
- La broche VCC est reliée au +5V
- la broche GND est reliée à une broche GND de l'Arduino
- la broche TXD est reliée à la broche 10 de l'Arduino
- la broche RXD est reliée à la broche 11 de l'Arduino
- la broche State est reliée à une diode LED

l'Arduino génère le signal DCC sur la broche D13.

Le booster est un cirtcuit LMD18200 qui peut fournir un courant jusqu'à 3A
L'entrée GND est reliée à la masse de l'ARDUINO
L'entrée PWM est reliée au +5V
L'entrée DIR est reliée à la sortie DCC de l'ARDUINO ( broche D13)
L'entrée BRAKE est reliée à la broche D2 de l'ARDUINO.

Le signal DCC amplifié est disponible sur les sorties OUT1 et OUT2 du module LMD18200
L'amplitude du signal DCC dépend de la tension d'alimentation continue appliqué sur l'entrée V+ du module. Avec une alim de 16 Volts, on obtient un signal DCC de 16 Volts efficaces environ qui est suffisant pour faire fonctionner un réseau DCC.

Le booster est protégé contre les court-circuits. Le courant fourni par l'alim continue passe dans un module de mesure de courant ACS712 dont la sortie est reliée à la broche A0 de l'ARDUINO. Si le courant dépasse 3A alors la sortie D12 de l'Arduino passe à l'état haut (+5V) ce qui a pour effet de couper la tension en sortie du module LMD18200. Lorsque le court circuit a été supprimé, il faut envoyer avec le smartphone un octet de valeur 220 à l'ARDUINO pour rétablir la tension DCC en sortie du module LMD18200 (la sortie D12 et donc la broche BRAKE du LMD passe à 0).

Voici la liste des valeurs de l'octet transmis par le smartphone à l'Arduino et les fonctions associées pour la commande d'une locomotive.

octet
Fonction associée
octet
Fonction associée
0
MAV
1
MAR
3 à 99
adresse loco
100 à 128
vitesse loco
150
F0 ON
151
F0 OFF
152
F1 ON
153
F1 OFF
154
F2 ON
155
F2 OFF
156
F3 ON
157
F3 OFF
158
F4 ON
159
F4 OFF
160
F5 ON
161
F5 OFF
162
F6 ON
163
F6 OFF
164
F7 ON
165
F7 OFF
166
F8 ON
167
F8 OFF
168
F9 ON
169
F9 OFF
170
F10 ON
171
F10 OFF
172
F11 ON
173
F11 OFF
174
F12 ON
175
F12 OFF


Et voici la liste des valeurs de l'octet transmis par le smartphone à l'Arduino pour les autres commandes.

octet
Fonction associée
octet
Fonction associée
131 à 146
adresse des accesoires entre 1 et 16
227 à 255
adresse des accesoires entre 17 et 45
148
accessoire ON
149
accessoire OFF
181
annonce en gare N°1
182
annonce en gare N°2
183
annonce en gare N°3
184
annonce en gare N°4
220
envoi DCC vers les rails
221
coupure DCC


La photo ci-dessous montre le boîtier qui abrite la centrale et les batteries Li-Ion. Les dimensions sont les suivantes. Longueur: 17 cm, largeur: 12 cm, hauteur: 5 cm



La photo ci-dessous montre le boîtier ouvert avec les composants autour de l'Arduino et les deux batteries Li-Ion.



Enfin la photo ci-dessous montre les composants qui permettent de générer le signal DCC



1.2 Application ANDROID

Cette application appelée BLUEDCC est un petit régulateur DCC qui se connecte à l'ARDUINO en Bluetooth par l'intermédiaire du module HC-05.
Vous pouvez voir ci-dessous une copie d'écran de la tablette.



Avant de lancer l'application, il faut aller dans les paramètres de la tablette activer le bluetooth et se connecter au module HC-05 qui doit être sous tension. Le code à entrer est: 1234.

Ensuite, on peut lancer l'application Bluedcc. Pour l'utiliser, il suffit d'appuyer sur le bouton intitulé "Adresse MAC Bluetooth" et de choisir dans la liste des éléments qui s'affichent le module HC-05.
Pour se connecter à l'Arduino, il faut appuyer sur le bouton intitulé "Connexion ARDUINO".

J'ai réalisé cette application à l'aide du logiciel en ligne intitulé MIT App Inventor 2 que l'on peut trouver à l'adresse suivante:
http://ai2.appinventor.mit.edu/

Ce logiciel est très facile à utiliser et permet de créer une application ANDROID très rapidement sans connaître le language Java.

La connexion bluetooth utilise les instructions suivantes.


Au lancement de l'application, et avant de sélectionner le périphérique (ListPicker.beforepicking), le programme charge la liste des appareils associés au smartphone ou à la tablette (BluetoothClient.adressesandNames)
Lorsque l'on appuie sur le bouton "Adresse MAC Bluetooth", une liste remplie des périphériques apparaît. On vous demande de choisir le périphérique. celui-ci est récupéré par la fonction qui récupère le nom de l'appareil (listpicker1.selection) et connecte le smartphone (BluetoothClient1.Connect) sur celui-ci.

L'envoi de données en bluetooth utilise les instructions suivantes pour les fonctions (F0 à F8)


Chaque bouton tel que "F0" (Button 4) a pour valeur 0 ou 1 et va envoyer via bluetooth (BluetoothClient1.Send1ByteNumber) un octet à l'Arduino lorsqu'il sera cliqué .

Lorsque l'écriture du programme est terminée , il ne reste juste qu'à compiler et envoyer sur le smartphone ou la tablette..

1.3 Téléchargement des programmes

Vous pouvez télécharger le programme pour l'ARDUINO ainsi que l'application bluedcc.apk pour le smartphone ou la tablette en cliquant ici.

Pour installer l'application "BLUEDCC" sur votre smartphone, vous pouvez scanner le QR Code ci-dessous:



2.Commande en Wi-Fi

Deux versions ont été réalisées.

La première version qui est assez ancienne utilise un module SainSmart Ethernet Shield.
La commande en WiFi nécessite de disposer d'un routeur et d'un serveur web qui reçoit les commandes du smartphone et les transmet à l'Arduino qui réalise le codage DCC. Le serveur web est stocké sur une carte micro-SD. Le lecteur est intégré au module SainSmart.

La deuxième version qui a été mise en oeuvre en mai 2022 utilise un module Arduino Nano 33 IOT qui intègre un module WiFi qui se connecte via la box internet de la maison à un serveur distant stocké dans le cloud appelé "Arduino Cloud IoT". Cette version est très facile à mettre en oeuvre mais elle souffre de quelques limitations par rapport à la version précédente. Le nombre de variables que l'on peut commander est limité à 5 dans la version gratuite et il faut absolument une connexion Internet pour fonctionner alors que dans la version précédente, le routeur WiFi n'a pas besoin d'être connecté.

2.1 Première version avec routeur WiFi

Le schéma du système réalisé est représenté sur la figure ci-dessous.



La centrale DCC est constituée de trois sous-ensembles:
- un serveur web connecté à un routeur Wi-FI qui reçoit les ordres de commande en provenance d'un smartphone ou d'une tablette.
- une unité centrale qui génère le signal DCC (avec un ARDUINO UNO ou MEGA et un booster)
- une alimentation qui délivre une tension de 15 Volts 2 ampères pour le booster DCC et une tension de 12 volts pour alimenter les modules ARDUINO

La commande de l'ARDUINO par le smartphone ou la tablette peut s'effectuer de deux manières possibles:
- avec le navigateur par exemple Google Chrome, ce qui est compatible avec tous les OS (ANDROID, IOS, Windows Phone).
- avec une application appelée WiFi DCC chargée sur le smartphone ou la tablette pour les appareils sous ANDROID.

Vous pouvez voir ci-dessous une photo des composants utilisés pour créer la centrale DCC et le serveur web.



2.1.1 Serveur web WiFi

Le serveur web connecté à un routeur Wi-FI reçoit les ordres de commande en provenance d'un smartphone ou d'une tablette et les transmet à l'unité centrale.

Chez soi, il est tout à fait possible d'utiliser sa box internet comme routeur WiFi. Il suffit de connecter le module SainSmart Ethernet Shield sur un des ports Ethernet de la box.
Cependant, le serveur Web est souvent éloigné de la box et une liaison par cable Ethernet est difficile. Il est alors possible d'utiliser un répéteur Wi-Fi avec une sortie Ethernet. J'ai fait des tests avec un répéteur WiFi de marque Essentiel B qui coute une vingtaine d'Euros et celà marche bien.

Si on n'est pas chez soi, par exemple en exposition, alors il faut utiliser un routeur Wi-Fi. J'ai fait les tests avec deux routeurs Wi-Fi: un routeur D-LINK DIR-615 acheté 39 Euros chez Matériel.net et une vieille Livebox SAGEM V1.2.

2.1.1.1 Matériel utilisé pour le serveur web

Le serveur web comprend:
- un module ARDUINO UNO
- un module SainSmart Ethernet Shield avec lecteur de carte micro-SD acheté chez SainSmart
- une carte microSD sur laquelle on stocke la page web
- un cable Ethernet

2.1.1.2 Connexions

Le shield ethernet est enfiché sur un module ARDUINO UNO. La sortie Ethernet du shield est connectée à l'entrée LAN 1 du routeur D-LINK. Le module ARDUINO transmet les commandes DCC sur la sortie TX.sous la forme d'une suite de 13 octets suivie d'un caractère retour chariot.
Les octets transmis (de valeur comprise entre 0 et 9) sont les suivants: adressed+adresseu+ma+vitessed+vitesseu+fg1d+fg1u+fg2d+fg2u+fg3d+fg3u+0+0
adressed et adresseu définissent l'adresse de la loco: adresse=adresseu+10xadressed
ma donne le sens de marche (ma=1 ==> direct, ma=0 ==>inverse)
vitessed et vitesseu définissent la vitesse de la loco: vitesse=vitesseu+10xvitessed
fg1d et fg1u définissent les fonctions du groupe 1: fg1=fg1u+10xfg1d avec fg1 = 16xF0 + F1 +2xF2 + 4xF3 + 8xF4
fg2d et fg2u définissent les fonctions du groupe 2: fg2=fg2u+10xfg2d avec fg2 = F5 +2xF6 + 4xF7 + 8xF8
fg3d et fg3u définissent les fonctions du groupe 3: fg3=fg3u+10xfg3d avec fg3 = F9 +2xF10 + 4xF11 + 8xF12
Le signal de commande est normalement connecté à l'entrée RX de l'ARDUINO de la centrale DCC.
Pour faire les tests, une petite unité centrale a été réalisée pour générer le signal DCC avec un ARDUINO UNO.

2.1.2 Description du programme installé sur l'ARDUINO

Le site PHM ARDUINO en français décrit les principes de base pour la réalisation d'un serveur web. A lire absolument pour comprendre les protocoles HTTTP, IP, etc... utilisés par un serveur web.

Dans le cas d'un serveur WEB, les données sont échangées suivant le protocole HTTP.
J'ai utilisé la méthode GET. Avec le GET, les informations sont envoyées au serveur directement dans l'URL de la ressource demandée après le nom de la ressource (nom site par exemple) et un ?. Les différentes données transmises doivent être séparées par des &.
Par exemple, si un smartphone veut transmettre au serveur l'adresse 3, l'URL aura la forme suivante:
http://192.168.0.102/index.htm?adresse=03
Dans cet exemple, l'adresse IP du serveur est IP = 192.168.0.102.
La commande est transmise après le point d'interrogation sous la forme "nom=adresse" et la valeur de l'adresse, ici 03, est transmise après le signe =.

Pour créer le programme du serveur web, j'ai utilisé l'excellent "tutorial" en Anglais du site STARTING ELECTRONICS intitulé "Arduino Ethernet Shield Web Server Tutorial" .
J'ai simplement adapté les exemples de ce site à la commande d'un train en DCC.

2.1.3 Réglage du routeur D-LINK

Voici une photo du routeur D-LINK


Avec un PC connecté en Wi-Fi au routeur, il faut se connecter à la page web de gestion du routeur à l'adresse: http://192.168.0.1 Cliquer sur réglage puis sur Paramètres du réseau, puis sur Ajouter/éditer une réservation DHCP
Vous devez obtenir la page ci-dessous




Cliquer sur activer puis remplir les champs demandés
Nom de l'eordinateur: laisser vide
Adresse IP: 192.168.0.102
Adresse MAC: cliquer sur copier l'adresse MAC de votre PC
Puis cliquer sur save.

2.1.4 Réglage de la Livebox

J'ai utilisé une vieille Livebox SAGEM v1.2 dont vous pouvez voir la photo ci-dessous:



Il faut mettre la Livebox en mode acquisition (appuyer pendant au moins 5 sec sur le bouton intitulé REG) et connecter le smartphone ou la tablette à la Livebox en WiFi.

L'adresse IP de la Livebox est 192.168.0.190 Il faut entrer cette adresse dans votre navigateur pour accéder au mode administrateur. Lorsque la page d'accueil s'affiche, il faut entrer:
identifiant: admin
mot de passe: admin
Puis appuyer sur l'intitulé Paramétrage LAN & DHCP. Vous pouvez voir qu'en mode DHCP, les adresses IP possibles vont de 192.168.0.191 à 192.168.0.240.
Pour le serveur Arduino, il faut choisir une adresse IP en dehors de cette plage. J'ai choisi: 192.168.0.250

2.1.5 Commande de la centrale par le navigateur du smartphone ou de la tablette

Avec le routeur D-LINK, il faut aller dans paramètres WiFi et se connecter au réseau intitulé D-LINK
Puis il faut ouvrir le navigateur web et taper l'adresse du serveur: http://192.168.0.102

Avec la vieille Livebox, il faut aller dans paramètres WiFi et se connecter au réseau intitulé Wanadoo cf59
Puis il faut ouvrir le navigateur web et taper l'adresse du serveur: http://192.168.0.250

La page web qui s'affiche sur l'écran du smartphone ou de la tablette est la suivante.



Les commandes possibles sont les suivantes:
- adresse loco entre 1 et 95
- cran de vitesse entre 1 et 9
- sens de marche
- vitesse entre 0 et 28. Une pression sur plus augmente la vitesse d'un cran.
- fonctions F0 à F12

De plus, il est possible d'enregistrer une séquence et de la reproduire automatiquement.
Pour enregistrer une séquence, appuyer sur "ENR_ON" puis entrer l'adresse de la loco (entre 1 et 95) et enregistrer la séquence. Lorsque l'enregistrement est terminé, appuyer sur "ENR_OFF".
Pour lire la séquence enregistrée, appuyer sur "PLAY_ON". La séquence va s'exécuter et se répéter en boucle jusqu'à l'appui sur "PLAY_OFF".

Voici une photo de la page web qui s'affiche sur l'écran

- avec un smartphone Wiko Rainbow




- avec une une tablette Nexus 7 de Google




2.1.6 Commande de la centrale par l'application ANDROID WiFi DCC

J'ai réalisé cette application à l'aide du logiciel en ligne intitulé MIT App Inventor 2 que l'on peut trouver à l'adresse suivante:
http://ai2.appinventor.mit.edu/

Voici la photo de l'application qui s'affiche sur l'écran de la tablette.




L'application permet les commandes suivantes:
- adresse loco entre 1 et 99
- sens de marche
- vitesse entre 0 et 28. .
- fonctions F0 à F8

2.1.7 Téléchargement des programmes

Vous pouvez télécharger le dossier intitulé serveur_web_arduino en cliquant ici.

Ce dossier comprend:
- le programme pour l'ARDUINO à télécharger sur l'ARDUINO
- la page web intitulée index.htm à charger sur la carte micro-SD avant de l'insérer dans le lecteur de carte du shield Ethernet
- l'application ANDROID intitulée wifidcc.ask à télécharger sur le smartphone ou la tablette
- le code source de l'application ANDROID intitulé wifidcc.aia à ouvrir avec le logiciel MIT App Inventor 2 pour l'adapter à vos besoins.

Pour installer l'application "WiFi DCC" sur votre smartphone, vous pouvez scanner le QR Code ci-dessous:



2.1.8 Unité centrale

L'unité centrale génère le signal DCC. Elle est constituée d'un module ARDUINO UNO et d'un module LMD 18200 utilisé comme booster DCC.

L'affectation des ports de l'ARDUINO est la suivante.
entrée RX: réception des commandes du serveur web
sortie numérique 13: vers entrée DIR du module LMD 18200
sortie +5V: vers entrée PWM du module LMD 18200
sortie GND: vers entrée BRAKE du module LMD 18200

La photo du module LMD 18200 est donnée ci-dessous.


Vous pouvez télécharger le programme ARDUINO qui génère le DCC en cliquant ici.

2.2 Deuxième version qui utilise le cloud

Le schéma du système réalisé est représenté sur la figure ci-dessous.



La centrale DCC est constituée de quatre sous-ensembles:
- un module Arduino Nano 33 IOT qui intègre un module WiFi qui se connecte via la box internet de la maison à un serveur distant stocké dans le cloud appelé "Arduino Cloud IoT"
- un module ARDUINO UNO qui reçoit les commandes en provenance de l'Arduino Nano 33 IoT et qui génère le signal DCC disponible sur la broche 13
- un module booster LMD 18200 qui amplifie le signal DCC fourni par l'ARDUINO UNO
- une alimentation qui délivre une tension de 15 Volts 2 ampères pour le booster DCC et une tension de 12 volts pour alimenter les modules ARDUINO

Sur le smartphone, il faut télécharger l'application "IoT Remote" disponible pour les smartphones Android et les iphones Apple.

Je vous conseille de lire ce "tutorial" qui explique comment concevoir un projet simple pour connecter une carte Arduino WiFi à la plateforme IoT Cloud d’Arduino.
Débuter avec l’IoT Cloud d’Arduino:
https://arduino.developpez.com/iot-cloud-arduino/debuter/

On peut aussi trouver dans le numéro 898 de LocoRevue (mai 2022) un article qui explique comment commander une loco analogique avec votre smartphone en utilisant lle cloud Arduino.

Pour se connecter au cloud Arduino, il faut souscrire un abonnement
La version gratuite permet de créer 2 objets avec un maximum de 5 variables par objet
La version payante à 2 dollars par mois permet de créer 10 objets avec un maximum de 10 variables par objet

J'ai utilisé la version gratuite mais le nombre de 5 variables est un peu juste pour créer un régulateur DCC.
Voici les variables que j'ai choisi associées à un widget qui permet de les commander:
l'adresse de la loco entre 2 et 99. La variable intitulée adresse est un entier et le widget nommé value permet d'entrer la variable avec le clavier du smartphone
le sens de marche est un entier intitulé ma et qui peut prendre la valeur 1 (marche avant) ou 0 (marche arrière). Le widget associé est un "stepper" avec vmin=0 et vmax=1
La vitesse de la loco comprise entre 0 et 28. La variable est un entier intitulé vitesse et le widget associé est un "slider" avec vmin=0 et vmax=28
Le numéro de la fonction qui est un entier et le widget nommé value permet d'entrer la variable avec le clavier du smartphone
La valeur de la fonction (0 ou 1) Le widget associé est un "stepper" avec vmin=0 et vmax=1

Voici les étapes à réaliser pour créer le projet.

Etape 1: Connexion de la carte Arduino Nano 33 IoT à l'Arduino IoT Cloud



Cette carte est compatible avec l'Arduino IoT Cloud, où vous pouvez créer des applications IoT en quelques étapes simples. Le cloud comprend des fonctionnalités puissantes, telles que la création de tableaux de bord pour surveiller et contrôler les réseaux de capteurs, tout en garantissant la sécurité de vos données.

Contrairement à une majorité de cartes Arduino, les entrées/sorties fonctionnent sous 3,3 Vcc. L'utilisation d'une tension de 5 Vcc en entrée ou en sortie est impossible et endommagerait la carte.
Cette carte est livrée avec deux rangées de connecteurs latéraux à souder en fonction de l'utilisation.

La mise en route est simple et rapide et ne nécessite que quelques étapes simples :

Connecter la carte Arduino Nano 33 IoT sur un port USB du PC.
Le PC doit afficher: "Configuration d'un appareil" puis "L'appareil est prêt".

Créez un compte Arduino Create.
https://store.arduino.cc/digital/create

Téléchargez et installez le plugin Arduino Create qui permet de programmer l'Arduino en ligne:
https://support.arduino.cc/hc/en-us/articles/360014869820-Install-the-Arduino-Create-Agent

Accédez à Arduino IoT Cloud et commencez votre voyage à travers l'IoT.
Pour réaliser ces étapes, cliquer sur le lien ci-dessous et suivez les instructions.
https://docs.arduino.cc/cloud/iot-cloud

Étape 2 : Création de l'objet "Régulateur"



Allez sur la page:
https://create.arduino.cc/iot/things

Cliquer sur CREATE THING
Vous ouvrez une page appelée UNTITLED. Changer ce nom pour REGULATEUR
Dans la partie droite de la page, cliquer sur DEVICE (Select Device) et l'Arduino nano 33 IoT devrait apparaitre. Cliquer sur ASSOCIATE
Toujours dans la partie droite de la page, cliquer sur Network et entrer le nom du réseau WiFi et le mot de passe
Puis dans la parte gauche de la page, cliquer sur ADD VARIABLE
Vous allez créer 5 variables intitulées: adresse, ma, vitesse, fonction, valfonction. Pour chaque variable, choisir integer number pour la rubrique Select Variable type. Pour variable permission, cocher "Read and Write" et pour "Variable Update Policy", cocher On change. Pour chaque variable, cliquer sur "ADD VARIABLE"

Étape 3 : Création de l'interface de commande de l'application "IoT Remote"



En haut de la page, cliquer sur "Dashboards"
Ceci ouvre une nouvelle page. Cliquer sur Regulateur puis sur le symbole en haut à gauche avec un crayon
Cliquer sur "ADD" puis sur "Value" Remplacer le nom de "Value" par "Adresse" puis cliquer sur "Linked Variable" et associer la variable "adresse" puis cliquer sur "DONE"
Cliquer sur "ADD" puis sur "Stepper" Remplacer le nom de "Stepper" par "Sens de marche" puis cliquer sur "Linked Variable" et associer la variable "ma" puis insérer dans "Value Range" 0 pour min, 1 pour max et 1 pour step et cliquer sur "DONE"
Cliquer sur "ADD" puis sur "Slider" Remplacer le nom de "Slider" par "Vitesse" puis cliquer sur "Linked Variable" et associer la variable "vitesse" puis insérer dans "Value Range" 0 pour min, 28 pour max et cliquer sur "DONE"
Cliquer sur "ADD" puis sur "Value" Remplacer le nom de "Value" par "Numero de fonction" puis cliquer sur "Linked Variable" et associer la variable "fonction" puis cliquer sur "DONE"
Cliquer sur "ADD" puis sur "Stepper" Remplacer le nom de "Stepper" par "Val fonction" puis cliquer sur "Linked Variable" et associer la variable "valfonction" puis insérer dans "Value Range" 0 pour min, 1 pour max et 1 pour step et cliquer sur "DONE"
Vous devez obtenir l'interface suivante sur votre smartphone:



Étape 4 : Coder, écrire le sketch



Retourner sur la page:
https://create.arduino.cc/iot/things

Cliquer sur Regulateur.
Sur la page ouverte, cliquer sur "Sketch".
Le programme très simple permet d'envoyer un octet sur la broche TX1 (interface série) de l'Arduino Nano 33 IoT qui est transmis à l'Arduino Uno (broche Rx)
sens de marche ma = 0 ou 1
adresse entre 3 et 99
vitesse entre 100 et 128
fonction entre 150 et 178
valfonction 200 ou 201
Le connecteur USB de la carte est directement connecté aux broches de l'hôte USB du SAMD21. Ce routage vous permet d'utiliser l'Arduino NANO 33 IoT en tant que périphérique USB client (agissant comme une souris ou un clavier connecté à l'ordinateur) ou en tant que périphérique hôte USB afin que des périphériques tels qu'une souris, un clavier ou un téléphone Android puissent être connecté à l'Arduino NANO 33 IoT. Ce port peut également être utilisé comme port série virtuel à l'aide de l'objet Serial dans le langage de programmation Arduino. Les broches RX0 et TX1 constituent un deuxième port série disponible en tant que Serial1. C'est ce port que j'utilise dans ce projet.

Dans void setup() { ajouter:
Serial1.begin(9600);

Voici comment l'adresse est transmise:
void onAdresseChange() {
// Add your code here to act upon Adresse change
Serial1.write(adresse);
}

Voici comment le sens de marche est transmis:
void onMaChange() {
// Add your code here to act upon Ma change
Serial1.write(ma);
}

Voici comment la vitesse est transmise:
void onVitesseChange() {
// Add your code here to act upon Vitesse change
Serial1.write(vitesse+100);
}

Voici comment le numéro de fonction est transmis:
void onFonctionChange() {
// Add your code here to act upon Fonction change
Serial1.write(fonction+150);
}

Enfin, voici comment la valeur de la fonction (0 ou 1) est transmise:
Serial1.write(valfonction+200);
}

Vous pouvez télécharger ce sketch en cliquant ici.

Ensuite il faut transmettre ce skecth à l'Arduino Nano 33 IoT. Pour celà il faut cliquer sur le rond avec la flèche situé sous le titre "REGULATEUR".
Lorsque le sketch est téléchargé, vous pouvez déconnecter l'Arduino Nano 33 IoT du PC.

Étape 5 : Transmettre le programme de codage DCC dans l'Arduino Uno



Il faut connecter l'Arduino Uno au PC et transmettre le programme intitulé "codage_dcc_2.ino" que vous pouvez télécharger en cliquant ici.

Puis vous pouvez déconnecter l'Arduino Uno du PC.

Étape 6 : Câblage



Dans notre application, l'alimentation de 15 V est à appliquer à la broche V+ du module LMD 18200 et la tension 12V issue du régulateur est à appliquer sur les broches VIN de l'Arduino Nano et de l'Arduino Uno.
La broche TX1 de l'Arduino Nano 33 IoT est à relier à la broche RX de l'Arduino Uno.
Sur le module LMD 18200, la broche PWM est à relier à la broche 5V de l'Arduino Uno, la broche DIR est à relier à la broche 13 de l'Arduino Uno et la broche BRAKE est à relier à la broche GND de l'Arduino Uno.
Le signal DCC est disponible sur les sorties OUT1 et OUT2 du module LMD 18200.

Page suivante


Page précédente


Retour page d'accueil