Hi,
ich hab ein kleines Projekt bei dem ich 48 Pins schalten will. Aber auf Gund von Platzgründen n kleinern Chip verwenden muss. Daher einen Nano mit EasyC IO Port Expander MCP23017. (IO Expander MCP23017)
Wenn ich die Adresse 0x27 anspreche reagiert die Adresse 0x26 mit obwohl sie nicht angesprochen wurde.
#include "Wire.h"
void setup() {
// put your setup code here, to run once:
Wire.begin();
SetUpIOPorts(0x27);
SetUpIOPorts(0x26);
SetUpIOPorts(0x25);
SetUpIOPorts(0x24);
SetUpIOPorts(0x23);
}
void SetUpIOPorts(int Adress)
{
Wire.beginTransmission(Adress);
Wire.write(0x00);
Wire.write(0x00);
Wire.endTransmission();
Wire.beginTransmission(Adress);
Wire.write(0x01);
Wire.write(0x00);
Wire.endTransmission();
}
void SetOIPort(int Adress, int A, int B)
{
Wire.beginTransmission(Adress);
Wire.write(0x12); // address port A
Wire.write(A); // value to send
Wire.endTransmission();
Wire.beginTransmission(Adress);
Wire.write(0x13); // address port B
Wire.write(B); // value to send
Wire.endTransmission();
}
void loop() {
delay(1000);
SetOIPort(0x27, 0xFF, 0xFF);
delay(1000);
SetOIPort(0x25, 0xFF, 0xFF);
delay(1000);
SetOIPort(0x26, 0xFF, 0xFF);
delay(1000);
SetOIPort(0x27, 0x00, 0x00);
delay(1000);
SetOIPort(0x25, 0x00, 0x00);
delay(1000);
SetOIPort(0x26, 0x00, 0x00);
}
Die MCP23017 sind über den 4 Pin Stecker am I2C Bus angeschlossen. Und werden mit 5V direkt versorgt.
Wenn ich ein I2C Scanner sketch hochlade werden mir alle Adressen angeziegt:
15:50:14.111 -> I2C device found at address 0x23 !
15:50:14.111 -> I2C device found at address 0x24 !
15:50:14.111 -> I2C device found at address 0x25 !
15:50:14.111 -> I2C device found at address 0x26 !
15:50:14.111 -> I2C device found at address 0x27 !
Jumper mit Lötpunkt auf der Platine setzen.
Sollte ja Theoretisch funktioniert haben sonst würde mir der I2C Scanner Sketch nicht 5 verschiedene anzeigen wenn ich 5 MCP23017 angeschlossen habe.
mach 5 saubere Bilder von deinen 5 Boards damit wir sehen wie deine Adressierungen aussehen.
ergänze ein Board nach dem anderen.
Sobald durch die Hinzunahme von einem Board es zu Schwierigkeiten kommt stoppst du,
du postest den den Sketch hier
zeigst deine Verkabelung ,
und beschreibst durch welches Board das Problem aufgetreten ist.