La FEZ-IO40 est une carte de GHI qui permet de rajouter 40 prises numériques d’entrée/sortie à votre micro-contrôleur organisées en 5 ports de 8 prises chacun.
La page du produit chez GHI.
Le PDF de la carte.
La classe qui permet de la manipuler.
Le fonctionnement du IO40 est relativement simple: la carte repose sur une puce contrôleur I2C qui s’occupera de “dispatcher” les signaux que vous aurez configuré à l’aide de la classe fournit.
Je ne vais pas m’étaler sur le fonctionnement du port I2C, mais sachez que c’est un bus de communication en série très répandu (et pas qu’en robotique) et qu’il nécessite 4 fils:
On utilisera les deux port JST en bas à gauche pour connecter la carte au bus I2C du micro-contrôleur (I2C IN : SDA & SCL). Les deux autres ports JST servent à connecter en cascade une autre carte étant basé sur le bus.
SDA se branche sur I2C_DAT SCL se branche sur I2C_CLK |
Ceux qui on l’œil remarqueront qu’on a branché 5 fils en tout, l’explication est toute simple: chaque prise JST comprend son propre fil relié à la masse (en noir) et à la tension haute (en rouge).
Dans la classe IO40 on retrouve les méthodes suivantes:
J’ai effectué un montage simple:
Une LED est branché sur la prise qui sera pilotée par le programme, une résistance permet d’abaisser la tension pour que la LED puisse fonctionner.
Le schéma du circuit et le code associé:
private static void TestIO40() { var io = new IO40(0); // Make the pin 0 of port 0 an output io.MakePinOutput(0, 0); // Blink the LED 10 times for (int i = 0; i < 10; i++) { io.SetPin(0, 0); Thread.Sleep(250); io.ClearPin(0, 0); Thread.Sleep(250); } }
La prise 0 du port 0 fait office de tension haute et l’autre prise n’est autre que la masse et le tour est joué!