Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - bobyAndCo

Pages: 1 ... 56 57 [58] 59
856
Présentez vous ! / Re : Bonjour à tous
« le: décembre 07, 2016, 11:04:47 pm »
Bonsoir Guy,

Je ne comprends pas bien ton montage puisque sur la photo de l'IR que tu présentes l'émetteur et le récepteur sont sur la même carte alors que ta photo des voies semble indiquer qu'émetteur et récepteur sont face à face. Quoi qu'il en soit et dans la mesure où la solution semble bien difficile à trouver, je t'invite, si émetteur et récepteurs sont séparées bien sûr, à alimenter l'émetteur en 1,1 ou 1,2 Volt (pas plus). Le récepteur restant lui en 5 Volts.

D'après les symptômes que tu décris, je ne suis pas certain que ça t'apporte la solution mais cela peut être une astuce pour ceux qui veulent mettre de l'IR sur leur réseau et qui rencontrent des problèmes de détection. Sur mon réseau, avec des capteurs éloignées de 13 à 15 cm, ça fonctionne au poil avec utilisation de la bibliothèque "IRremote".

Bien à toi

857
Présentez vous ! / Re : bonjour de samuel
« le: décembre 01, 2016, 08:49:46 pm »
Bienvenue Samuel,

C’est un projet qui semble bien construit. Ici bien sûr, l’Arduino est au cœur de tout notre intérêt et je n’ai pas de doute sur le fait que vous trouverez vous aussi beaucoup de plaisir. Je vous invite à vous intéresser entre autre à DCC++. Associé à VB ça peut donner des choses intéressantes. J’ai un peu cherché à associer PHP aux développements sur Arduino, mais à chaque fois, j’ai trouvé de meilleures réponses avec par exemple JavaScript (et AngularJS. Mais on est ici aussi pour confronter nos expériences. ) Par contre, j’utilise des outils proches de VB.

Au plaisir d’échanger !

Christophe
   

858
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: novembre 30, 2016, 09:54:45 pm »
ponponmvo,

Je ne vois ni les photos dont vous parlez, ni votre sketch ???

859
Ce sujet est celui qui m’intéresse le plus à l’heure actuelle. Comme je le disais sur le fil de DCC++, aujourd’hui, on peut savoir facilement que tel canton ou telle section du réseau est occupée.

Par ailleurs, avec un bon gestionnaire de réseau surtout s'il est fait « maison » il est aussi très facile de savoir l’état des locos (Arrêt, marche, sens, vitesse). Mais ce qui nous manque c’est les deux à la fois ! Telle loco est à tel endroit du circuit avec tels paramètres (vitesse, sens...).

J’ai passé beaucoup de temps avec des résultats assez satisfaisants à tester des lecteurs de code barre (douchettes qui me restaient et que j’avais dû payer de l’ordre de 30 € pièce). J’ai tout démonté et placé la seule mécanique sous la planche.

Avec HardwareSerial j’ai pu connecter 4 lecteurs par MEGA (je ne crois pas pas que l’on puisse autant sur UNO) et le tout relié par Ethernet (vous commencez à me connaître). Et des codes barres collés sous la loco. Ca ce fait, faut chercher un peu le meilleur emplacement mais j’y suis toujours parvenu même avec des contraintes d’espace. On peut aussi envisager en plus sous le dernier wagon pour détecter tout le convoi.

Bon faut pas passer trop vite dessus (jusqu’à mi vitesse disons) ce pourquoi je pensais placer ça dans des gares ou à l’entrée ou à la sortie d’un pont tournant. Ou des zones où l'on peut ralentir sans problème quelques secondes (tunnels). Mais bien sûr, ça a ses limites. Difficile d’en placer autant que de cantons.

J’ai aussi fait l’acquisition de QRE1113 de chez Sparkfun. C’est très discret sous la voie (15 mm sur 7) et je suis à peu près certain que ça pourrait lire un code barre maison. Pour 10 à 20 locos, je pense que c’est jouable, ça revient à un codage sur 24 bits on va dire d’alternance de barres noire et blanches. Pas compliqué et pas cher. 1 ou 2 € le QRE1113.

Tout ça reste un peu bricole quand même je reconnais. Et c’est sans doute RailCom la meilleure solution (si on a le budget et les décodeurs compatibles). RailCom donne en prime d'autres informations si je ne me trompe pas comme la température du moteur. Je suivrai donc avec grand intérêt ce fil.

Christophe



860
Bus DCC / Re : booster LMD18200 + manette
« le: novembre 18, 2016, 10:31:17 pm »

si j'ai bien compris il faut passer en 16 ou 18V pour l'alim
mais combien d'A ?

Pour l'instant je pense faire rouler 2 ou 3 machines  dons ça doit passer
en modèle de base sans utilisé le Pololu

surtout j'ai pas tout compris sur le branchement (je suis débutant)

Bonsoir,

Tu réponds en même temps que tu [re]poses la question. Oui effectivement pour 2 ou 3 machines 2A vont suffire. Oui tu as bien compris en HO il vaut mieux tourner à 16 V mini au rail donc calibrer en entrée 18 V c'est bien. Il est de toutes façons plus facile de baisser un courant de 18 à 16 que l'inverse  ;D Toute les alims un peu dignes de ce nom ont un potar de réglages de +/- 5% voir +/- 10%.

Tu parles aussi de branchement mais on parle bien de DCC ? Sous quelle bibliothèque ? Tu dis être débutant, je pense que tu n'a pas pour projet de te passer d'une bibliothèque, comme par exemple DCC++. Cela va être différent aussi selon le booster que tu vas choisir ? LMD18200 ? Je pense que oui, c'est le titre de ce fil ! (pas Pololu si j'ai bien compris). Le LMD18200 serait un bon choix qui fait l'unanimité sur LOCODUINO et raisonnable en prix (10 € environ sur eBay). Il te faudra aussi un MAX471 pour les courts-circuits. Est-ce que tu prévoies de tourner sur UNO, MEGA ou autres, là encore les câblages sont différents.

[Les schémas de câblages ont été largement traités sur le site http://www.locoduino.org/spip.php?article19 et j'ai moi même rédigé un post pour les sorties pour DCC++ pour UNO et MEGA http://forum.locoduino.org/index.php?topic=151.msg1932#msg1932

Précise bien tout cela et on pourra te répondre très exactement.

Bien à toi.

861
Bus DCC / Re : booster LMD18200 + manette
« le: novembre 17, 2016, 09:44:30 am »
bonjour ,

si si j'ai lu

mais il y a beaucoup de site

et pour les 3A çà suffit pour le ho ?

@+

Bonjour,

J'ai un réseau en HO que j'ai alimenté avec un LMD18200 donc en 3A et aujourd'hui avec un Pololu MC33926 lu aussi en 3A (avec DCC++). Avec 3 ou 4 locos roulantes + fonctions activées (feux + bruits + fumée qui a elle seule consomme 300 à 400 mA) je dépasse rarement 1A de consommation.

On peut donc raisonnablement penser que tant que tu ne dépasses pas 10 à 12 locos + fonctions ça doit pouvoir le faire. Par contre, je n'utilise pas le DCC pour aucun autre usage (accessoires, aiguillages, signalisation).

Mais j'ai cru voir dans ce fil que l'on parlait de 12 V. Cela ne suffirait pas en HO qui demandera au moins 15 V sur les rails donc 16 ou mieux 18 V pour l'alim.

Espérant que ça réponde à ta question.

PS : Juste pour info. J'ai utilisé le LMD18200 + MAX471 avec DCC++ qui donnait d'exellents résultats. Je suis cependant passé au Pololu MC33926 car ça m'a permis de me dispenser du MAX471 et permis d'avoir en une seule carte l'alimentation de la voie principale et de la voie de programmation alors qu'autrement il m'aurait fallu 2 LMD et 2 MAX. Cependant LE POLOLU est très sensible aux pics de tensions par exemple quand on met le circuit sous tension et il se met facilement en coupe circuit. Et sur les conseils de Dominique, j'ai ajouté 2 radiateurs sur la carte.

Christophe

862
Salut Dominique,

Ca y est, tout est au point ? Arpajon ce n'est somme toute pas si loin de la Bretagne mais j'ai déjà des engagements pris pour les deux jours. Plein de plaisir à toi !

863
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: septembre 04, 2016, 09:18:52 pm »
Pour le câblage entre l'ARDUINO (UNO ou MEGA) avec Arduino Motor Shield ou Pololu MC33926 voir :

https://github.com/DccPlusPlus/Documentation/blob/master/Motor%20Shield%20Pin%20Mappings.pdf

Ne pas oublier de couper 4, 10 et 12 sous la carte Pololu MC33926 pour éviter tout conflit (avec Ethernet en particulier) et Brake Disable et V-IN Connect sur Arduino Motor Shield. C'est bien illustré dans le document ci-dessus.

Pour le câblage entre l'ARDUINO (UNO ou MEGA) avec LMD18200 + MAX471, voir image jointe. Attention, si vous souhaitez que la voie Main et la voie Prog soient toutes les deux câblées, il vous faudra 2 X LMD18200 et 2 X MAX471.

864
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: septembre 04, 2016, 08:11:46 pm »
Oui mais ici, ça permet de tester DCC++ facilement, le controller est tout prêt !

Dans le fil sur Ethernet, je développerai la réalisation pas à pas d'un controller plus complet  dont on peut voir ici la version démo

865
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: septembre 04, 2016, 05:39:35 pm »
Bonjour à tous,

Il n’aura certainement pas échappé à ceux qui se sont intéressés à DCC++ que ce dernier permettait de communiquer par Ethernet en plus de la traditionnelle liaison série. L’un des nombreux points forts de DCC++ est qu’il fonctionne avec l’envoi de simples messages textuels structurés et ça fonctionne !

Dans ce post, je vais décrire comment paramétrer les réglages Ethernet et vous trouverez également en fin en téléchargement un petit "controller" pour piloter DCC++ avec un navigateur web ou pourquoi pas votre tablette ou votre smartphone en wifi  :)




DCC++ Base Station utilise les mêmes messages en communication série ou Ethernet. Ces messages qui sont en fait des commandes, sont envoyés au programme et doivent être placés entre ‘<’ et ‘>’. Ce que vous mettrez avant ‘<’ ou après ‘>’ sera ignoré par DCC++. Pour plus de détails sur les commandes : https://github.com/DccPlusPlus/BaseStation/wiki/Commands-for-DCCpp-BaseStation

Cette précision est importante car en communication Ethernet avec le protocole HTTP on envoie plus que cela et ce sont les ‘<’ et ‘>’  qui vont permettre d’identifier la commande à l’intérieur de tout le texte des requêtes.

Pour utiliser Ethernet vous devrez bien sûr disposer d’un Arduino MEGA (les autres ne sont pas supportés) d’un shield Ethernet. Pour le reste vous n’avez pratiquement besoin que de votre ordinateur et d’un réseau Ethernet « domestique » qui est fourni par votre box.

Dans DCC++, c’est dans le fichier Config.h que l’on sélectionne la communication par Ethernet. Ligne 34 : #define COMM_INTERFACE   à 1,2 ou 3 selon votre shield.

// DEFINE COMMUNICATIONS INTERFACE
//
//  0 = Built-in Serial Port
//  1 = Arduino.cc Ethernet/SD-Card Shield
//  2 = Arduino.org Ethernet/SD-Card Shield
//  3 = Seeed Studio Ethernet/SD-Card Shield W5200

#define COMM_INTERFACE   1

Il faudra également décommenter la ligne 41 : #define IP_ADDRESS { 192, 168, 1, 200 }

// DEFINE STATIC IP ADDRESS *OR* COMMENT OUT TO USE DHCP
//

#define IP_ADDRESS { 192, 168, 1, 200 }

Mais auparavant on va tout de même s’assurer que cette adresse IP 192.168.1.200 peut « s’insérer » dans votre réseau domestique. Sur Mac, ces informations sont disponibles dans « Préférences Système » -> Réseau.

Sur mon ordinateur, l’adresse IP est 192.168.1.31 ce qui veut dire que toutes les adresse IP de mon réseau domestique vont de 192.168.1.1 à 192.168.1.254, et que mon Arduino + Ethernet devrait pouvoir trouver sa place à l’intérieur avec l'adresse IP 192.168.1.200.

Pour ceux qui maîtrisent un peu plus ces questions, faites un PING en Mac avec « Utilitaire de réseau »



Sur PC, c'est  -> démarrer / exécuter / cmd/k ipconfig /all (je crois).

Dans le fichier confi.h, laissez le port HTTP tel qu’il est configuré à 2560. Voilà donc à quoi devrait ressembler notre code dans Config.h

Config.h
COPYRIGHT (c) 2013-2016 Gregg E. Berman

Part of DCC++ BASE STATION for the Arduino

**********************************************************************/

/////////////////////////////////////////////////////////////////////////////////////
//
// DEFINE MOTOR_SHIELD_TYPE ACCORDING TO THE FOLLOWING TABLE:
//
//  0 = ARDUINO MOTOR SHIELD          (MAX 18V/2A PER CHANNEL)
//  1 = POLOLU MC33926 MOTOR SHIELD   (MAX 28V/3A PER CHANNEL)

#define MOTOR_SHIELD_TYPE   0

/////////////////////////////////////////////////////////////////////////////////////
//
// DEFINE NUMBER OF MAIN TRACK REGISTER

#define MAX_MAIN_REGISTERS 12

/////////////////////////////////////////////////////////////////////////////////////
//
// DEFINE COMMUNICATIONS INTERFACE
//
//  0 = Built-in Serial Port
//  1 = Arduino.cc Ethernet/SD-Card Shield
//  2 = Arduino.org Ethernet/SD-Card Shield
//  3 = Seeed Studio Ethernet/SD-Card Shield W5200

#define COMM_INTERFACE   1

/////////////////////////////////////////////////////////////////////////////////////
//
// DEFINE STATIC IP ADDRESS *OR* COMMENT OUT TO USE DHCP
//

#define IP_ADDRESS { 192, 168, 1, 200 }

/////////////////////////////////////////////////////////////////////////////////////
//
// DEFINE PORT TO USE FOR ETHERNET COMMUNICATIONS INTERFACE
//

#define ETHERNET_PORT 2560

/////////////////////////////////////////////////////////////////////////////////////
//
// DEFINE MAC ADDRESS ARRAY FOR ETHERNET COMMUNICATIONS INTERFACE
//

#define MAC_ADDRESS {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEF }

/////////////////////////////////////////////////////////////////////////////////////

ATTENTION : Il manque quelques lignes de code dans DCC++ Base Station qui utilise la bibliothèque Ethernet de l’Arduino. Dans le fichier SerialCommand.cpp il faudra ajouter à la ligne 66 :

INTERFACE.println("HTTP/1.1 200 OK");
      INTERFACE.println("Content-Type: text/html");
      INTERFACE.println("Access-Control-Allow-Origin: *");
      INTERFACE.println("Connection: close");
      INTERFACE.println();

et entre les lignes 73 et 74 (qui seront devenues 80 et 81)

client.stop();

Code complet :

#elif COMM_TYPE == 1

    EthernetClient client=INTERFACE.available();

    if(client){

      INTERFACE.println("HTTP/1.1 200 OK");
      INTERFACE.println("Content-Type: text/html");
      INTERFACE.println("Access-Control-Allow-Origin: *");
      INTERFACE.println("Connection: close");
      INTERFACE.println();
     
      while(client.connected() && client.available()){        // while there is data on the network
      c=client.read();
      if(c=='<')                    // start of new command
        sprintf(commandString,"");
      else if(c=='>')               // end of new command
        parse(commandString);                   
      else if(strlen(commandString)<MAX_COMMAND_LENGTH)    // if comandString still has space, append character just read from network
        sprintf(commandString,"%s%c",commandString,c);     // otherwise, character is ignored (but continue to look for '<' or '>')
      } // while
     
      client.stop();
     
    }

  #endif

Le code étant le même pour COMM_TYPE == 0 (communication série) assurez vous que vous l’avez bien recopié dans #elif COMM_TYPE == 1

Voilà pour la programmation de la carte. Si vous uploadez, vous devez avoir un message de ce type dans le moniteur série de l’IDE avec l’adresse IP en fin :
<iDCC++ BASE STATION FOR ARDUINO MEGA / ARDUINO MOTOR SHIELD: V-1.2.1+ / Aug 22 2016 15:52:06><N1: 192.168.1.200>

Une précision toute bête mais assurez-vous que votre shield Ethernet est bien relié à votre box par un câble RJ 45 ! Vous pourrez faire un nouveau ping toujours sur cette adresse 192.168.1.200 qui doit maintenant s’afficher.

Voilà pour la carte. Votre Arduino c’est transformé en petit serveur web qui va répondre aux requêtes HTTP sur son adresse IP.

La partie "client", c'est le Mini Controller DCC++ que vous allez trouver en fin de ce post. Mais pour que cette application fonctionne, il nous faut disposer d'un serveur web qui soit interne à notre réseau domestique et qui va héberger nos pages HTML, pages de programmation, feuilles de style et images.

Vous pouvez tout a fait utiliser votre box par exemple si elle fait serveur web ou si vous avez déjà un serveur web interne à votre domicile. Mais nous allons ici choisir d’installer ce serveur web sur notre propre ordinateur et pour cela, nous allons télécharger puis installer un logiciel gratuit mais très puissant qui est à la fois un serveur web, un serveur SQL et capable d’exécuter des scripts PHP (nous en aurons besoin assez rapidement quand notre application prendra de l’importance).

Ce logiciel s’appelle MAMP dans sa version Mac, WAMP dans sa version PC et XAMPP sous Linux. Choisissez la version gratuite largement suffisante. Voici les liens de téléchargement :

Mac : https://www.mamp.info/en/
PC : http://www.wampserver.com/
Linux : https://www.apachefriends.org/fr/download.html

Normalement, l’installation ne doit vous poser aucun problème car elle est vraiment très simple. Au besoin, consultez le tuto sur  OpenClassrooms

Sur votre ordinateur, vous devez déterminer un répertoire bien précis qui va être l’espace disque réservé pour votre serveur web. Choisissez par exemple de le « ranger » dans « Mes documents/mon_petit_train/dossier_web ».

Lancez maintenant l’application MAMP (ou WAMP, ou XAMPP) qui ouvre normalement automatiquement le serveur web et le serveur mySql, (cases en haut à droite de couleur verte).



Clickez sur le bouton « Préférences » à gauche au milieu

Sur la première fenêtre, sélectionnez tout de suite le répertoire que vous avez créé précédemment et qui va devenir la racine de votre serveur web. Pour cela cliquez sur l’icone à droite de « Document Root » et naviguez jusqu’à trouver votre dossier :




Dossier racine qui pour l’instant ne contient rien. Concernant les autres onglets en haut de la fenêtre MAMP, ne changez rien.



L’onglet Ports vous renseigne sur les paramétrages de ports que MAMP a programmés automatiquement. Ne changez rien. Par contre, notez que MAMP a attribué au Port Apache (c’est à dire au serveur web) le port 8888. Nous en aurons besoin par la suite.

Cliquez sur "annuler" pour sortir et vous vous retrouvez sur la fenêtre principale de MAMP que vous allez maintenant laisser travailler bien tranquillement en tâche de fond. Ne quittez pas MAMP car vous désactiveriez alors le serveur web.

Téléchargez le fichier joint : maPageTest.html.zip que vous allez dézipper et placer dans votre répertoire web, normalement « Mes documents/mon_petit_train/dossier_web ».

Dans votre navigateur, entrez l’url : http://localhost:8888/maPageTest.html et vous devriez voir apparaître dans la page : « Hello Locoduino ! »

Si oui, bravo, vous avez fini les paramétrages, sinon, retournez en arrière pour trouver où vous vous êtes probablement trompé.

Ca y est vous allez pouvoir maintenant piloter votre locomotive sur votre circuit. Téléchargez le fichier joint controller_mini_dccpp.zip et placez le contenu du dossier dans votre répertoire « Mes documents/mon_petit_train/dossier_web » puis clickez sur le lien http://localhost:8888/controller_mini_dccpp/controller.html ou tout simplement http://localhost:8888/

Attention : Si vous avez donné à votre Arduino MEGA une autre adresse IP que 192.168.1.200:2560 vous devrez modifier la ligne 14 du fichier « controller.js » qui se trouve dans le dossier « scripts » avec un éditeur de texte et entrer votre propre adresse IP.

Voilà un controller assez complet que vous allez personnaliser. En cliquant sur la petite flèche à droite de la fenêtre « paramétrages », vous allez entrer l’adresse de votre locomotive et valider. Profitez pour entrer son nom ainsi que les noms des fonctions pour votre loco. L’image de la loco est dans le dossier « image », vous pouvez placer votre propre image et entrer l’url « img/ma_belle_loco.jpg ». Vous pouvez même si vous le souhaitez trouver une image sur internet et entrer son url entière : http://www.leffondre.fr/_media/img/large/dsc-3385-rec.jpg.

Tous les CV’s peuvent être modifiés dans autres réglages. Attention cependant à ne pas entrer n’importe quoi. Au besoin, le CV 8 auquel on affecte la valeur 8 permet de retrouver les réglages usine. N’oubliez pas modifier ensuite l’adresse sur votre controller puisque la valeur usine est 3 par défaut.

Avec ce Mini Controller, vous allez pouvoir tester DCC++ Base Station avec une locomotive. Par la suite, je développerai comment réaliser un controller pour tout un parc de locomotive en HTML 5 en utilisant le framework AngularJS. Vous verrez ainsi comment vous pourrez "jouer" à plusieurs en WIFI avec des tablettes ou des smartphones.

N’hésitez pas à me faire part de vos remarques et questions ou si vous avez besoin d'aide.

J'espère qu'avec DCC++ et votre controller web, vous connaitrez des expériences intéressantes.

Christophe.

866
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: août 31, 2016, 02:26:46 pm »
J'attends avant de modifier le seuil de détection car je trouve les résultats tellement éloignés de ce qu'il devraient être que je cherche d'abord ailleurs.

J'ai pourtant tout re-re-re vérifié, les câbles les paramètres de DCC++ Base !!! C'est sans doute un truc tout bête mais bon...

Mais je suis preneur de toute proposition...

867
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: août 31, 2016, 01:34:03 pm »
Bonjour Tanguy,

Merci pour votre aide.

En fait, j'utilise un MAX471 pour la lecture de courant. Il ne me semble pas qu'il soit nécessaire d'ajouter une résistance. Cependant, j'ai tout de même essayé puisque je me souviens que vous parliez d'une résistance dans un de vos post et j'ai donc mis 2,2 K. Mais la lecture est la même.

Comme je le disais, je fais des tests en "mélangeant" UNO et MEGA, LMD18200 et POLOLU.

Avec le LMD les résultats sont très incohérents. Avec le POLOLU plus réalistes

<r123|1|123 255>
<r123|1|123 255>
<r123|1|123 100>

Mais il n'empêche que pour la première lecture, la loco a le cv 9, pour la seconde 8 et pour la troisième 8 ???

Je n'arrive même plus à retrouver les "quelques" bons résultats que j'ai obtenus hier avec certaines configs et certaines locos.

Il y a sans doute un problème dans mon alimentation (trop fort en V ?, trop faible ?) Je suis en train d'analyser les bits pour la lecture des mesures de courant !

Amicalement

PS : Peut être pouvons nous nous tutoyer ?

868
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: août 30, 2016, 06:06:27 pm »
Bonjour à tous,

Je vous disais hier que j'avais des problèmes de lectures de CV's avec la fonction < R CV CALLBACKNUM CALLBACKSUB > (lecture des CV's d'une loco sur la voie de programmation). J'ai fait depuis toute une série de tests en utilisant, d'une part un UNO puis un MEGA et le LMD18200 et la carte POLOLU. Détail des mesures en PJ.

MEGA + LMD18200 : Aucune mesure possible, retourne -1 pour tous les CV's
MEGA + POLOLU : Mesures exactes sur 2 machines avec des décodeurs peu sophistiqués (MFX et l'autre n'a que la lumière et même pas le son). Toutes les autres machines avec des décodeurs sophistiqués (ZIMO XB 401, ESU V4.0) retournent -1, lecture impossible.

A préciser que la POLOLU se met en sécurité (sur la voie de prog) dès que l'on pose une loco gourmande en énergie !

UNO+POLOLU : Mêmes résultats qu'avec le MEGA, OK pour 2 machines avec des décodeurs peu sophistiqués, toutes les autres lecture impossible et les machines "énergivores" font disjoncter la carte.

Enfin, UNO+LMD18200, je n'ai aucune mesure cohérente, les valeurs retournées sont erronées !!!

Je ne dis pas que le problème soit universel (Dominique lit ses CV's, sur la voie principale certes, mais de façon correcte) avec un LMD18200.

J'ai aussi fait des tests en variant de 16 à 20 V (en HO) mais ça n'a rien donné.

Alors si quelqu'un à des idées  :) Merci d'avance.

Christophe

869
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: août 30, 2016, 08:59:06 am »
Bonjour Denis,

Non pas en roulant, c'est ce que disait Dominique.

Par contre, il s'est "fabriqué" une méthode :

void SerialCommand::discover() {
  commandString[0] = '1';
  parse(commandString);
  commandString[0] = 'r';
  commandString[1] = ' ';
  commandString[2] = '1';
  commandString[3] = ' ';
  commandString[4] = '1';
  commandString[5] = '2';
  commandString[6] = '3';
  commandString[7] = ' ';
  commandString[8] = '1';
  commandString[9] = '2';
  commandString[10] = '3';
  parse(commandString);
  commandString[0] = '0';
  parse(commandString);
}

"r" dans commandString[0] = 'r'; est créé ad hoc (n'existe pas à l'origine) qu'il "parse" avec une méthode pour la voie principale (qui est similaire à la méthode pour la voie de programmation)

case 'r':     // <r CV CALLBACKNUM CALLBACKSUB>
/*   
 *    reads a Configuration Variable from the decoder of an engine on the main track
 *   
 *    CV: the number of the Configuration Variable memory location in the decoder to read from (1-1024)
 *    CALLBACKNUM: an arbitrary integer (0-32767) that is ignored by the Base Station and is simply echoed back in the output - useful for external programs that call this function
 *    CALLBACKSUB: a second arbitrary integer (0-32767) that is ignored by the Base Station and is simply echoed back in the output - useful for external programs (e.g. DCC++ Interface) that call this function
 *   
 *    returns: <r CALLBACKNUM|CALLBACKSUB|CV VALUE)
 *    where VALUE is a number from 0-255 as read from the requested CV, or -1 if read could not be verified
*/   
      mRegs->readCV_Main(com+1);
      break;

On voit case 'r' au début et  mRegs-> en fin (pour la voie principale)

Le tout appelé dans le setup pour faire apparître l'adresse dans le moniteur série :

mainRegs.addressDccToDiscover = 3;
  SerialCommand::discover(); // dcc adress found is stored in readCV_Main()
  Serial.println();
  Serial.print("adresse DCC : ");Serial.println(mainRegs.addressDccToDiscover);

Voilà.

Christophe


870
Le logiciel DCC++ / Re : DCC++ BaseStation
« le: août 30, 2016, 07:30:10 am »
Bonjour Dominique,

Oui j'ai regardé ton code. Les seules différences sont que tu es sur la voie principale et moi sur la voie de programmation et que tu utilises un LMD18200 et moi un Pololu !

Je vais commencer par changer le booster pour tester. J'ai 16 V (en HO) à l'entrée du booster, cela est correct, non ?

Je fais de nouveaux tests ce matin et fais le retour.

Merci

Christophe

Pages: 1 ... 56 57 [58] 59