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.


Sujets - becbunsen

Pages: [1]
1
Bus CAN / Mes débuts en CAN, entre déboires et réussite...
« le: février 09, 2024, 10:42:32 am »
Bonjour,

Je me suis décidé à écrire ce fil après avoir vraiment rencontré pas mal de difficulté à mettre en place un réseau CAN qui fonctionne. (et ce n'est pas encore tout à fait le cas...)
Le but premier pour moi était de faire tourner sur arduino même si je m'aperçois que la solution avec un ESP 32 peut apporter pas mal de choses.

Le premier point de difficulté est le peu d'informations disponibles sur le Net, le CAN n'est pas si souvent employé dans les projets DIY autres que ferroviaire. La bibliotheque ACAN fonctionne trés bien mais elle est trés pauvre en exemple et ils ne sont trés parlants.

L'une des meilleures sources d'informations est sur ce site et c'est l'article de Jean-Luc : https://www.locoduino.org/spip.php?article268
C'est en reprenant l'article ligne par ligne que j'ai réussi à bien tout faire fonctionner.
juste une petite critique: dans les exemples, il y' a des lignes qui ne servent pas ( des include Canbuffer, ACANsettings, ...) On se pose beaucoup de questions à propos de ces lignes quand ça ne marche chez nous.

Au final, l'origine principal de mes déboires est la sensibilité de la liaison SPI: j'ai au départ utilisé 2 UNO avec 2 Shield Can. j'avais toujours des erreurs "problemes de connexion", j'ai trituré le code dans tout les sens pour finir par m'apercevoir qu'il fallait appuyer un peu sur le shield pour que ça marche (pourtant enfoncé à fond), de même, j'ai ensuite voulu utilser des Nano avec des modules MCP2515, je m'en suis sorti après avoir changé des cables dupont, et même la platine d'essai avec bornier qui reçoit le nano, la continuité au testeur était bonne entre les bornes du nano et les bornes du module. Ca parait trés bête, c'est du niveau débutant++ mais c'est des heures de passée et de la perseverance pour au final arriver à faire marcher. Je pense qu'on a moins de soucis en partant sur un CI et c'est en tous cas important de chercher de ce coté quand on expérimente et que ça ne marche pas.

Je me permet donc de mettre un bout de code pour UNO ou NANO qui ne contient qu'une seule chose et rien d'autre: l'initiation du CAN. Si vous avez "connexion OK", c'est déja une belle etape de franchie et qu'on commencer à s'amuser avec les messages. Juste vérifier que la broche int est raccordé à la broche D2 et que le CS à la broche D10.


#include <ACAN2515.h> // c'est quand même le minimum

//Broches pour le chip select et l'interruption du MCP2515
static const uint8_t MCP2515_CS  = 10;
static const uint8_t MCP2515_INT = 2;

/*
 * L'objet pour piloter le MCP2515. SPI designe l'objet
 * utilise pour la connexion SPI car sur certaines cartes
 * notamment les Teensy, il peut y avoir plusieurs SPI.
 */
ACAN2515 controleurCAN(MCP2515_CS, SPI, MCP2515_INT);

/*
 * La frequence du quartz du MCP2515 en hertz.
 * Sur les cartes CAN que l'on peut trouvez chez les revendeurs
 * chinois, il s'agit generalement d'un quartz 8MHz
 */
static const uint32_t FREQUENCE_DU_QUARTZ = 8ul * 1000ul * 1000ul;

//La fréquence du bus CAN
static const uint32_t FREQUENCE_DU_BUS_CAN = 125ul * 1000ul;

CANMessage canSend;  // ces 2 lignes sont inutiles pour initialiser le CAN
CANMessage canRec;   // on crée juste 2 objets messages can: un pour envoyer, un pour recevoir

void setup()
{
  /* Demarre la ligne serie */
  Serial.begin(115200);
  /* Demarre le SPI */
  SPI.begin();
  /* Configure le MCP2515 */
  Serial.println("Configuration du MCP2515 ");
  /* Fixe la vitesse du bus a 125 kbits/s */
  ACAN2515Settings reglages(FREQUENCE_DU_QUARTZ, FREQUENCE_DU_BUS_CAN);
  /* Demarre le CAN */
  const uint16_t codeErreur = controleurCAN.begin(reglages, [] { controleurCAN.isr(); } );
  /* Verifie que tout est ok */
  if (codeErreur == 0) {
    Serial.println("Configuration ok");
  }
  else {
    Serial.println("Probleme de connexion");
    while (1);
  }

void loop()
{
//Rien pour l'instant
}


Au final, cette partie est la plus pénible quand ca ne marche pas. La partie échange de message est beaucoup plus intéressante et facile à manipuler . La liaison CAN est en effet trés fiable et je n'ai constaté aucune perte ou erreur d'infos dans mes essais

2
Bus CAN / Question mise en place CAN dans la centrale DCC
« le: décembre 06, 2023, 09:44:26 pm »
Bonjour,

J'envisage de mettre en place un bus CAN dans mon reseau pour la retrosignalisation et les automatismes.
J'ai 2 questions de débutants:

- Comment implanter le CAN dans la centrale DCC ? j'ai un Mega avec un shield moteur, je le commande trés facilement en liaison serie. je peux contourner le probleme avec un arduino qui va transcrire mes ordres CAN en messages serie pour la centrale mais je pense qu'on peut brancher directement l'interface CAN sur le mega de la centrale. je ne sais pas alors comment gerer le code

- Existe t'il un protocole "tout fait" pour les messages CAN concernant le modelisme ferroviaire ou chacun crée le sien selon ses besoins?

Merci de vos retours
Julien

3
Vos projets / Code decodeur pour aiguillage à solenoides
« le: novembre 30, 2023, 09:45:00 pm »
Bonjour à tous,

Je viens de réaliser le décodeur pour aiguillages à solenoides
https://www.locoduino.org/spip.php?article318

J'ai suivi scrupuleusement la liste des composants, je comprend bien le schema electronique mais je bute sur la partie logicielle:
J'ai chargé tel quel le code fourni sur la page, mais je ne sais pas à quelle adresse il répond, ou faut il l'indiquer, quelle commande DCC faut il envoyer, j'utilise "ma premiere centrale DCC" avec un arduino mega et un shield moteur. les locomotives fonctionnent bien.

Je ne suis pas sur non plus de la commande à envoyer, j'ai essayé <a 001 0 1> et d'autres combinaisons et adresses mais sans succés. je ne sais pas si mon arduino reçoit bien les trames DCC.
il me manque peut-être le petit condensateur ceramique à rajouter sur l'optocoupleur.

Bref, si vous avez une idée pour tester....

J'ai cherché si il y'avait eu un forum concernant ce montage mais je n'ai pas trouvé

Merci de votre aide

4
Bus DCC / Alimenter arduino decodeur DCC par le DCC
« le: avril 23, 2023, 11:48:24 pm »
Bonjour,

Je débute un peu en digital même si je connais deja bien l'arduino.
Le DCC transportant à la fois le courant et le signal, est il possible de se "brancher" sur le courant des voies, lire le signal DCC puis de commander quelques aiguilles, voir quelques Leds?
il faut bien sur passer de 18vAC a 5vAC
Le cablage entre la base et une petite gare par exemple devient donc inexistant. Ce qui est trés appréciable pour un petit reseau modulaire démontable.
j'utilise un booster LMD 18200

y'a t'il un inconvenient à prendre un peu de courant sur les voies? (toujours sur un petit reseau)
Quels sont les problemes que je risque de rencontrer?

Merci de vos retours

5
Débuter / controler aiguillage à solénoide avec un transistor
« le: juin 03, 2020, 10:30:02 pm »
Bonjour,
Je débute un peu avec l'arduino et j'ai fait un premier réseau mais je suis confronté à un probleme avec mes aiguillages:
J'ai réalisé le controle des aiguillages à solénoides avec un LN298 comme dans l'exemple sur le site mais j'ai grillé mon aiguillage.
En fait sur ce montage et sur les autres avec microprocesseur, le circuit est en tension quand la borne est à LOW et il faut donc HIGH en permanence pour le repos. Quand tout est branché et que ça marche, pas de soucis, mais il suffit d'un arret de l'arduino, d'un fil mal branché ou une bricole pour que les bornes passent à LOW et d' envoyer du courant sur les solenoides pendant de longues secondes( ou minutes ...)

Je trouve qu'il serait plus sécurisant pour ce genre d'aiguillage d'envoyer une impulsion avec une commande HIGH. De plus, le LN298 me parait surdimensionné pour envoyer juste une impulsion 12v de 0,5s.
Ne pourrait-on pas utiliser un transistor qui mettrait à la masse les bobines uniquement quand il est alimenté?

Mes maigres connaissances me disent que ça doit fonctionner mais ça s'arrete la: quel transistor?  besoin d'autres composants? possibilité d'ajouter une petite led de controle....
Bref si un spécialiste pouvait m'orienter pour faire un petit truc simple....

Merci Beaucoup
Julien
 

6
Débuter / plantage arduino incompréhensible
« le: mars 10, 2020, 05:45:51 pm »
Bonjour,

Bien qu'ayant déja quelques bases de programmation, je me suis mis à l'arduino en découvrant ce site et car j'ai redéballé mon vieux train electrique jouef avec mon fils.

j'ai donc réalisé un reseau avec un TCO à base bouton poussoir et une carte 8 relais qui alimente 6 différents secteurs du reseau. j'ai prévu des LN 298 pour controler mes aiguillages à bobines mais ils ne sont pas encore montés.
Jusque la, tout va bien, tout fonctionne parfaitement, les relais commutent comme il faut et autant que je veux

Dés que je met une loco en route, mon arduino plante aprés 5 à 10 sec. je ne comprend pas car il n'existe aucune liaison electrique entre d'un coté le transfo et les rails et de l'autre mon systeme Arduino. j'ai essayé de changer de transfo mais pas de changement. je précise que ma carte relais est alimentée par une petite carte de regulation avec un voltmetre qui affiche toujours 5.0V.
A priori, les bornes des relais sont complétement indépendantes du circuit de commande.
Un reset de la carte et ça remarche tant que je veux tant qu'aucune locomotive ne tourne...

je n'ai pas d'idée.....
Merci si vous en avez une !! 

ma carte relais: https://www.velleman.eu/products/view/?id=439228
avec son datasheet : https://www.velleman.eu/downloads/29/infosheets/vma436_scheme.pdf

Pages: [1]