MCP23017 et entrées qui ne sont pas stables..

Vous souhaitez piloter votre framboise à partir d'une page web ? Ou mieux encore à partir d'un smartphone ou d'une tablette Android ? Venez donc visiter cette rubrique...

Modérateur : Francois

Répondre
Alain91
Messages : 2
Enregistré le : sam. 20 sept. 2014 08:49

MCP23017 et entrées qui ne sont pas stables..

Message par Alain91 » ven. 11 mars 2016 19:11

Bonjour,

Je bidouille un peu avec un raspberry et un mcp23017.

J'ai fais des montages en utilisant les sorties du MCP avec WiringPI et pas de soucis : une led qui clignote, un moteur pas à pas, nickel.

La ou ça se gâte c'est un niveau des entrées..

Je prends mon montage qui fonctionne bien en sortie :

Image

Je branche un bouton entre un des ports du mcp et la masse du mcp, et je compile ce programme :

Code : Tout sélectionner

//
// Test switch MCP23017
//
#include <stdio.h>
#include <wiringPi.h>
#include <mcp23017.h>


int switchPin = 4;

int main(void) {

    wiringPiSetup();
	
	// adresse port 0 ( port A.0 du mcp23017 )
	int MCPbase=100;

	// adresse I2c MCP23017 = 0x20 (32 en décimal)
	mcp23017Setup (MCPbase, 0x20) ;
	
	// Sur quelle broche faire clignoter la led
	int switchPin=0;
	
	// broche led en entrée
	pinMode (MCPbase+switchPin, INPUT) ;
	
	pullUpDnControl (MCPbase+switchPin, PUD_UP) ;
	
    for (;;) {
        printf("switch : %d\n", digitalRead(MCPbase+switchPin));
    }

    return (0);
}

Si je l’exécute, j'ai un défilé de 0, mais de temps en temps un 1 s'invite...
Si j'appuie sur le bouton, une série de 1 s'affiche mais de temps en temps un 0 apparait ?

Du coup j'ai pensé à la résistance de rappel, mais dans la doc du MCP et wiringPi, il est indiqué que le MCP à déjà cette résistance en interne ?

D'ailleurs je l'active via la ligne

Code : Tout sélectionner

   pullUpDnControl (MCPbase+switchPin, PUD_UP) ;


Auriez vous une idée pour éliminer ce problème ? Je ne vois pas trop ou est la cause ?

Merci beaucoup,
Alain

bruno83
Messages : 72
Enregistré le : lun. 11 mai 2015 13:29

Re: MCP23017 et entrées qui ne sont pas stables..

Message par bruno83 » sam. 12 mars 2016 18:25

i2c.png
i2c.png (57.46 Kio) Vu 5168 fois
Pour avoir utilisé l’i2c en python gpio j’ai câblé les résistances de tirage , sans utiliser celles en internes ça marche bien ,ne pas oublier de configurer l’i2c dans la config système.
oups :oops: je viens de me rendre compte que l'i2c n'est pas pour le pi
si non en tor je n'ai jamais eu de soucis et avec la résistance de tirage n'ont plus mais en pithon avec librairie gpio


A+bruno

omg
Messages : 2
Enregistré le : sam. 25 juin 2016 10:14

Re: MCP23017 et entrées qui ne sont pas stables..

Message par omg » sam. 25 juin 2016 10:29

Bonjour Alain et Bruno,

J'ai également le même problème.
MCP23017 configuré en input
A0 A1 A2 sur GND
Reset sur 3.3
VSS et VDD sur 3.3 et GND
Les deux ports i2c branché sur le Raspberry.

Quand je regarde ce que j'ai sur les 16 entrées du MCP je me retrouve avec des choses aléatoires...
Je ne comprends pas...

omg
Messages : 2
Enregistré le : sam. 25 juin 2016 10:14

Re: MCP23017 et entrées qui ne sont pas stables..

Message par omg » sam. 25 juin 2016 11:18

Bon... au final voilà ce que j'ai compris.

Si l'on souhaite utiliserl'entrée A0 avec un bouton poussoir voilà comment procéder :

De base l'entrée doit être mise sur une résistance 1K elle même reliée à la masse.
Ceci mettra l'entrée à l'état 1
Si l'on met un contact entre A0 et 3.3V via un bouton poussoir, l'état passera à 0.

Voilà. Un poil déçu car ce n'est pas le même fonctionnement que sur raspberry.

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: MCP23017 et entrées qui ne sont pas stables..

Message par guillaume9344 » sam. 25 juin 2016 11:46

Bonjour, pour l inversion des ports, voir la section 1.6.2 le registr ipol gere la polarité des ports, un 1dans ce registre inverse la donnee corespondante .
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

Répondre

Retourner vers « Des interfaces pour le Raspberry Pi »