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 - babskwal

Pages: 1 [2] 3 4 5
16
Vos projets / Re : L298 et relais
« le: janvier 18, 2022, 01:09:26 pm »
En fait j'ai suivi les articles de Locoduino sur la PWM pour alimenter les trains : https://www.locoduino.org/spip.php?article47 et suivants. Ça marchait bien à 32 kHz, j'ai effectivement pas aimé le spectre de l'audible. Je ne me souviens plus ce que ça donnait dans les fréquences en dessous de l'audible...

Je comprends que j'ai le choix entre des fréquences assez basses si ça fonctionne pour les locos avec le PCA9685, ou rester sur la PWM d'un Arduino pour des fréquences élevées. Entre les 16 d'un PCA9685 ou les 15 d'un Arduino Mega, c'est presque pareil en nombre ! Mais par contre la bibliothèque PWMFreq ne fonctionne pas sur un Mega.

17
Vos projets / Re : L298 et relais
« le: janvier 17, 2022, 10:54:41 pm »
Merdasse ! J'étais plutôt sur du 32kHz... et les trains roulent sans pub en 60Hz ?

18
Vos projets / Re : L298 et relais
« le: janvier 17, 2022, 08:58:26 pm »
Citer
Il faudra donc soit se contenter des 16 lignes PWM d'un module, soit trouver une autre carte ou un autre système permettant d'aller au delà.
@JPM06 : je pense avoir une idée pour limiter à 16 le nombre de PMW synchronisées pour l'alimentation des voies (avec des groupes de zones). Quelle est la longueur maxi de fils entre le PCA9685 (il y en aurait un pour le réseau) et les L298 ? Je pense répartir ces L298 sous le réseau, pour des raisons de place et peut-être aussi pour limiter le câblage.

19
Vos projets / Re : L298 et relais
« le: janvier 17, 2022, 07:17:24 pm »
Il s'agit bien sûr de broches numériques, pas analogiques ! (La honte)

Et merci d'avoir fait le test !

20
Vos projets / Re : L298 et relais
« le: janvier 17, 2022, 11:40:11 am »
Citer
Pour l'autre argument, il suffit d'augmenter tes compétences, car c'est bien dans ce but que tu t'es inscrit sur ce forum, non ? 
@chris_bzg Oui, bien sûr ! Mais si je prône le "step by step", là, l'escalier est long... il s'agit de monter à pied à la Tour Eiffel, ça va être long pour moi pour intégrer tout ça, vu d'où je pars  :(

@JPM06 L'idée que j'avais en parlant de 74HC595, c'est que si je veux commander 16 L298 avec un Arduino, il me faut 16 broches PMW et 16x2 broches de sorties analogiques. Je remplace les 16 broches PWM par le PCA9685 connecté à l'Arduino via i2c, et je remplace les 32 broches analogiques par 3 raccordées à des 74HC595. Est-ce que c'est valable, à voir...

Pour la proposition de test de synchronisation de PCA9685, je suis évidemment preneur !

Quant aux relais, je garde la solution en plan de repli, c'est lourdingue, mais ça marcherait !

21
Vos projets / Re : L298 et relais
« le: janvier 16, 2022, 02:18:41 pm »
@JMP06 : le PCA9685 serait aussi intéressant pour pouvoir allumer et éteindre de manière réaliste les signaux (ou gérer leurs clignotements)  :)

22
Vos projets / Re : L298 et relais
« le: janvier 16, 2022, 02:16:12 pm »
@JMP06 : cette solution me parait pas mal. Pour commander les L298, il faut deux broches numériques et une PWM d'Arduino, donc je comprends qu'il faudrait un PCA9685 et deux 74HC595 en cascade pour commander 8 L298 soit 16 zones. Comment faire pour "combiner plusieurs avec une horloge externe pour les synchroniser" ?

@chris_bzg : merci pour l'info. Mais mes compétences ne sont pas à la hauteur, je n'arrive pas à tout suivre. Et en plus, les liens sur des schémas sur Dropbox ne fonctionnement pas.

@Pierre59 : en absolu, il faut 3 relais pour choisir sur lequel des 4 bus tractions je connecte une file de rails, et un quatrième qui sert simplement d'interrupteur, et ce pour les deux files de rails. Donc 8 par zone. Avec mon découpage en zones type PRS (permettant la détection des trains et le fonctionnement des transits), j'ai 12 zones sur le module 1, 12 sur le module 2, 8 sur le module 3, 9 zones sur le module 4... D'où le grand nombre de relais !

23
Vos projets / L298 et relais
« le: janvier 15, 2022, 07:58:06 pm »
Bonsoir,

Petit "au secours !"... pour mon réseau "terminus/montagne" (va falloir que je lui trouve un nom plus sympa !) décrit sur :

Je me pose encore des questions sur la commande de l'alimentation des voies.
Je prévois 4 secteurs d'alimentation :
  • une pour la gare terminus en mode manœuvre,
  • une pour les itinéraires de et vers la voie 1 dans la gare terminus vers la coulisse au travers de la zone montagne
  • une pour les itinéraires de et vers la voie 2 dans la gare terminus vers la coulisse au travers de la zone montagne
  • la dernière pour les itinéraires de et vers la voie unique directement vers la coulisse

Je pensais alimenter chaque secteur par 1/2 L298; et ensuite alimenter chacune des petites zones par des relais qui "prennent" sur l'un des 4 "bus traction" issus d'un 1/2 L298.
Simple dans le principe... mais l'inconvénient est qu'il faut 8 relais pour chacune des zones ! Vu le nombre de zones, je vais avoir 2 kilos de relais (au sens propre !) et il va falloir les alimenter.
Je voulais éviter la solution d'un 1/2 L298 par zone (il faudrait synchroniser les PWM).
Qu'en pensez-vous ? N'y a-t-il pas une solution plus légère que les relais pour "piquer" une zone sur l'un des bus traction ?

24
Présentez vous ! / Re : Bonjour, je suis babskwal
« le: janvier 15, 2022, 06:03:40 pm »
Bonjour,

Je fais une petite mise à jour (tardive, mais n'empêche !) pour mettre le bon lien sur mon réseau sur le Forum du N (ben oui, j'ai déménagé il y a 2 ans 1/2 !)
Donc c'est https://le-forum-du-n.1fr1.net/t33873-terminus-montagne

25
Vos projets / Re : Communication Bluetooth (HC-06) / Arduino : c'est lent !
« le: décembre 01, 2021, 12:08:25 pm »
Merci Dominique !
J'ai commandé celui-ci https://www.amazon.fr/gp/product/B08BV3L92G/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1, il arrive samedi. On verra !

26
Hello !
Après avoir avancé sur la partie structure du réseau, et le décor. Et tout n'étant pas possible en même temps dans une petite journée de 24h...
Bon, je suis allé à Rail Expo vendredi, j'ai vu un joli stand (Locoduino), j'y ai rencontré Dominique (et une autre personne, mais on ne s'est pas présentés, mes excuses !), et je me remets à la partie commande.
Après réflexion, je suis tenté par la solution wifi entre en ESP32 monté sur le réseau, qui héberge un serveur web et qui communique mon téléphone comme client en tant que "télécommande". Ce serait cet ESP32 qui serait aussi le "cerveau" du réseau, gérant le suivi des trains, les commandes à envoyer sur les alimentations des rails, les aiguillages et signaux, et recevant les informations d'occupation des voies.
Mais est-il assez puissant : calculs pour gérer l'ensemble + serveur pour la communication avec le smartphone comme IHM ?

27
Pas de souci, je vais creuser !

28
Oui, gros mieux ! Je vais maintenant voir pour distribuer les autres commandes sur les différents Arduino satellites des différents modules, mais le principe semble OK. Et la communication dans l'autre sens (autre bout de code que j'ai pas mis ici) du réseau vers le téléphone, fonctionne bien !
Merci beaucoup ! J'ai encore grillé qq neurones, mais les pistes étaient les bonnes. Bon, j'ai un peu abandonné qq jours, en partie à cause du HC-06 qui avait un faux contact sur l'alimentation 5V...
Je garde quand même dans un coin de la tête la solution ESP32...

29
Bon, ça y est, j'ai un code qui fonctionne, avec commande en binaire sur 2 bits.
#define hc06 Serial1            // définition de hc06 comme un objet série sur le port Serial1 (broches Rx1, Tx1)

// ci-dessous définition des noms de broches
const byte pin_relais[] = { A7, A6, A5, A4, A3, A2, A1, A0, 22, 24, 26, 28, 30, 32, 34, 36 };

byte nb_char_rec=0;
byte commande_recue[2];         // création d'un tableau de 2 bytes pour les caractères reçus du HC-06 et former la commande
unsigned int commande;
byte commande_relais;           // création d'une variable contenant le numéro de relais reçu du HC-06
byte commande_module;           // création d'une variable contenant le numéro de module reçu du HC-06
byte commande_type;             // création d'une variable contenant le type de commande reçu du HC-06
byte commande_etat_relais;      // création d'une variable contenant la commande d'état reçue du HC-06

void setup()
{
  Serial.begin(9600);           // initialise le moniteur série (pas nécessaire à termer)
  hc06.begin(9600);             // initialise le port série Bluetooth

// ci-dessous définition des broches (OUTPUT pour les relais)
  for (byte el : pin_relais)
  {
    pinMode(el, OUTPUT);
    digitalWrite(el, HIGH);
  }
}

void loop()
{
  // Lecture du HC06
  if (hc06.available())                                         // Si des données sont dispos sur le buffer du HC-06
  {
    commande_recue[nb_char_rec] = (byte)hc06.read();            // On met dans commande_recue[0] ou commande_recue[1]
    if(nb_char_rec==1)                                          // Si c'est dans commande_recue[1], c'est qu'on a reçu les deux octets
      {                                                         // On peut interpréter les deux octets de la commande
        commande=commande_recue[1]*256+commande_recue[0];       // On ré-intègre la commande sur deux octets
        commande_module=commande%8192/2048+1;                   // Le numéro de module sur les bits 11, 12, et 13
        commande_type=commande%2048/256;                        // Le type de commande sur les bits 8, 9 et 10
        if ((commande_module == 4) && (commande_type == 3))     // Si le module est n°4 et le type 3 (=Relais)
        {
          commande_relais=commande%128-1;                       // Le numéro de relais sur les bits 0 à 6 (numérotation à partir de 1)
          commande_etat_relais=!(commande%256/128);             // L'état commandé pour le relais sur le bit 7
          digitalWrite(pin_relais[commande_relais], commande_etat_relais);  // On envoie la commande
        }
      }
    nb_char_rec=!nb_char_rec;                                   // On switche sur l'autre octet
  }
}
Pour ce qui est du pourquoi ça marchait pas avec des caractères, et le pourquoi du comment du 7 bits, honnêtement... j'ai laissé tomber, l'essentiel est d'avoir un truc OK !

30
Ça voudrait dire une commande codée en numérique moins explicite qu'en alphanumérique ?
Si c'est ça et que j'ai bien compris, oui, un octet ne suffit pas même si je pense qu'on peut être à un peut moins de 13 bits. Donc on peut viser 12 ou 13 pour être tranquille, donc 16 en arrondissant, OK.
J'ai regardé côté smartphone, je ne vois pas, à priori j'envoie du texte...
J'utilise App Inventor qui fonctionne par blocs, et génère une appli sous forme de fichier apk.
J'ai l'impression que ma capture d'écran n'est pas passée dans mon post d'hier soir 21h38...
http://babsan.synology.me/terminus_montagne/apk_boutons_relais.jpg

Pages: 1 [2] 3 4 5