Go Down

Topic: Cockpit - Simulateur DCS-World. (Read 1 time) previous topic - next topic

J-M-L

il peut y avoir 7 adresses differentes allant de 0x20 à 0x27 pour un compo  MCP23017 selon que les pins A0 ... A2 sont positionné à High ou Low au reset/powerUP
ça en fait 8 ça :)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

hbachetti

#16
Mar 20, 2019, 03:12 pm Last Edit: Mar 20, 2019, 03:13 pm by hbachetti
Quote
Non. L'adresse dans begin n'est pas l'adresse i2c mais l'adresse lue sur les pins A0-A2 donc soit mcp.begin() soit mcp.begin(0)
YES.
La librairie fait ses écritures comme ceci :

Code: [Select]

#define MCP23017_ADDRESS 0x20
 Wire.requestFrom(MCP23017_ADDRESS | i2caddr, 1);

L'adresse par défaut du MCP23017 est bien 0x20. Donc :

Code: [Select]

  mcp.begin();
// ou
  mcp.begin(0);

Voir ICI : https://riton-duino.blogspot.com/2019/02/les-extensions-de-gpios-de-larduino.html

8.4. Le MCP23017
9. Gestion d'entrées sous interruption

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Artouste

ça en fait 8 ça :)
ha ba oui ,  c'est le problème des intervaux 8)



je corrrige !

dbrion06

Honte à moi... (je n'avais pas osé imaginer que Lady Ada ferait tout pour simplifier la vie, et, surtout, je n'avais pas lu tout son code)

GregFou

#19
Mar 20, 2019, 05:53 pm Last Edit: Mar 20, 2019, 05:56 pm by GregFou
de retour,

alors voici les photos car le précédentes étaient trop volumineuse.






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é.
Merci beaucoup pour les infos sur l'adressage du MCP23017. Donc mon code initiale était bon sur ce point.

J-M-L

#20
Mar 20, 2019, 06:01 pm Last Edit: Mar 20, 2019, 06:04 pm by J-M-L
Quote
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...


Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

GregFou

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) ???


kamill

#22
Mar 20, 2019, 06:16 pm Last Edit: Mar 20, 2019, 06:35 pm by kamill
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.

GregFou

Pour moi le pin 11 est NC voir ci dessous




J-M-L

#24
Mar 20, 2019, 06:37 pm Last Edit: Mar 20, 2019, 06:43 pm by J-M-L
à 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 
Code: [Select]
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
Code: [Select]
/**
 * 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
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

kamill

#25
Mar 20, 2019, 06:43 pm Last Edit: Mar 20, 2019, 06:44 pm by kamill
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.

dbrion06

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)

GregFou

#27
Mar 21, 2019, 09:01 am Last Edit: Mar 21, 2019, 09:05 am by GregFou
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.
Code: [Select]

#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.

kamill

Bonjour,

Il n'y a pas de Serial.begin() dans ton programme -> tu ne dois rien voir sur le moniteur série.

GregFou

#29
Mar 21, 2019, 09:48 am Last Edit: Mar 21, 2019, 09:49 am by GregFou
bon ..... :smiley-confuse: 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.





Go Up