LOCODUINO

Forum de discussion
Dépôt GIT Locoduino
Flux RSS

samedi 18 novembre 2017

48 visiteurs en ce moment

Mise en oeuvre du Bus CAN entre modules Arduino (2)

2ème partie : la programmation

. Par : Dominique, Jean-Luc

Pour se fixer les idées, on va commencer par décrire les éléments logiciels qui font partie d’une carte de commande d’aiguilles, par exemple à base d’un Mega2560, sans entrer dans le détail de la façon de commander les moteurs d’aiguille (juste un petit peu), par les échanges CAN. Ces éléments sont présentés dans l’ordre logique d’un programme Arduino. (...)

Retourner à l'article

Vous répondez à :

Mise en oeuvre du Bus CAN entre modules Arduino (2) 4 janvier 2016 10:50, par Dominique

Bonjour,

La réponse est OUI évidement et je pensais, à tort, que la réponse était dans l’article.

Dans les sketchs de vos 2 Arduino, vous installez tout ce qui est écrit dans l’article et vous choisissez un format de message qui correspond à l’action "BP", avec un Id = votre_Id et une donnée qui peut être aussi simple que 1 bit dans le premier octet (1=true=enfoncé, 0=false=relaché, par exemple).

Dans le sketch de l’Arduino qui gère le BP, vous testez l’état du BP (avec anti-rebond de préférence) et vous envoyez le message correspondant à son état à chaque changement, avec la routine CANMessage(byte Message) dans laquelle vous avez mis la valeur de l’Id choisie et Message = 0 ou 1 selon l’état du BP.

En gros, la routine CANMessage() remplace l’instruction digitalWrite() qui commande la Led, si celle-ci était sur le même Arduino que le BP.

Dans le sketch de l’Arduino qui gère a Led, vous "décodez" le message reçu comme indiqué plus haut :

  1. switch (RId) {
  2. case votre_Id:
  3. digitalWrite(Ledpin, Rbuf[0]);
  4. break;
  5. }

Voilà c’est aussi simple que ça !

Dites nous bien si ça marche !

PS : n’oubliez pas les résistances de 120 Ohm à chaque extrémité du bus CAN

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

59 Messages

Rubrique Projets

Un chenillard de DEL

Enseigne de magasin

Feux tricolores

Multi-animations lumineuses

L’Arduino et le système de commande numérique DCC

Un décodeur d’accessoire DCC versatile basé sur Arduino

Un moniteur de signaux DCC

Une barrière infrarouge

Un capteur RFID

Un TCO xpressnet

Une animation sonore

L’Arduino au coeur des systèmes de pilotage analogiques ou numériques

Calcul de la vitesse d’un train miniature avec l’Arduino

La génèse d’un réseau 100% Arduino

Une horloge à échelle H0

Simulateur de soudure à arc

Un automatisme de Passage à Niveau

La rétro-signalisation sur Arduino

Décodeur pour aiguillage à solénoïdes sur Arduino

Un décodeur DCC pour les signaux à deux ou trois feux sur Arduino NANO/UNO

Etude d’un passage à niveau universel

Réalisation pratique d’un système de mesure de vitesse à l’échelle N

Une Passerelle entre le bus S88 et le bus CAN pour la rétro signalisation

Un décodeur DCC pour 16 feux tricolores

Block Automatique Lumineux avec la carte shield "Arduino 4 relays"

Réalisation d’un affichage de gare ARRIVEE DEPART

Ménage à trois (Ordinateur, Arduino, réseau)

Comment piloter trains et accessoires en DCC avec un Arduino (1)

Comment piloter trains et accessoires en DCC avec un Arduino (2)

Comment piloter trains et accessoires en DCC avec un Arduino (3)

Comment piloter trains et accessoires en DCC avec un Arduino (4)

SGDD : Système de Gestion DD (1)

SGDD : Système de Gestion DD (2)

SGDD : Système de Gestion DD (3)

La PWM : Qu’est-ce que c’est ? (1)

La PWM : Qu’est-ce que c’est ? (2)

La PWM : Qu’est ce que c’est ? (3)

La PWM : Qu’est ce que c’est ? (4)

Mise en oeuvre du Bus CAN entre modules Arduino (1)

Mise en oeuvre du Bus CAN entre modules Arduino (2)

Un gestionnaire en C++ pour votre réseau (1)

Un gestionnaire en C++ pour votre réseau (2)

Un gestionnaire en C++ pour votre réseau (3)

Un gestionnaire en C++ pour votre réseau (4)

Réalisation de centrales DCC avec le logiciel libre DCC++ (1)

Réalisation de centrales DCC avec le logiciel libre DCC++ (2)

Réalisation de centrales DCC avec le logiciel libre DCC++ (3)

Contrôleur à télécommande infrarouge pour centrale DCC++

Gestion d’une gare cachée (1)

Gestion d’une gare cachée (2)

Gestion d’une gare cachée (3)

Les derniers articles

Ménage à trois (Ordinateur, Arduino, réseau)


Christian

La PWM : Qu’est ce que c’est ? (4)


Jean-Luc

Block Automatique Lumineux avec la carte shield "Arduino 4 relays"


Christian

Réalisation d’un affichage de gare ARRIVEE DEPART


Gilbert

Contrôleur à télécommande infrarouge pour centrale DCC++


Daniel

La PWM : Qu’est ce que c’est ? (3)


Jean-Luc

Réalisation de centrales DCC avec le logiciel libre DCC++ (3)


bobyAndCo

Un gestionnaire en C++ pour votre réseau (4)


Pierre59

Un décodeur DCC pour 16 feux tricolores


Dominique, JPClaude, Thierry

Réalisation de centrales DCC avec le logiciel libre DCC++ (2)


bobyAndCo

Les articles les plus lus

La PWM : Qu’est-ce que c’est ? (1)

Réalisation d’un affichage de gare ARRIVEE DEPART

L’Arduino au coeur des systèmes de pilotage analogiques ou numériques

Comment piloter trains et accessoires en DCC avec un Arduino (1)

Ménage à trois (Ordinateur, Arduino, réseau)

Block Automatique Lumineux avec la carte shield "Arduino 4 relays"

La rétro-signalisation sur Arduino

Mise en oeuvre du Bus CAN entre modules Arduino (2)

Comment piloter trains et accessoires en DCC avec un Arduino (3)

L’Arduino et le système de commande numérique DCC