Projet : Expanseur d’I/O sur bus I2C (sur la base d’un PCF8575)
Description :
Version 2 de mon expanseur I2C, anciennement basé sur un PCF8574, cette nouvelle version est basé sur un PCF8575 (16 I/O contre 8 I/O pour l’ancien).
Le PCF8575 n’étant disponible que en version CMS (SSOP) il est obligatoire soit de faire un pcb avec une empreinte CMS soit d’utiliser un adaptateur.
J’ai préféré utiliser un adaptateur SSOP -> DIP28 de sparkfun pour plus de facilité.
Photo :
Opération Ninja du soudage !
La technique pour souder du SSOP :
Mettre de la soudure sur toute les pattes puis avec de la tresse à dessouder enlevé le surplus, résultat niquel garanti (! température du CI).
Video de démonstration :
Librairie :
https://skyduino.wordpress.com/librairie-arduino-pcf8574-pcf8575/
Datasheet du PCF8575 :
http://focus.ti.com/lit/ds/symlink/pcf8575.pdf
Tutoriel (basique) pour l’arduino :
http://kineticsandelectronics.com/node/78
Schémas :








merci pour cette librairie qui risque de me rendre service….
Publié par Pascal | 25 février 2012, 14 h 32 minBonsoir!
Juste vous dire que je suis intéressé par votre projet
car moi aussi j’utilise des PCF8575N .
Mais actuellement , j’ai un soucis avec ma liaison I2C qui fait bugger mon programme et je me demande pourquoi?
Merci! de me répondre !
Publié par mouto | 21 Mai 2012, 1 h 12 minJe ne suis pas devin … Poste ton sur le forum arduino si tu veut avoir une réponse 😉
http://arduino.cc/forum/index.php/board,33.0.html
Publié par skywodd | 21 Mai 2012, 8 h 16 minet je ne comprends pas pourquoi vous tirez la broche INT vers le haut ?
Publié par mouto | 21 Mai 2012, 2 h 02 minC’est un sortie à collecteur ouvert (comme SDA et SCL) il faut donc fixer un niveau haut via une résistance tiré au +VCC.
Publié par skywodd | 21 Mai 2012, 8 h 17 minvoilà mon code
mais, là val vaut » 0″
et quand je teste val vaut 255
Publié par mouto | 22 Mai 2012, 12 h 05 minLes commentaires ne sont pas là pour servir de forum …
Merci d’utiliser le forum arduino (voir mon autre réponse) qui est là pour ça …
Ps: Si tu reçoit toujours 255 (valeur d’erreur par défaut) c’est que tu as oublié les résistances de pull-up ou que tu n’utilise pas les bonnes adresses I2C.
Publié par skywodd | 22 Mai 2012, 13 h 17 minBonjour, okay !
je comprends merci! pour votre aide
mais, j’aimerai savoir comment est ce que je pourrais lire les valeurs de mes pcf 8575 de sortis
j’ai vue votre vidéo sur VIDDS
et j’ai pas très bien compris ce que vous faite
merci!
Publié par mouto | 22 Mai 2012, 19 h 57 minRegarde dans le code de ma librairie PCF8575 (voir les liens de l’article) tu aurais une idée de comment lire / écrire un « mot » de 16 bits depuis/vers le PCF8575 😉
Publié par skywodd | 23 Mai 2012, 14 h 19 minj’aimerai comprendre est que je peux faire pour stoker les valeurs lut par mes pcf des sortis dans un tableau .
Car, j’aimerai envoyé un 5V sur toutes les broches de mes PCF d’entrées et ensuite a partir de mes PCF de sortie ,
je compte lire les valeurs envoyé par mes pcf d’ entrés ensuite je stockerai c’est valeurs dans un tableau , puis en
fonction de la valeur du tableau je pourrais savoir si j’ai du 5v sur une broche de mon pcf ou non!
Merci
Publié par mouto | 22 Mai 2012, 20 h 02 minUne sortie = 1 bit, 16 sorties = 2 octets.
Tu ne peut pas utiliser de tableau, il te faudra utiliser la fonction bitWrite().
Sinon pour envoyer 5 volts sur toute les broches tu n’as qu’as envoyer deux fois 255.
Pour savoir si tu as 5v sur une broche utilise bitRead sur la valeur lu.
Publié par skywodd | 23 Mai 2012, 14 h 23 minBonjour, OK!
je comprends maintenant .mais j’aimerai savoir si je veux envoyer du 5V sur une broche et contrôlé les autres
broches une a une pour voir si le 5V envoyé sur la broche 1 se trouve aussi sur la broche i ou i++ avec i initialisé
à 2 .
Cependant, j’aimerai que si j’ai le cas ou la pin 1 touche la pin 2 par exemple il m’affiche pin 2 court-circuit avec pin 1 .
j’ai pensé a utilisé des boucle où je boucle sur le numéro de la pin du PCF .
mais quand, il entre dans la boucle il ne sort plus .
Publié par mouto | 23 Mai 2012, 20 h 13 minBONSOIR, j’ai lu comment fonctionne ces fonction bitread() précisément et je ne comprend très bien ce quel fait ?
ou du moins comment ? elle peut m’aider .
Publié par mouto | 24 Mai 2012, 0 h 56 minpourquoi quand j’alimente mes pcf8575
et j’ai du 5V sur leur broche mes sans rien envoyé comme comment ?
Publié par mouto | 24 Mai 2012, 23 h 28 minbonjour,
Dans le même style de la carte uno et son shield PCF8574A, je voudrais connaître le processus pour lire (recevoir un signal logique type rectangulaire) pour compter les impulsions (lecture d’un disque opto-électronique), pour pouvoir les compter et réémettre par exemple 13 impulsions espacées parmi 200 reçues : commande d’un moteur pas à pas d’une vis mère d’un translateur guide-fil d’une machine à bobiner (coïl-winder).
Je connais delphi mais pas le C++ utilisé sur les programmes modules arduino. J’ai vu qu’il existe un shield d’un équipé d’un L293. Merci d’avance pour les connaisseurs qui voudraient bien m’aider à mettre en oeuvre mon projet.
Dudu31
Publié par Jacques DUDORET | 12 octobre 2016, 6 h 37 min