Forum: Mikrocontroller und Digitale Elektronik Problem mit dem MCP23017


von herculeZ (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
Ich bräuchte ein wenig Hilfe mit meinem MCP23017 Portexpander. Ich habe 
versucht, in Kombination mit einem Arduino, den MCP als Ausgang zu 
beutzen. Das hat so auch funktioniert, bis auf eine Merkwürdige 
Begebenheit: Lasse ich Anschluss 7 blinken, so ist Nummer 1 immer HIGH. 
Wenn ich die 1 ansteuer ist es genau umgekehrt. Benutzt habe ich die 
entsprechende Library von Adafruit.

Das Datenblatt des MCP23017 gibts hier:
http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf

Wisst ihr, woran das liegt? An der HW, an der SW? Oder bin ich einfach 
nur zu blöd? '_'
1
//Code Teilweise von http://www.arduino-projekte.de 
2
3
//Librarys einbinden
4
#include <Wire.h>
5
#include "Adafruit_MCP23017.h"
6
7
Adafruit_MCP23017 mcp;
8
9
//Eine For-Schleife, um alle Pins von 0 - 16 als Ausgänge zu definieren
10
void setup() {  
11
  mcp.begin();      // use default address 0
12
  for (int i=0;i<=16;i++)
13
  {
14
    mcp.pinMode(i, OUTPUT);
15
  }
16
}
17
18
//Anschluss 7 blinkt!
19
void loop() {
20
    mcp.digitalWrite(7, HIGH);
21
    delay(150);
22
    mcp.digitalWrite(7, LOW);
23
    delay(150);        
24
}
LG herculeZ

von Joe F. (easylife)


Lesenswert?

a) die Initialisierungsschleife sollte nicht von 0..16 laufen (das wären 
17 pins...)

b) Versuche mal beim Initialisieren die Pins alle auf low zu setzen.
1
void setup() {  
2
  mcp.begin();      // use default address 0
3
  for (int i=0;i<16;i++)
4
    mcp.pinMode(i, OUTPUT);
5
6
  for (int i=0;i<16;i++)
7
    mcp.digitalWrite(i, LOW);
8
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.