Ich habe nun zum Test mal LED angeschlossen an:
LED1 (Arduino)
LED2 (MCP23S17 - Add-On)
LED3 (MCP23S17 - Add-On)
Mein Test-Sketch schaut so aus:
#include <SPI.h>
#include <MCP23S17.h>
MCP iochip(7,10);
void setup() {
iochip.begin();
iochip.pinMode(1, OUTPUT);
iochip.pinMode(2, OUTPUT);
iochip.pinMode(3, OUTPUT);
iochip.pinMode(4, OUTPUT);
iochip.pinMode(5, OUTPUT);
iochip.pinMode(6, OUTPUT);
iochip.pinMode(7, OUTPUT);
iochip.pinMode(8, OUTPUT);
iochip.pinMode(9, OUTPUT);
iochip.pinMode(10, OUTPUT);
iochip.pinMode(18, OUTPUT);
iochip.pinMode(19, OUTPUT);
iochip.pinMode(20, OUTPUT);
iochip.pinMode(21, OUTPUT);
iochip.pinMode(22, OUTPUT);
iochip.pinMode(23, OUTPUT);
iochip.pinMode(24, OUTPUT);
iochip.pinMode(25, OUTPUT);
iochip.pinMode(26, OUTPUT);
iochip.pinMode(27, OUTPUT);
iochip.pinMode(28, OUTPUT);
pinMode(3, OUTPUT);
}
void loop() {
iochip.digitalWrite(1, HIGH);
iochip.digitalWrite(2, HIGH);
iochip.digitalWrite(3, HIGH);
iochip.digitalWrite(4, HIGH);
iochip.digitalWrite(5, HIGH);
iochip.digitalWrite(6, HIGH);
iochip.digitalWrite(7, HIGH);
iochip.digitalWrite(8, HIGH);
iochip.digitalWrite(9, HIGH);
iochip.digitalWrite(10, HIGH);
iochip.digitalWrite(18, HIGH);
iochip.digitalWrite(19, HIGH);
iochip.digitalWrite(20, HIGH);
iochip.digitalWrite(21, HIGH);
iochip.digitalWrite(22, HIGH);
iochip.digitalWrite(23, HIGH);
iochip.digitalWrite(24, HIGH);
iochip.digitalWrite(25, HIGH);
iochip.digitalWrite(26, HIGH);
iochip.digitalWrite(27, HIGH);
iochip.digitalWrite(28, HIGH);
digitalWrite(3, HIGH);
delay(1000);
iochip.digitalWrite(1, LOW);
iochip.digitalWrite(2, LOW);
iochip.digitalWrite(3, LOW);
iochip.digitalWrite(4, LOW);
iochip.digitalWrite(5, LOW);
iochip.digitalWrite(6, LOW);
iochip.digitalWrite(7, LOW);
iochip.digitalWrite(8, LOW);
iochip.digitalWrite(9, LOW);
iochip.digitalWrite(10, LOW);
iochip.digitalWrite(18, LOW);
iochip.digitalWrite(19, LOW);
iochip.digitalWrite(20, LOW);
iochip.digitalWrite(21, LOW);
iochip.digitalWrite(22, LOW);
iochip.digitalWrite(23, LOW);
iochip.digitalWrite(24, LOW);
iochip.digitalWrite(25, LOW);
iochip.digitalWrite(26, LOW);
iochip.digitalWrite(27, LOW);
iochip.digitalWrite(28, LOW);
digitalWrite(3, LOW);
delay(1000);
}
Ich habe nun alle 8 Board-Adressen von 0-7 getestet.
Mein erwartetes Testergebnis war, dass alle 3 LEDs im Sekundentakt blinken.
Die Am Arduino verrichtet das perfekt.
Die beiden anderen am MCP leider nicht.
Ich bin mit meinen begrenzten Möglichkeiten leider am Ende.
By the way: Die Doku der library für den MCP scheint falsch zu sein.
Danach müßte es lauten:
iochip.pinMode(1, LOW);
irgendwo habe ich gelesen, dass das falsch ist und wie der normale Pin-Mode lauten muss:
iochip.pinMode(1, OUTPUT);