Parlons Arduino > Composants

Etendre les entrées-sortie numériques

(1/3) > >>

savignyexpress:
Bonjour à tous,

Dans le cadre des réflexions sur mon nouveau réseau N, j'évalue les possibilités de cet IC de microchip qui permet d'ajouter des entrées-sorties numériques: http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf. Au prix de CHF 2.- pour 16 E/S supplémentaires, c'est tout à fait intéressant.

Dans un autre projet, j'avais utilisé des registres à décalage 74HC595 pour ajouter des sorties, mais ce circuit me semble plus souple car il permet la configuration individuelle de chaque pin en sortie, en entrée avec pull-up intégrée si nécessaire.

Si j'utilise ce circuit, ce sera avec l'interface I2C car le SPI est déjà utilisé par la programmation in situ du microcontrôleur. Avec un Arduino et son bootloader, on doit pouvoir travailler en SPI. Les longueurs de bus seront d'au plus 20-30 cm si sur une autre plaque et, dans ce dernier cas, les liaisons se feront avec du câble Ethernet afin de bénéficier du blindage.

Avez-vous de l'expérience avec ce composant ?

Merci d'avance pour vos contributions.
Meilleures salutations.

Marc-Henri

DDEFF:
Salut Marc-Henri,

J'ai utilisé ce matériel avec le bus I2C (voir forum Loco Revue http://forum.e-train.fr/viewtopic.php?f=63&t=77541).
Oui, c'est moi groumfit ...
J'ai testé : ça fonctionne, c'est vrai. Mais l'I2C n'est pas protégé contre les parasites et je vais tester le CAN, nettement plus prometteur et plus costaud.
Il y a d'ailleurs plein de recherches sur ce (long) post.
Depuis, j'ai trouvé. Tu pourras voir mes articles préparés sur Locoduino (SGDD).
Je pense que tu auras des questions à me poser  ;)

Pierre59:
Bonjour

Le bus I2C est fait pour connecter des circuits sur une courte distance, il est tout a fait indiqué ici. Sur un premier réseau j'utilisais des PCF8574 circuits I2C du même genre que les MCP23017 mais sur 8 bits. Je vais les réutiliser pour commander les, nombreux, feux de mes signaux lumineux, si je n'avais pas déjà ces circuits je mettrais volontiers des MCP23017. Pour les signaux mécaniques j'utilise un PCA9685 toujours sur le bus I2C, en fait c'est un module Adafruit car le PCA9685 est en CMS.

J'utilise aussi deux bus I2C pour relier toutes les cartes électroniques de mon réseau à un ordinateur, toutes ces cartes étant regroupées en un seul endroit sous le réseau.

Il y a des bibliothèques Arduino chez Adafruit pour le MCP23017 et le PCA9685.

Pierre

savignyexpress:
Bonjour Denis et Pierre,

Merci pour vos retours d'information.

La question du blindage de l'I2C me paraît très pertinente.

Je me suis trouvé confronté à un problème similaire avec une chaîne de registres à décalage perturbés par les pointes de courant de moteurs d'aiguilles Minitrix qu'ils commandaient via des relais. Le problème s'est résolu en reliant les cartes avec du câble Ethernet transportant data, l'horloge série, l'impulsion de chargement en sortie et la masse.

Je me demande s'il est vraiment nécessaire de placer ces circuits dans des boîtiers blindés ainsi que Denis l'évoque dans son post sur le forum LR. Mon projet étant en analogique, sans DCC, mais avec des moteurs d'aiguille et peut-être tout de même des alimentations traction en PWM, il faudra voir s'il y a des perturbations.

Bonne fin de semaine et meilleures salutations.

Marc-Henri

DDEFF:
Bonjour Marc-Henri,

Je rejoins l'avis de Pierre : j'étais un peu catastrophiste sur le forum LR.

Sur de petites distances, on peut très bien utiliser un bus I2C. Il a le grand mérite d'exister directement sur l'Arduino et d'être ultra simple à gérer.
Mais, évidemment, si le fil passe à côté de la voie, au moment où la loco passe, tu as une gerbe d'étincelles. Ou à côté d''un moteur d'aiguille.

Donc, suivant les usages et en prenant un minimum de précautions, ça doit marcher sans problème.

Disons que, sur Locoduino, on a un faible pour le bus CAN. Je suis en train d'apprendre à m'en servir. C'est un peu moins évident, c'est sûr.

Bonnes lectures  ;)

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique