Parlons Arduino > Composants

Etendre les entrées-sortie numériques

<< < (3/3)

jac56:

Je ne crois pas qu'il faille  'jeter' trop vite le bus I2C. A l'intérieur d'un boîtier, difficile de trouver plus simple et plus efficace (je crois que c'est, notamment, le bus interne entre modules des téléphones portables). Beaucoup de modules intéressants fonctionnent avec cet interface.

Les expandeurs d'E/S (pilotés par I2C) sont très utiles: sinon comment prendre en compte  plus de 53 contacts pour le module DCC que j'ai décrit, sachant que d'autres contacts supplémentaires doivent nécessairement être utilisés sur l'Arduino (écran LCD en direct, interruptions, pilote DCC, alarme DCC, ...). Même en prenant un plus gros modèle d'Arduino, le compte n'y sera pas. Et de plus, le fonctionnement avec l'I2C est très réactif et efficace (tout est gérable sur interruption, l'anti-rebond est intégré): je cite la gestion d'encodeurs rotatifs (2 contacts à gérer en tenant compte de l'ordre d'apparition des impulsions sur l'un et l'autre). Qui dit mieux ? D'accord, il faut adapter la bibliothèque pour encodeurs, mais ça fait partie de la maîtrise à acquérir...
Les précautions de blindage que j'indique sont assez simples à mettre en œuvre, et ont leur utilité, même sans I2C.
Dans le cas des entrées par boutons, cela ne fait aucun câblage supplémentaire. Tout est dans le boîtier et ne peut être que là, par construction.

Je suis d'accord, inversement, que pour les sorties PWM, on peut faire autrement, avec un bus CAN, soit en utilisant les sorties PWM d'un arduino (mais il y n'y en a pas beaucoup...), soit en utilisant dans le boîtier distant, un  module expandeur PWM (un ou plus). J'aurais pu faire cela pour mon TCO : cela aurait drastiquement réduit le nombre de câbles, c'est très vrai !
Mais j'avais déjà fini mon TCO quand les articles réellement utilisables sur le CAN sont parus... (et ils n'étaient que sur le forum).
Les articles présentant en détail la solution CAN ont commencé à paraître seulement en novembre de cette année...

C'est le grand mérite de Locoduino de mettre à la portée de tous des techniques difficiles d'accès au non initié comme le CAN, technique dont l'intérêt d'ailleurs dépasse largement le contexte du modélisme ferroviaire (cf. les applications industrielles citées qui invitent à l'appliquer à bien d'autres domaines encore).

On ne saurait trop remercier pour cela les excellents auteurs qui animent le site Locoduino avec un talent pédagogique remarquable.

DDEFF:
Tu nous enverras ton RIB, pour le chèque ... ;D ;D ;D
Ces remerciements nous font vraiment plaisir.

Ce que j'aime bien aussi, avec Locoduino, c'est que plusieurs points de vue peuvent s'exprimer.

Il y a ceux qui aimeraient bien un Arduino avec 200 entrées et plein de fils pour centraliser tout et d'autres qui sont pour une décentralisation extrême via le CAN.
Pour ton info, j'ai pris un Arduino DUE et je lui ai branché ... 4 fils : +5V, GND, Can0 Rx et Can0 TX.
J'ai encore de la marge !
J'arrête là car c'est un fil sur les composants.

Dominique:
J'explore ce sujet pour la première fois et là je dis "chapeau" pour la qualité et somme d'expériences exprimées par jac56. Merci aussi à Marc-Henri qui aborde toujours des sujets intéressants. Et Denis qui voit tout !

J'ai découvert l'I2C avec l'Arduino en réalisant un drône qui intégre un ATmega328 et plusieurs périphériques accéléromètres, gyroscopes, baromètre et GPS, tous connectés et I2C mais disposés très près du processeur. On trouve maintenant des cartes dites "IMU 9DOF" (9 degrés de liberté). Tous ces capteurs doivent être exploités très rapidement et l'I2C convient parfaitement.

Quand je suis passé au modélisme, j'ai utilisé l'I2C sans problème mais mon réseau était petit et les câbles courts (moins d'un mètre). Je n'ai pas souvenir de parasites.

C'est Jean-Luc qui m'a présenté le CAN pour la première fois et le fait qu'il permette des échanges de messages sans hiérarchie est très pratique pour interconnecter des modules intelligents entre eux comme un réseau local.

Mais cela n'enlève pas l'intérêt de l'I2C pour ajouter des périphériques au processeur.

Je n'ai pas remarqué qu'un écran LCD pouvait générer des parasites.

Je vais regarder ça.
Amicalement

Navigation

[0] Index des messages

[*] Page précédente

Utiliser la version classique