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

Pages: 1 ... 17 18 [19] 20 21
271
Trucs & astuces / Re : Câblage I2C et servos
« le: juillet 29, 2020, 12:13:24 am »
normalement en i2c, ça le fait :
- baisser la vitesse
- mettre les pull-up à 4.7kR à chaque extrémité (typiquement, arduino et dernier module i2c)
- les registres du PCF8574 peuvent être lus, donc vérification après écriture pour être tranquilou, voire reverification pour être blindé

vers les servos, on a moins de moyens, mais je pense que mettre une 4k7 entre la commande et le - (ou le + …), au droit du servo, doit aussi améliorer les choses

272
Composants / Re : Nouveau ATtiny 417, 814, 816, 817
« le: juin 16, 2020, 01:00:23 am »
Bonjour,
quelques compléments :
liste complète et détaillée pour les ATtiny https://en.wikipedia.org/wiki/ATtiny_microcontroller_comparison_chart

les nouveaux ATtiny, ont un cœur atxmega, une programmation à 1 seul fil appelée UPDI, et de nouveaux périphériques ; si le potentiel des nouveaux périphériques est exploité, ils sont amha + puissants que les mega328p
il y a la série 0, la série 1, améliorée, et la future série 2, autrement améliorée
le pinout est compatible d'une série à l'autre, mais tous les types de boîtiers ne sont pas toujours disponibles

dans les dénominations microchip, "ATtiny" concerne les nouveaux avr dont le nombre de broches est inférieur à 28, soit pour l'instant 8, 14, 20 et 24
à tindie , entre autres, on trouve quelques modules de développement pour ces ATtiny
pour les modèles à petit nombre de broches, il peut être nécessaire de se servir de la broche UPDI pour en faire un io ; le souci c'est que dans ce cas la programmation ne peut plus se faire … il faut donc un programmateur capable de couper l'alimentation de l'ATtiny puis de mettre 12 volts sur la broche en question pour qu'elle recouvre sa fonction UPDI : on trouve de rares modèles de ce type de programmateur sur le net


il y a donc aussi de nouveaux ATmega : la série 0, la série DA, améliorée, et la future série DB, autrement améliorée
le pinout est compatible d'une série à l'autre
on a parlé de la série 0 avec le nano every et son clone chinois ;  + de flash, + de ram, de périphériques,  un boîtier dip 40 qui peut intéresser certains
la série DA vient de sortir, il y a aussi un boîtier dip28, au brochage malheureusement incompatible avec celui de l'ATMega328P dip28 du vieil uno

tout ceci peut fonctionner avec l'IDE arduino, il faut (voir le lien de mon post précédent) :
1) se confectionner un téléverseur UPDI (UPDI programmer de ElTangas), avec un nano et une résistance, et le programmer sous IDE arduino Edit : il n'est plus nécessaire d'utiliser un arduino : voir post #10
0) charger le bootloader à l'aide du  téléverseur UPDI (on peut aussi se passer de bootloader, et continuer de se servir du téléverseur UPDI pour tous les téléversements)
2) télécharger / installer MegaTinyCore, pour que l'IDE arduino puisse travailler avec les nouveaux avr

un petit effort est nécessaire pour pouvoir jouer avec les nouveaux périphériques de ces avr, (pour ceux qui ont fait le tour du ATtiny45)
notez aussi que, comme ces bébêtes sont innovantes, elles ne fonctionnent (sans doute) pas avec toutes les bibliothèques
comme c'est + ou - neuf il faut aussi consulter les errata sheets, pour vérifier que les fonctions / périphériques qu'on veut utiliser marchent correctement

273
Composants / Re : Pro Micro ATmega32U4 5V/16MHz
« le: juin 16, 2020, 12:11:55 am »
Bonsoir,
j'utilise les pro micro parce que mon réseau est en rs485, donc je voulais disposer d'un uart libre
l'usb natif est un peu sparkfunny avec windowns ; heureusement j'avais prévu un bp de reset sur la carte mère, ça sauve quelques cheveux
alors si c'était à refaire, je partirais sur du nano à atmega328pb, qui a un 2ème uart

274
Shields et Modules / Re : signal entrée booster
« le: mars 06, 2020, 07:32:01 pm »
ok, alors attention, 10A cça a l'air sympa, mais ça peut être destructeur pour le matériel roulant en cas d'incident : l'idéal serait de subdiviser ton réseau, en par exemple 5 sections protégées chacune par un fusible type polyfuse de 2A

275
Shields et Modules / Re : carte 8 relais à 74HC595
« le: mars 06, 2020, 06:41:43 pm »
Bonjour Marc-Henry,

merci pour tes remarques
mettre des LEDs parait en effet judicieux, mais j'ai décidé de faire l'impasse, la LED n'indiquant pas avec certitude si le contact est donné ou pas. On part sur le principe d'une fiabilité suffisante du dispositif
la sensibilité aux parasites des registres à décallage est connue (bus S88), je pense y remédier en chargeant lourdement les lignes par des 2.2kR (les 3 visibles sur le pcb), et en utilisant une vitesse de transmission des plus faibles. Je tâcherai de réduire au minimum la longueur de fil entre l'arduino et les cartes. Si ça ne suffit pas, le blindage des fils est une bonne option

pour JP1 à JP8, j'ai eu raison de ta perspicacité ;) c'est en fait des ponts de soudure : les zones d'arrêt peuvent se trouver sur la file de rails de gauche ou de droite, il faut pouvoir les alimenter depuis la file qui va bien (pas certain d'être clair ...)

ce n'est malheureusement pas du court terme, je ne sais pas quand mon fabriquant de pcb reprendra son activité ...

276
Shields et Modules / carte 8 relais à 74HC595
« le: mars 03, 2020, 07:37:00 pm »
Bonjour,
abondance de biens ne nuisant pas, je vous propose cette carte destinée à alimenter (ou pas) les zones d'arrêt d'un réseau analogique


les points particuliers sont :
- alim en 5V, y compris les relais pour simplifier
- seul le contact travail est sorti, il peut avoir pour origine au choix le rail de gauche ou de droite, par pont de soudure
- registre 74HC595 pour simplifier le câblage et permettre le chaînage de plusieurs modules
- ULN2803 pour simplifier la vie
- pas de LED ni d'optocoupleur

277
Shields et Modules / Re : signal entrée booster
« le: mars 03, 2020, 11:41:47 am »
de quel module s'agit-il, d'un vrai  L9110S ou de la carte erronément désignée ainsi par bobyAndCo ?

278
Shields et Modules / Re : signal entrée booster
« le: février 25, 2020, 07:39:20 pm »
Citer
Si j'ai +5 sur DIR, j'aurai +18 en sortie,
si j'ai 0 sur DIR, j'aurai -18 en sortie.
C'est ça ?
Bonjour,
presque
en fait un pont en H se passe de tension négative, tu l'alimenteras en 0V (gnd) et 18V, et il ne saura rien produire d'autre que ces 2 tensions
typiquement :
dir = 1 --> sortie A = 18V et sortie B = 0V
dir = 0 --> sortie B = 18V et sortie A = 0V
simple, mais effectivement pas évident au début

279
Vos projets / Re : Wagon de mesure distance et vitesse
« le: décembre 13, 2019, 01:42:09 am »
bravo sans réserve, même si
- je vais être obligé de tout lire et essayer de comprendre  :P
- à part l'aspect didactique, je ne vois pas à quoi ça peut servir

280
pour en revenir, si vous voulez bien, sur la pertinence de la détection par transfo :
je trouve que l'intérêt est limité du fait de l'encombrement

les diodes ont l'inconvénient de la chute de tension, qui est de 0v7 dans le cas d'une détection par transistor et de 1v4 pour une détection par optocoupleur. Il faut de + équiper les sections pour lesquelles on n'a pas besoin de faire de détection, ceci pour équilibrer les potentiels

mais elles ont l'avantage d'être + discrètes et de permettre la détection en courant continu pour la compatibilité avec l'analogique
et souvent la chute de tension n'a pas d'importance, ou peut être aisément compensée au niveau de l'alimentation de la centrale

281
paradoxalement, ici il vaut mieux être en court circuit que de rester ouvert
mais il y a peut-être aussi quelque chose, qui nous échappe pour l'instant, qui fait que le montage rocrail n'est pas pur, mais ne présente en fait aucun danger ?

282
Bonjour,
quelle est la sensibilité du montage ?
n'y a-t-il pas de risque du fait de l'absence de resistance en série avec la zener ?

283
Le logiciel DCC++ / Re : Problème de retour d'info des decodeurs
« le: octobre 09, 2019, 01:04:10 pm »
noël approche  ;)

284
Le logiciel DCC++ / DCC++ avec ESP32 ?
« le: octobre 05, 2019, 08:08:01 pm »
Bonjour,
juste pour vous dire que j'ai écrit un bout de code qui pourrait servir de petit début à une station dcc animée par un esp32

le but est de générer des bits 0 et 1 en dcc, selon un principe proche de celui utilisé pour dcc++

explication :
un bit dcc ressemble à une période pwm, dont la durée est 200µs pour le bit 0 et 116µs pour le bit 1, le rapport cyclique étant dans tous les cas 1/2 ... simple ...
il faut donc après l'émission de chaque bit dcc, générer une interruption au service de laquelle on indiquera au timer la prochaine période à respecter : si la valeur du bit dcc change, on rentre la nouvelle période (200 ou 116µs) ; si la valeur du bit dcc ne change pas, il n'y a rien à faire /// dans tous les cas on dispose de 58µs pour rentrer la nouvelle période, un éternité pour l'esp32

auparavant il faut configurer un canal de timer :
- en pwm
- avec un rapport cyclique de 1/2
- pour qu'une interruption se déclenche à la fin de chaque période

concrètement :
(je suis loin d'être un pro du soft, je me suis débrouillé avec des fonctions dénichées dans le sdk, on peut sûrement faire mieux)

on commence par les déclarations :
// on utilise un module qui s'appelle ledc ... selon la tradition esp32 les modules pwm servent d'abord aux leds ...
#include "driver/ledc.h" // les fonctions spécifiques sont décrites ici

const int dcc_pin = 19;  // choix de la broche dcc out : n'importe laquelle peut être utilisée /// en se servant de la matrice du gpio

// setting PWM properties
#define dcc_sig_1_freq 8621 // le sdk demande la fréquence : celle-ci correspond à ~116µs ... quelque chose arrondira à la valeur exacte
#define dcc_sig_0_freq 5000 // 200µs (ici j'utilise des macros pour définir ces constantes)
const int dcc_pin_channel = 0; // il y a foison de canaux pwm, j'ai choisi le 1er
const int dcc_sig_resolution = 1; // nombre de bits définissant la résolution du pwm ; ici un seul bit (2 valeurs différentes) suffit
/// la résolution, c'est la granulométrie du rapport cyclique : la + grosse (ne) permet (que) de faire du 50%
const int dcc_sig_duty = 1; // pour le rapport cyclique de 1/2 il faut la valeur 1 (si non c'est 0 ... )
// initialisation de la variable au bit dcc 0 ; why not ; noter que la fonction utilisatrice veut le type uint32_t pour la fréquence
uint32_t dcc_sig_freq = dcc_sig_0_freq;

et voici le setup :
void setup() {
  // configuration du canal pwm 0 avec une fréquence et la résolution
  ledcSetup(dcc_pin_channel, dcc_sig_freq, dcc_sig_resolution); // ledc les faire ...
  // relie le canal pwm à la pin choisie pour la sortie pwm /// ... et dcc par conséquent
  ledcAttachPin(dcc_pin, dcc_pin_channel); /// ! pour détacher (si besoin), il faut impérativement passer par la matrice gpio
  // fixe le rapport cyclique du canal à 1/2
  ledcWrite(dcc_pin_channel, dcc_sig_duty);
  // programme l'interruption à la fin de la période
// je n'ai pas trouvé de manière élégante pour le faire avec le timer, alors je me suis rabattu pragmatiquement sur une interruption provoquée ... par le basculement de la pin
  attachInterrupt(dcc_pin, dcc_sig_isr, RISING); // l'interruption "dcc_sig_isr" provoquée à la fin de chaque période (voire au début de la suivante)
}

et l'isr :
pour vérifier le fonctionnement je génère une suite de 0/1/0/1 ad lib
il faudra adapter pour dcc++
void dcc_sig_isr() {
  if (dcc_sig_freq == dcc_sig_0_freq) dcc_sig_freq = dcc_sig_1_freq ; // inverse la valeur du bit dcc précédent
  else dcc_sig_freq = dcc_sig_0_freq ;
// la fonction qui permet d'écrire la nouvelle fréquence demande :
// - le mode : ici high speed, (au pif) qui va bien
// - le timer utilisé : j'ai supposé bêtement que le canal pwm 0 correspond au timer pwm 0 /// je crois qu'il y a 2 canaux par timer
// - la fréquence, of course
  // ledc_set_freq(ledc_mode_tspeed_mode, ledc_timer_ttimer_num, uint32_t freq_hz)
  ledc_set_freq(LEDC_HIGH_SPEED_MODE, LEDC_TIMER_0, dcc_sig_freq); // new -or not - period value
}

pour ceux qui veulent vérifier, un petit main qui fait travailler l'esp32 :
void loop() {
  delay(10); // mettez ici ce que vous voudrez
}


les mesures réalisées donnent des résultats très corrects : il manque parfois 41ns à une période. Peut-être mon modeste matériel, en tous cas, je n'ai pas les moyens d'en trouver la cause, et on est de toute façon largement dans les clous


 

 

285
il existe des shields pas cher pour convertir le format nano en format uno


le nano-every m'a l'air bien, à un prix très correct, mais il m'a l'air un peu tarabiscoté
toujours que je critique un peu

Pages: 1 ... 17 18 [19] 20 21