Pour ce qui est du bouton, il n'y a que deux broches comme vous pouvez le voir donc je pense que je ne me suis pas trompé.
vu que ce n'est pas soudé ou enfoncé dans une breadboard, votre bouton va avoir des rebonds collossaux...
Je suis d'accord avec vous,
Comme dis precedement c'est un montage test (archaïque) pour vérifier que j'ai saisi tout les principes du mcp.
Grâce à vous j'ai bien compris le fonctionnement de l'adressage, mais je me demande si je suis bien connecté sur la broche 4 (voir photo) ???
La pin 1 du circuit porte le n°8 dans la gestion du mcp (bit 0 du 2eme port).
Donc la pin 4 est numérotée 11.
Il faudrait vraiment que tu investisses dans une breadboard car avec les faux contacts de ton montage en l'air, il ne va pas être facile de mettre ton programme au point.
Pour moi le pin 11 est NC voir ci dessous

à regarder sur votre photo, on dirait que votre bouton (fil marron?) est connecté sur GPB3 donc je ne pense pas que vous puissiez l'adresser avec
mcp.pinMode(4, INPUT);
si le N° de pin est < 8 alors vous êtes sur le port A, sinon sur le port B comme on peut le voir dans le code de la librairie
/**
* Bit number associated to a give Pin
*/
uint8_t Adafruit_MCP23017::bitForPin(uint8_t pin){
return pin%8;
}
/**
* Register address, port dependent, for a given PIN
*/
uint8_t Adafruit_MCP23017::regForPin(uint8_t pin, uint8_t portAaddr, uint8_t portBaddr){
return(pin<8) ?portAaddr:portBaddr;
}
donc je serais tenté de dire que le N° de pin doit être choisi comme cela:
0 <--> GPA0, 1 <--> GPA1, ..., 7 <--> GPA7
8 <--> GPB0, 9 <--> GPB1, ..., 15 <--> GPB7
et on ne passe pas le N° de la patte du circuit à la fonction
GregFou:
Pour moi le pin 11 est NC voir ci dessous
Je n'ai pas parlé de la pin 11 mais de la pin 4 sur laquelle tu sembles être connecté sur la photo. Elle porte le numéro 11 dans le soft.
Adafruit fabriquerait son numero de la façon suivante (numero dans le port ) + 8*(port -'A')???
Par ailleurs, est ce que le MCP23017 a besoin de condensateurs de découplage (parce que, pour faire tenir tout ça par cablage volant, et arriver à prendre des photos , c'est quasiment un sport olympique)
bonjour,
Tout dabord merci pour vos retour.
Pour ce qui est des broches, si j'ai bien compris :
GPB0 = Broche 1 = Pin 8 (dans le code)
GPB1 = Broche 2 = Pin 9 (dans le code)
GPB2 = Broche 3 = Pin 10 (dans le code)
GPB3 = Broche 4 = Pin 11 (dans le code)
GPB4 = Broche 5 = Pin 12 (dans le code)
GPB5 = Broche 6 = Pin 13 (dans le code)
GPB6 = Broche 7 = Pin 14 (dans le code)
GPB7 = Broche 8 = Pin 15 (dans le code)
GPA0 = Broche 21 = Pin 0 (dans le code)
GPA1 = Broche 22 = Pin 1 (dans le code)
GPA2 = Broche 23 = Pin 2 (dans le code)
GPA3 = Broche 24 = Pin 3 (dans le code)
GPA4 = Broche 25 = Pin 4 (dans le code)
GPA5 = Broche 26 = Pin 5 (dans le code)
GPA6 = Broche 27 = Pin 6 (dans le code)
GPA7 = Broche 28 = Pin 7 (dans le code)
ainsi mon code est le suivant.
#include <Wire.h>
#include "Adafruit_MCP23017.h"
Adafruit_MCP23017 mcp;
void setup() {
mcp.begin();
mcp.pinMode(11, INPUT);
mcp.pullUp(11, HIGH);
}
void loop() {
Serial.println(mcp.digitalRead(11));
delay(1);
}
Je viens de tester et ..... toujours pas de 0.
J'ai changé l'adressage et lancer un scanner du MCP et la nouvelle adresse est bien reconnue donc je pense que le câblage est bon.
J'ai connecté mon bouton a l'aide de cosse pour éviter les problèmes.
Bonjour,
Il n'y a pas de Serial.begin() dans ton programme -> tu ne dois rien voir sur le moniteur série.
bon .....
je viens de refaire une re re re vérification compléte de mon montage et grâce également au cosse ...... Cela fonctionne mais par intermittence. Je vais donc passer sur un montage plus propre
En tout case merci beaucoup à tous car j'ai appris plein de chose concernant les MCP et j'ai pu élucider mon problème.
Pour vous remercier voici quelques photos de l'avancement du premier panneau. J'ai encore du travail.
Ca m'a l'air bien parti. Bon courage.
bravo ! ça va faire un sacré paquet de fils derrière ![]()
y'a pas bcp de place pour les étiquettes, vous allez vous y retrouver ?
au final effectivement le panneau devrait être plus grand, la c’était un test et comme vous j'ai constaté que c’était trop serré.
au final le support des interrupteur devrait être en plastique transparent afin de faire un rétroéclairage des inscriptions.
Petite question, vous me conseillez de placer les MCP sur quel type de circuit imprimé pour le montage final??
GregFou:
Petite question, vous me conseillez de placer les MCP sur quel type de circuit imprimé pour le montage final??
idéalement vu le nombre de fils nécessaires, vous pourriez faire un petit circuit imprimé "custom" et commander ça sur internet. ça vous simplifiera la vie.
Mais sinon prendre un bout de PCB à pastille et router des fils vers des broches type bornier de connexion que vous visserez par exemple. ça reste démontable et la connexion physique est de bonne qualité
Perso j'ai laissé tomber ce genre de composants "discrets" et j'achète un PCB tout fait pour quelques dizaines de centimes d'euros en plus... J'aime bien ce modèle qui met la communication avec Arduino d'un côté et répartit toutes les pins horizontalement avec un espacement standard, donc facile de connecter une nappe de fils
il existe une version un peu moins cher et plus dense qui mettra les pins sur 2 rangées. ça permet aussi d'avoir deux nappes de fils, qui partent chacune d'un côté et avoir le composant au centre.
J'utilise ce type de circuit double farce.
Une autre solution, si vous utilisez des broad beards pour tester: utiliser des doubles faces soudables reproduisant la disposition des bread boards (avec soudure, donc, au lieu de sans soudures); avec "solderable breadboard", google me ramène SparkFun Solder-able Breadboard - PRT-12070 - SparkFun Electronics
Oui pour le PCB. Dans ce cas chaque pastille est indépendante.
Il en existe avec des routes horizontales reliant toutes les pastilles sur une ligne. il suffit de "gratter" la ligne (généralement un petit coup de perceuse) pour décider où s'arrête une connexion - ça évite d'avoir un gros paquet de fils depuis le composant

(source)
Il y a une petite remarque que les cartes d'évasion (break out beards) judicieusement montrées par JML suscitent: le 23017 vient avec des condensateurs de découplage, selon ma loupe (donc, il peut être judicieux d'en mettre un de 100nF ou plus entre les deux broches d'alimentation, même s'ils semblent inutiles)
breakout en anglais c'est "éclater" ---> un truc qui permet de répartir les petites pins, un peu comme on dirait "une vue en éclaté"
Bonjour, Monsieur JML;
parmi deux traductions valides
'evader' également trouvé dans les traductions du dictionnaire Anglais-Français
abscondv.
s'évader
**to break out of **
exp.
s'évader de
get someone sprung from prison
v.
faire s'evader qn de taule
[Fam.]
to escape from prison
exp.
s'évader de prison
break prison
, je préfère la mienne, plus optimiste (et rappeler que les circuits modernes ont des pattes microscopiques est desespèrant)