Hallo Freunde,
ich möchte ein 16-fach Lauflicht am Schieberegister MPC23017 betreiben. Wenn ich eine einzelne LED/PIN am MCP anspreche, geht es. Nun habe ich offensichtlich ein Denkproblem.
Hier der Code:
/* 16-fach Lauflicht am MCP23017
* erstellt: 03.08.22
*/
#include <Wire.h>
#include <Adafruit_MCP23017.h>
Adafruit_MCP23017 mcp;
int i;
void setup()
{
mcp.begin(); // Init MCP23017 at address 0x20
for (i = 0; i < 16; i++);
mcp.pinMode(i, OUTPUT);
}
void loop()
{
for (i = 0; i < 16; i++)
{
mcp.digitalWrite(i, HIGH);
delay(500);
mcp.digitalWrite(i, LOW);
}
}
Hallo agmue,
wie immer, danke. Wenn man da 5 mal draufschaut, brennt sich das Bild (Code) als "richtig" ein, den sieht man erst nach 2 Wochen Pause. Danke
Hallo Uwe,
die Lösung mit dem MCP finde ich eleganter und durch die Direktansprache der Pins auch (für mich) verständlicher und später noch nachvollziehbar
MCP23017 ist ein Baustein mit I2C Bus. Der ist viel langsamer als ein MCP23S17 mit SPI oder ein 595 mit SPI angesteuert.
Wenn ich nur Outputs brauche sehe ich wenig Unterschied zwishen den genannten Lösungen. Wenn ich gemischt Outouts und Inputs bzw Interruptgesteuert durch INPUTänderungen einlese sind die MCP von Vorteil.