LOCODUINO

Parlons Arduino => Trucs & astuces => Discussion démarrée par: brice45 le octobre 10, 2024, 02:41:22 pm

Titre: Rétrosignalisation S88 et UNO
Posté par: brice45 le octobre 10, 2024, 02:41:22 pm
Bonjour à tous,

Je m'intéresse actuellement sur la rétrosignalisation avec un bus S88 et mon arduino Uno.

J'ai téléchargé la bibliothèque UNO_S88.

J'ai copier le code de l'article138 dans l'IDE, quand je le compile une erreur de compilation pour la carte Arduino Uno.

J'ai dû raté quelque chose, alors si quelqu'un peut m'aider ça me permettrai d'avancer sur le sujet.

Je vous remercie, et vous souhaite une bonne journée.

Cordialement Brice45

 
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: Dominique le octobre 11, 2024, 02:09:34 pm
Peut-être faudrait-il recopier le texte de l’erreur (on ne peut pas deviner), quelle version d’IDE et si vous avez bien les bonnes bibliothèques et leurs versions.

C’est sûrement la que ça se passe !

Plus un schéma de votre installation
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le octobre 11, 2024, 06:37:28 pm
Merci pour votre réponse, je vais regardé, ça va m'aider.

Cordialement
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le octobre 11, 2024, 07:03:16 pm
le code erreur est : erreur de compilation pour la carte Arduino Uno.

pour l'instant je n'ai pas de circuit de test, je souhaite simplement compiler le programme.

Merci
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: lebelge2 le octobre 11, 2024, 07:19:39 pm
Chez moi, ça compile correctement !

#include <UNO_S88.h>    // la librairie S88 pour les UNO/Nano

void setup() {
  S88_Setup(16);        // on donne le nombre capteur 8 ou 16
}

void loop() {
  S88_Loop();           // boucle sur les capteurs
}

Le croquis utilise 1614 octets (5%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 27 octets (1%) de mémoire dynamique, ce qui laisse 2021 octets pour les variables locales. Le maximum est de 2048 octets.
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: trimarco232 le octobre 11, 2024, 11:26:50 pm
Bonjour,
peut-être la librairie doit encore être installée ?
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: nopxor le octobre 12, 2024, 08:08:48 am
Installer une bibliothèque
https://www.locoduino.org/spip.php?article71
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le octobre 15, 2024, 10:46:59 am
Bonjour,
Je vous remercie de vos réponses, j'ai un peu de temps aujourd'hui donc je me penche dessus mais avec votre aide le problème va être réglé.
Cordialement
brice45
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le octobre 15, 2024, 11:32:09 am
Rebonjour,
Pour faire cours, j'utilise Arduino IDE 2.3.3 je copie le code du site Locoduino de l'article 138 dont voici le code que je je voudrais vérifier :

#include <UNO_S88.h>    // la librairie S88 pour les UNO/Nano

void setup() {
  S88_Setup(16);        // on donne le nombre capteur 8 ou 16
}

void loop() {
  S88_Loop();           // boucle sur les capteurs
}
#include <Arduino.h>
void S88_Setup(int nb_sensors);
void S88_Loop();

#include "UNO_S88.h"
#include <Arduino.h>

const byte clockS88 = 2;      // clock S88 pin = 2
int clockCounter=0;           // 16 tops
const byte PSS88 = 3;         // PS S88 pin = 3
long loopCounter=0;           //for reset from ECOS
const byte dataIn=0;          //data input from next Arduino in S88 chain pin = 0
const byte dataOut=1;         //data output pin=1
unsigned int sensors=0;       // sensor 8/16 bits
unsigned int data=0xffff;     // buffer
int nbsensors;                // nb sensors 8 or 16
int beginPin = 4;             // first pin
int endPin8 = 12;             // last pin for 8 sensors
int endPin16 = 21;            // last pin for 16 sensors
int endPin;


void PS() {
    clockCounter=0;
    data=sensors;
    sensors=0;
    loopCounter++;
}

void clock() {
    digitalWrite(dataOut,bitRead(data,clockCounter)); // shift to next
    delayMicroseconds(16);
    bitWrite(data,clockCounter,digitalRead(dataIn)); // shift from previous
    clockCounter =(clockCounter +1) % nbsensors;     // modulo nb sensors
}

void S88_Setup(int nb_sensors) {
    nbsensors = nb_sensors;
    if (nbsensors == 8) {endPin = endPin8;} else {endPin = endPin16;}
    pinMode(clockS88, INPUT_PULLUP);
    attachInterrupt(0,clock,RISING);    //pin 2 = clock interrupt 0
    pinMode(PSS88, INPUT_PULLUP);
    attachInterrupt(1,PS,RISING);       //pin 3 = PS interrupt 1
    pinMode(dataIn,INPUT_PULLUP);       //pin 0 = data in from next Arduino S88 in chain
    pinMode(dataOut, OUTPUT);           //pin 1 = data out to ECoS or to previous Arduino in S88 chain
    for (int i = beginPin; i< endPin;i++) {pinMode(i,INPUT_PULLUP);}  // init sensors
}

void S88_Loop() {
    if (loopCounter==20){bitSet(sensors,0);}  // reset management
    for (int i = 4; i<endPin;i++) {if (!digitalRead(i)){bitSet(sensors,i-4);}} // update sensors
}

donc je ne vois pas d'où vient le problème.

Je serais ravi d'avoir quelques explications et je vous en remercie et vous souhaite une bonne journée.

Cordialement
Brice45
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: Dominique le octobre 15, 2024, 05:39:44 pm
Citer
donc je ne vois pas d'où vient le problème.
Citer
le code erreur est : erreur de compilation pour la carte Arduino Uno.

Nous non plus !
Commencez par recopier la totalité du message d'erreur en dessous l'éditeur de l'IDE, pas seulement la dernière ligne  >:(
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: lebelge2 le octobre 15, 2024, 07:56:47 pm
Il ne faut pas recopier le code de la librairie dans le .ino !
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le octobre 16, 2024, 10:15:18 am
Bonjour, voilà une réponse simple et efficace, il est vrai que j'aurais dû examiner le code plus sérieusement.

Merci lebelge2.

Bonne journée à tous.
brice45
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: nopxor le octobre 16, 2024, 11:26:02 am
Bonjour,

Il faut installer la librairie, pas la copier colller.
Elle est fournie en bas de page sous forme de fichier zip à télécharger.
https://www.locoduino.org/spip.php?article138

Relisez si vous ne l'avez déjà fait l'article https://www.locoduino.org/spip.php?article71
Où vous verrez que c'est la Méthode facile 2 qui est recommandée pour l'installer.

le programme qui fait 7 lignes lui est copié collé dans l'éditeur
#include <UNO_S88.h>    // la librairie S88 pour les UNO/Nano

void setup() {
  S88_Setup(16);        // on donne le nombre capteur 8 ou 16
}

void loop() {
  S88_Loop();           // boucle sur les capteurs
}

il fait appel à la librairie par sa première ligne:
#include <UNO_S88.h>    // la librairie S88 pour les UNO/Nano
le compilateur lorsqu'il lit cette ligne, va automatiquement faire appel à la librairie
pour autant qu'elle ait été préalablement convenablement installée.

Pour insérer du code de façon lisible dans le forum, il faut se servir de l'icone  # et coller le code entre les 2 balises
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le octobre 17, 2024, 01:44:35 pm
Bonjour,
 Bien évidement j'ai installé la bibliothèque en suivant les explications.
qu'est ce que je fais de UNO_S88.cpp ?

Pas très claire tout ça!!  :-\

Bonne journée
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: nopxor le octobre 17, 2024, 02:01:43 pm
Bonjour,

UNO_S88.cpp fait partie de la librairie.
Une fois la librairie installée, on ne s'en occupe pas.

Les librairies comportent généralement un fichier "en tête" xxx.h et un fichier xxx.cpp

Si la librairie est installée, la compilation du programme devrait s'effectuer normalement.
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le octobre 17, 2024, 04:48:06 pm
Bien, merci.

En fait le  fichier "UNO_S88.cpp" fait partie de la librairie "UNO_S88.h".

je vais faire un test.

Cordialement
brice45
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le octobre 17, 2024, 06:02:36 pm
Bonsoir,

Après avoir réalisé les raccordements de l'arduino vers mon dernier RM-GB-8-N LDT
et inséré un nouveau canton sur mon réseau, ce test fonctionne bien.  ;D

Je vous remercie pour votre aide et vous souhaite une bonne soirée.

Cordialement
Brice45
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: nopxor le octobre 17, 2024, 07:20:46 pm
Bonsoir,

Je suis content que tout fonctionne bien.  :)

Bonne soirée.
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 02, 2024, 03:06:33 pm
bonjour à tous,

Suite de mon post du 17 octobre où je n'avais créé qu'un canton et cela fonctionnait bien, mais sans me rendre compte que les 8 adresses du module que j'avais rajouté dans ma config passent en occupation dès lors que j'occupe le canton 1 qui est le seul de câblé pour le moment. D'ailleurs quand je teste les autres adresses elles ne fonctionnent pas.

Pour le circuit j'ai câblé un pont de diodes et un LTV844.

Pouvez vous m'aider à résoudre ce problème?
Merci et bonne journée.

cordialement
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: trimarco232 le novembre 04, 2024, 09:14:59 pm
Bonjour,
peux-tu :
- nous communiquer ton code actuel
- nous dire comment son câblées , le cas échéant , le 15 entrées libres ?
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 05, 2024, 10:58:40 am
Bonjour trimarco,

Merci de me répondre,
en fait j'ai téléversé le code de l'article 138 dans mon Uno et installé la bibliothèque UNO_S88.
J'ai réalisé le petit circuit sur une bread board avec un pont redresseur et un LTV844 où je n'ai câblé
qu'un circuit pour faire l'essai avec un seul canton.
J'ai modifié ma config DCC dans le logiciel Wdp2021 pour ajouter le module de l'arduino avec 8 capteurs
et j'ai fais l'essai, ça marche, sauf que en regardant le module arduino dans ma config DCC tous les capteurs
libres passent également en occupation et si je déplace le fil du capteur de la pin 4 aux autres pins (de 5 à 11)
ça ne fonctionne pas.

Voilà le souci. Faudrait-il apporter quelques modifs au code sachant que j'ai raccordé l'arduino avec un câble
sur le connecteur S88 de mon dernier RM-GB-8-N?

Bonne journée.
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: trimarco232 le novembre 05, 2024, 05:22:28 pm
cela doit fonctionner , alors on va tâtonner un peu , pour cerner le bug
peux-tu raccorder l'arduino à la place du dernier module S88 , pour voir ce que ça donne (laisser le dernier module de côté , pour l'instant) ?
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 05, 2024, 06:01:20 pm
Alors, j'ai raccordé l'arduino à la place du dernier module et lorsque je pose un wagon
sur le canton (pin 4) les 8 capteurs de l'arduino passent en occupation ainsi que les 8 derniers
du module précédent c'est à dire de 9 à 16.
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 05, 2024, 06:09:48 pm
en complément du message précédent, l'arduino étant toujours branché mais le canton cette fois est libre
les capteurs 9 à 16 ne fonctionnent plus sur le module S88 précédent.
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: trimarco232 le novembre 06, 2024, 07:58:38 pm
au fait , qu'entends-tu par module précédent , c'est celui qui est + près de la centrale , ou celui qui est + près de la fin de chaîne ?
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 06, 2024, 08:42:28 pm
Celui qui est le dernier de la chaine.
Maintenant j'ai modifié la config et j'ai
 connecté l'arduino sur un autre canal
de mon hsi 88 usb et ça fait la même
 chose.
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: trimarco232 le novembre 06, 2024, 11:46:20 pm
amha , je ne pense pas que l'on puisse panacher des arduinos et des modules classiques sur le même port S88 , l'intérêt du projet est de tout remplacer par des arduinos ...
pour commencer , il faudrait raccorder l'arduino seul sur la centrale , tu l'avais fait ?


Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 07, 2024, 11:25:00 am
oui et ça ne change rien  :(
maintenant je vais essayer une autre méthode de détection que j'avais testé
pour allumer une led. 
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 07, 2024, 11:49:43 am
ça ne change rien également, je pense que le problème est dû par le fait
que mon bus s88 est raccordé sur un HSI-88-USB puis à l'ordinateur.
peut-être faudrait-il que je déclare un nouveau système de détection?
ou bien apporter des modifs au code?
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: trimarco232 le novembre 07, 2024, 07:30:19 pm
si l'interface usb  fonctionne avec les modules classiques , elle doit aussi fonctionner avec les arduino
le problème provient très vraisemblablement de ton programme ou de ton raccordement , il serait bien qu'à présent tu nous les montres
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 07, 2024, 08:41:56 pm
J'ai installé la bibliothèque UNO_S88 sans problème dans le dossier librairies et téléchargé le code de 7 lignes dans le uno.

je ne parviens pas à mettre la photo du montage ici

Titre: Re : Rétrosignalisation S88 et UNO
Posté par: trimarco232 le novembre 08, 2024, 11:26:12 am
merci (manque encore le code)
je ne connais pas ces breadboard , est-ce qu'on a les continuités au niveau des lignes de bus , telles que je les ai ajouté en rouge et en noir ?
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 08, 2024, 11:31:51 am
Bonjour Trimarco,

Après avoir regardé la qualité de la photo de mon câblage  pour la poster
je me suis aperçu que j'avais inversé le fil vert et le jaune  (broche 2 et 3) :-[
J'étais dans la certitude que mon câblage était bon, donc je n'ai plus vérifié.
Maintenant tout fonctionne.

quel neuneu!!!!  >:( , je t'ai fais perdre du temps je m'en excuse et te remercie
pour ta collaboration.

Je te souhaite une bonne journée.

Cordialement
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 08, 2024, 11:34:59 am
oui j'ai eu ça avec le coffret Arduino  ;)
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: trimarco232 le novembre 08, 2024, 04:15:32 pm
bien , peux-tu nous dire si cela fonctionne en panachant avec les modules S88 du commerce ?
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 12, 2024, 12:17:24 pm
Alors, en raccordant l'arduino sur le bus s88 derrière le dernier module rm-gb-8-n ainsi
qu'en premier sur une autre branche du HSI 88 USB ça fonctionne.

Maintenant est-ce utile de panacher les modules?

Je suis maintenant en train de concevoir une carte de 8 capteurs pour continuer mes essais.

Encore merci pour ton aide.

Cordialement,
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: trimarco232 le novembre 12, 2024, 10:44:55 pm
ceci (qui fonctionnerait selon toi) :
arduino3 -> arduino2 -> arduino1 -> rm-gb-8-n3 -> rm-gb-8-n2 -> rm-gb-8-n1-> HSI 88 USB
ou cela ?
rm-gb-8-n3 -> rm-gb-8-n2 -> rm-gb-8-n1-> arduino3 -> arduino2 -> arduino1 -> HSI 88 USB

panacher les modules , ce serait , si l'on ne dispose que d'un port S88 , pour ajouter des arduino tout en gardant ses rm-gb-8-n ... mais il serait en effet tout aussi bien de :
- revendre les  rm-gb-8-n , et n'avoir que des arduino , c'est le but du projet
- si on dispose de 2 ports S88 , regrouper les  rm-gb-8-n sur un port , et les arduinos sur l'autre port
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 14, 2024, 10:41:40 am
alors pour ma config qui est  arduino1 -> rm-gb-8-n4 -> rm-gb-8-n3 -> rm-gb-8-n2-> rm-gb-8-n1->HSI 88 USB ça fonctionne,
maintenant il faudrait faire un essai avec un 2eme arduino derrière l'arduino1.
Pour mon réseau il me manquait 4 capteurs pour 4 cantons, donc je voulais éviter d'acheter un dernier rm-gb-8-n de 8 capteurs.
je ferais peut-être l'essai mais là je voudrais continuer mon réseau.

Si quelqu'un veut le faire.......
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: trimarco232 le novembre 14, 2024, 11:57:00 am
merci , pas de souci , on a une info , l'autre n'est pas importante
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le novembre 14, 2024, 12:14:06 pm
Bon, un défi est un défi....

En fait je n'ai pas pût résister à l'expérimentation  ;)

J'ai ajouté un autre arduino  derrière l'arduino1 sur le bus existant et ça marche

donc: arduino2 -> arduino1 -> rm-gb-8-n4 -> rm-gb-8-n3 -> rm-gb-8-n2-> rm-gb-8-n1->HSI 88 USB ça fonctionne  :D

Allez bonne journée.
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: trimarco232 le novembre 17, 2024, 05:48:19 pm
allez merci pareillement !  :D
Titre: Re : Rétrosignalisation S88 et UNO
Posté par: brice45 le janvier 27, 2025, 06:14:21 pm
Bonjour à tous,

Meilleurs voeux pour cette nouvelle année et que nos réalisations continuent à nous émerveiller.

Bon, pour finir avec la retro et arduino, j'ai concrétisé le montage avec un circuit 8 entrées raccordées sur un arduino uno et branché sur mon bus S88.

Voilà, il me manquait 4 cantons pour mon dépôt je vais pouvoir continuer.