Messages récents

Pages: [1] 2 3 ... 10
1
Présentez vous ! / Re : Bonjour, j'ai un problème de débutant.
« Dernier message par Jackam85 le février 01, 2023, 04:34:00 pm »
J'ai mis un peu de temps, j'étais sur un autre chantier.

Ca fonctionne !! Avec condensateurs sur les ILS et résistance au +5V sur les entrées.

Merci à msport pour tes bons conseils.
2
Vos projets / Re : SIGNAUX: CIBLES ET DECODEURS
« Dernier message par laurentr le février 01, 2023, 03:26:50 pm »
Et bien en fait nous avons déjà une partie de ce que je pense être "une bonne réponse":

Nous savons que les incrémentations  d'affichage PWM doivent se faire en parallèle OU si on recompose l'équation cela se traduit par: pour chaque couleur de canal on fait varier à une vitesse différente la même incrémentation dans un rapport de vitesse disons de 1 à 8. ( nos 8 fameuses couleurs !!)

On en vient donc à l'idée d'utiliser un "timer" dont le rôle va être d incrémenter à intervalle fixe une valeur tous les x temps. Pour chaque couleur on rythme l'incrémentation en fonction du décompte de ce timer et on a alors la variation de la valeur PWM de chaque canal de temps

Il nous restera juste à nous assurer alors que notre temps d intervalle soit lui le multiple le plus proche de 8 qui nous intéresse.

Et si deux couleurs différentes doivent varier à la même vitesse finalement? Simple, elle auront alors les mêmes compteurs de bascule d'incrément.
En revanche si le rapport 1 à 8 est insuffisant? Et bien comme le dit une célèbre pub "patron on est mal! ?? Pas tout à fait car nous avons fixé ce rapport librement et arbitrairement il nous faudrait alors le revoir et l'ajuster

L'approche j en conviens n'est pas des plus simple! Si  parmi vous d autres on des idées pour "solutionner" je suis preneur.

@Trimarco232, qu'en penses tu? Tu es le plus avancé d entre nous sur le sujet "pilotage de signaux", ceci te parait il être une "bonne méthode" ou faut il finalement aller au plus simple...? ( via les PIN capable de faire du "BREATH" uniquement? ( alternative "simplissime" :) )

Pour les plus curieux voici un bel article (en anglais) qui illustre l utilisation du SX1509:

https://learn.sparkfun.com/tutorials/sx1509-io-expander-breakout-hookup-guide#-example-digital-inout-and-pwm

A vos avis!?

Laurent
3
Vos projets / Re : SIGNAUX: CIBLES ET DECODEURS
« Dernier message par laurentr le février 01, 2023, 03:01:11 pm »
Bonjour

J ai un peu avancé dans la trame du code de pilotage des différents aspects du signal.

Pour le moment j ai un effet ON/OFF très acceptable visuellement de chaque led selon la combinaison de leds que je désire voir s'afficher ( en fixe ou clignotant avec pour chaque couleur un niveau d intensité lumineuse pré réglable)

Pour pousser plus loin l'effet visuel  simulant la montée/descente  progressive de l'intensité lumineuse d'une AMPOULE INCANDESCENTE sur une LED il faut donc jouer de la "PWM".

Jusque la tout va bien le "analogWrite" qui va bien va nous aider.

Chaque led va donc via l incrémentation de la valeur PWM confiée à "analogWrite" faire varier progressivement l'intensité lumineuse jusqu'au seuil haut désiré dans la plage [0;255] que supporte notre SX150X.

Si cette incrémentation est IDENTIQUE pour chaque cycle et chaque canal nous allons avoir un "loupé" .Les leds vont avoir des niveaux d'intensité lumineuse différents selon leur couleur d affichage.

Le seuil haut ( niveau désiré d éclairage de la led) d une led verte aura par exemple une valeur de 120 et une rouge sera à 80 ( valeurs arbitraires pour illustrer)

On va donc avoir la led ROUGE qui aura atteint son intensité désirée avant celle de la verte qui doit continuer de s'incrémenter.
Hors les combinaisons lumineuses quelque soient les couleurs affichées doivent être synchrones entre le niveau 0 et leur seuil haut d'intensité lumineuse désirée.

Même si les temps sont extrêmement brefs j ai peur que ce "décalage" soit "visuellement disgracieux" si perçu.

Une solution est de mixer la valeur des résistances de chaque canal avec la couleur de la led à allumer. On perd la flexibilité de mapping mais on simplifie le code. ( et le hard n'est plus  identique en terme de valeur de résistance avec chaque led associée sur le canal)
C est une première option.

Une autre option est que pour un intervalle de temps donné (disons 500 ms pour illustrer) on incrémente selon la couleur une valeur différente chaque changement de  niveau d'intensité. On grimpe par exemple de 3 en 3 pour une verte la ou on grimpe de 1 en 1 pour une rouge.
Cette option séduisante sur le papier se heurte au pragmatise du code. En effet on doit passer en valeur des bytes ( uint8_t) ( donc des nombre entiers) compris entre 0 et 255. Pas le droit d utiliser des float ou alors il faut les remapper ( via fonction map par exemple) en entier et on va se retrouver in fine avec un décalage ( très réduit) de l'atteinte des seuils.

L'effet visuel disgracieux est réduit mais encore présent ( reste t il toutefois réellement bien perceptible?)

Finalement une petite combinaison de multiples pour les différents seuils lumineux par couleur de manière pré établie dans cette logique aurait peut être vocation à nous sortir de l'embarras en apportant la souplesse attendue.

Traduction on incrémente la valeur qui pilote la couleur ayant le rendu lumineux le plus intense pour un même niveau de PWM le moins vite possible et inversement, la couleur ayant le rendu le moins intense pour un même niveau de PWM s'incrémente moins souvent mais avec une valeur d'incrémentation plus forte et proportionnelle.

Ainsi pour chaque cycle d'incrémentation de la valeur de PWM par ajout/soustraction d un pas selon la couleur permet de grimper de 0 à 255 avec un fondu visuel similaire quelque soit la couleur de chaque sortie.

Est ce assez astucieux? Sur le papier je dirai que oui. Revenons cote encodage de cela.
Nous avons "7 combinaisons de couleurs par usage": ( 8 si on considère l'intensité du deuxième feu du carré différente de celle du feu rouge du sémaphore)
BLANC pour l'œilleton
BLANC pour la manœuvre
VIOLET carré violet
ROUGE ( intensité pour feux Sémaphore et carre et confondus sinon ROUGE S et ROUGE C)
VERT
JAUNE 1 feux
JAUNE pour 2 feux en PARALLELE

convertit en multiples nous aurions les valeurs 1 7 14 21 28 35 42.

Se méfier des fausses bonnes idées puisque on va vite se rendre compte que 255/42 va en gros nous laisser 5 paliers au plus entre le 100/100 allume et le 100/100 éteint. ( max/min de l'intensité possible) Hors nous seront en chemin vers celle ci et il faut aussi ne pas la dépasser. Coté progressivité c est "saccadé" et donc contraire au but recherche.

Alors que reste t il comme solution(s)?
4
Vos projets / Re : Micro centrale DCC
« Dernier message par laurentr le janvier 30, 2023, 09:18:14 pm »
Bonsoir

Expliqué ainsi je comprends mieux les enjeux et choix qui en découlent.

Donc pour de l'information courante "non prioritaire" on peut dire OK c est suffisant via I2C, pour une info devant être "de premier ordre"  (type détection de cour circuit par exemple dont on va vouloir exploiter le plus rapidement possible une réaction rapide) ce n est pas le plus adapté pour x raisons.

Merci
Laurent
5
Vos projets / Re : Micro centrale DCC
« Dernier message par NitraThor le janvier 30, 2023, 06:55:54 pm »
Bonsoir Laurent,

Plusieurs points pour te répondre :
1) Dans notre cas, la tension correspondant au courant consommé est déjà aux portes du microcontrôleur. Donc, si on utilise l'I2C pour l'envoyer ailleurs, ce sera forcément plus long...
2) L'I2C peut travailler à plusieurs vitesses (100Kbps, 400Kbps, 3,2Mbps...). A condition d'être au moins à 400Kbps, on peut commencer à concevoir d'utiliser le bus I2C pour transmettre une information de courant. Le protocole I2C nécessite plusieurs trames pour aboutir à un échange entre le maître qui demande le résultat et l'esclave qui calcul le courant consommé.
3) Par contre, si il s'agit d'être réactif comme c'est notre cas dans une centrale DCC, à mon humble avis (j'accepte la critique), il est hors de question de passer par l'I2C ne serait-ce qu'en raison de sa fragilité.

Si l'esclave rencontre le moindre problème et bloque le bus, plus aucune information ne peut passer. Avec un environnement aussi pollué électriquement qu'un réseau ferroviaire, je ne prendrai jamais l'option de passer par de l'I2C pour transmettre une information aussi importante !

Bien à vous,
NitraThor.
6
Vos projets / Re : Micro centrale DCC
« Dernier message par laurentr le janvier 30, 2023, 03:44:47 pm »
Bonjour

Une question de nouveau sur les modules IC2 de détection de tension/courant.

J ai cru comprendre que vous indiquez que le "analogread" sur les IO A0 et A1 serait plus "performant" ( rapide) avec en front un INA139 /INA169 ou un LM358 que le transfert des info sur le bus I2C via par exemple un INA219.

D où la question sous jacente, si c est si "lent en I2C" pourquoi a t on alors des modules de mesure sur cette techno ( INA 219) si c est si peu "performant"...

J essaye juste de comprendre ce qu'il est préférable d utiliser ( si on a pas assez de pin Analogread alors l I2C est un backup certes mais sinon...? ) Faut il systématiquement privilégier l approche "classique ( LM358, INA 1x9??)

Comment faire ce choix en connaissance de cause?


Laurent
7
Présentez vous ! / Re : Présentation et feu rouge clignotant
« Dernier message par Claricou le janvier 30, 2023, 01:56:57 pm »
Merci pour cette réponse constructive et qui fait avancer
Cdt
8
Présentez vous ! / Re : Présentation et feu rouge clignotant
« Dernier message par msport le janvier 30, 2023, 11:51:59 am »
Bonjour et bienvenue.

au cas où vous n'auriez pas trouvé les articles :

Sur le site éditorial, il y a la série
Passage à niveau géré par Arduino
https://www.locoduino.org/spip.php?article261

et

Un automatisme de Passage à Niveau
https://www.locoduino.org/spip.php?article117

Il vous suffit de ne câbler que les feux et les détecteurs pour votre projet

Les ILS peuvent être remplacés par des détecteurs FC51
9
Présentez vous ! / Re : Présentation et feu rouge clignotant
« Dernier message par Dominique le janvier 30, 2023, 11:48:18 am »
Faut-il répéter ce qui a déjà été écrit ?
Un projet existant  (il y en a plein sur le site) de passage à niveau complet avec barrières mais sans les barrières correspondra à votre projet. !

Bonne réalisation.
10
Présentez vous ! / Présentation et feu rouge clignotant
« Dernier message par Claricou le janvier 30, 2023, 10:33:12 am »
Bonjour
Merci de m accepter sur forum
Je viens d acquérir une carte ARDUINO et je me demandais si je pouvais faire fonctionner un feu rouge clignotant pour passage à niveau sans barrière avec détection du train
Je n ai pas trouvé précisément de tuto sur ce sujet
J ai un petit réseau en analogique échelle HOe
Merci par avance
Pages: [1] 2 3 ... 10