summaryrefslogtreecommitdiff
path: root/CODE/debugprewk/debug/MCP23017
diff options
context:
space:
mode:
Diffstat (limited to 'CODE/debugprewk/debug/MCP23017')
-rw-r--r--CODE/debugprewk/debug/MCP23017/MCP23017.ino177
-rw-r--r--CODE/debugprewk/debug/MCP23017/mcp20317_schemss.jpgbin0 -> 21944 bytes
2 files changed, 177 insertions, 0 deletions
diff --git a/CODE/debugprewk/debug/MCP23017/MCP23017.ino b/CODE/debugprewk/debug/MCP23017/MCP23017.ino
new file mode 100644
index 0000000..d295e7c
--- /dev/null
+++ b/CODE/debugprewk/debug/MCP23017/MCP23017.ino
@@ -0,0 +1,177 @@
+#include <Adafruit_MCP23X17.h>
+
+#define ir1 0 // GPA0
+#define ir2 1 // GPA1
+#define ir3 2 // GPA2
+#define ir4 3 // GPA3
+#define ir5 4 // GPA4
+#define ir6 5 // GPA5
+#define ir7 6 // GPA6
+#define ir8 7 // GPA7
+#define ir9 8 // GPB0
+#define ir10 9 // GPB1
+#define ir11 10 // GPB2
+#define ir12 11 // GPB3
+#define ir13 12 // GPB4
+#define ir14 13 // GPB5
+#define ir15 14 // GPB6
+#define ir16 15 // GPB7
+
+int dir1 = 1; // data IR1
+int dir2 = 1; // data IR2
+int dir3 = 1; // etc
+int dir4 = 1;
+int dir5 = 1;
+int dir6 = 1;
+int dir7 = 1;
+int dir8 = 1;
+int dir9 = 1;
+int dir10 = 1;
+int dir11 = 1;
+int dir12 = 1;
+int dir13 = 1;
+int dir14 = 1;
+int dir15 = 1;
+int dir16 = 1;
+
+int dir17 = 1; // data IR17
+int dir18 = 1; // data IR18
+int dir19 = 1; // etc
+int dir20 = 1;
+int dir21 = 1;
+int dir22 = 1;
+int dir23 = 1;
+int dir24 = 1;
+int dir25 = 1;
+int dir26 = 1;
+int dir27 = 1;
+int dir28 = 1;
+int dir29 = 1;
+int dir30 = 1;
+int dir31 = 1;
+int dir32 = 1;
+
+// Instance for the first MCP23017 at address 0x20
+Adafruit_MCP23X17 mcp1;
+
+// Instance for the second MCP23017 at address 0x22
+Adafruit_MCP23X17 mcp2;
+
+void setup() {
+ Serial.begin(9600);
+ while (!Serial);
+ Serial.println("MCP23xxx Button Test!");
+
+ // Initialize first MCP23017 with I2C address 0x20
+ if (!mcp1.begin_I2C(0x20)) {
+ Serial.println("Error initializing MCP23017 at 0x20.");
+ while (1);
+ }
+
+ // Initialize second MCP23017 with I2C address 0x22
+ if (!mcp2.begin_I2C(0x22)) {
+ Serial.println("Error initializing MCP23017 at 0x22.");
+ while (1);
+ }
+
+ // Configure pins for the first MCP23017 (0x20)
+ mcp1.pinMode(ir1, INPUT);
+ mcp1.pinMode(ir2, INPUT);
+ mcp1.pinMode(ir3, INPUT);
+ mcp1.pinMode(ir4, INPUT);
+ mcp1.pinMode(ir5, INPUT);
+ mcp1.pinMode(ir6, INPUT);
+ mcp1.pinMode(ir7, INPUT);
+ mcp1.pinMode(ir8, INPUT);
+ mcp1.pinMode(ir9, INPUT);
+ mcp1.pinMode(ir10, INPUT);
+ mcp1.pinMode(ir11, INPUT);
+ mcp1.pinMode(ir12, INPUT);
+ mcp1.pinMode(ir13, INPUT);
+ mcp1.pinMode(ir14, INPUT);
+ mcp1.pinMode(ir15, INPUT);
+ mcp1.pinMode(ir16, INPUT);
+
+ // Configure pins for the second MCP23017 (0x22)
+ mcp2.pinMode(ir1, INPUT);
+ mcp2.pinMode(ir2, INPUT);
+ mcp2.pinMode(ir3, INPUT);
+ mcp2.pinMode(ir4, INPUT);
+ mcp2.pinMode(ir5, INPUT);
+ mcp2.pinMode(ir6, INPUT);
+ mcp2.pinMode(ir7, INPUT);
+ mcp2.pinMode(ir8, INPUT);
+ mcp2.pinMode(ir9, INPUT);
+ mcp2.pinMode(ir10, INPUT);
+ mcp2.pinMode(ir11, INPUT);
+ mcp2.pinMode(ir12, INPUT);
+ mcp2.pinMode(ir13, INPUT);
+ mcp2.pinMode(ir14, INPUT);
+ mcp2.pinMode(ir15, INPUT);
+ mcp2.pinMode(ir16, INPUT);
+
+ Serial.println("Looping...");
+}
+
+void loop() {
+ // Read pins from the first MCP23017 (0x20)
+ dir1 = mcp1.digitalRead(ir1);
+ dir2 = mcp1.digitalRead(ir2);
+ dir3 = mcp1.digitalRead(ir3);
+ dir4 = mcp1.digitalRead(ir4);
+ dir5 = mcp1.digitalRead(ir5);
+ dir6 = mcp1.digitalRead(ir6);
+ dir7 = mcp1.digitalRead(ir7);
+ dir8 = mcp1.digitalRead(ir8);
+ dir9 = mcp1.digitalRead(ir9);
+ dir10 = mcp1.digitalRead(ir10);
+ dir11 = mcp1.digitalRead(ir11);
+ dir12 = mcp1.digitalRead(ir12);
+ dir13 = mcp1.digitalRead(ir13);
+ dir14 = mcp1.digitalRead(ir14);
+ dir15 = mcp1.digitalRead(ir15);
+ dir16 = mcp1.digitalRead(ir16);
+
+ // Read pins from the second MCP23017 (0x22)
+ dir17 = mcp2.digitalRead(ir1);
+ dir18 = mcp2.digitalRead(ir2);
+ dir19 = mcp2.digitalRead(ir3);
+ dir20 = mcp2.digitalRead(ir4);
+ dir21 = mcp2.digitalRead(ir5);
+ dir22 = mcp2.digitalRead(ir6);
+ dir23 = mcp2.digitalRead(ir7);
+ dir24 = mcp2.digitalRead(ir8);
+ dir25 = mcp2.digitalRead(ir9);
+ dir26 = mcp2.digitalRead(ir10);
+ dir27 = mcp2.digitalRead(ir11);
+ dir28 = mcp2.digitalRead(ir12);
+ dir29 = mcp2.digitalRead(ir13);
+ dir30 = mcp2.digitalRead(ir14);
+ dir31 = mcp2.digitalRead(ir15);
+ dir32 = mcp2.digitalRead(ir16);
+
+ // Print the results from the first MCP23017 (0x20)
+ Serial.print("MCP23017 @ 0x20: ");
+ Serial.print(dir1); Serial.print(", "); Serial.print(dir2);
+ Serial.print(", "); Serial.print(dir3); Serial.print(", "); Serial.print(dir4);
+ Serial.print(", "); Serial.print(dir5); Serial.print(", "); Serial.print(dir6);
+ Serial.print(", "); Serial.print(dir7); Serial.print(", "); Serial.print(dir8);
+ Serial.print(", "); Serial.print(dir9); Serial.print(", "); Serial.print(dir10);
+ Serial.print(", "); Serial.print(dir11); Serial.print(", "); Serial.print(dir12);
+ Serial.print(", "); Serial.print(dir13); Serial.print(", "); Serial.print(dir14);
+ Serial.print(", "); Serial.print(dir15); Serial.print(", "); Serial.print(dir16);
+
+ // Print the results from the second MCP23017 (0x22)
+ Serial.print(" MCP23017 @ 0x22: ");
+ Serial.print(dir17); Serial.print(", "); Serial.print(dir18);
+ Serial.print(", "); Serial.print(dir19); Serial.print(", "); Serial.print(dir20);
+ Serial.print(", "); Serial.print(dir21); Serial.print(", "); Serial.print(dir22);
+ Serial.print(", "); Serial.print(dir23); Serial.print(", "); Serial.print(dir24);
+ Serial.print(", "); Serial.print(dir25); Serial.print(", "); Serial.print(dir26);
+ Serial.print(", "); Serial.print(dir27); Serial.print(", "); Serial.print(dir28);
+ Serial.print(", "); Serial.print(dir29); Serial.print(", "); Serial.print(dir30);
+ Serial.print(", "); Serial.print(dir31); Serial.print(", "); Serial.println(dir32);
+
+ Serial.println();
+ delay(250);
+}
diff --git a/CODE/debugprewk/debug/MCP23017/mcp20317_schemss.jpg b/CODE/debugprewk/debug/MCP23017/mcp20317_schemss.jpg
new file mode 100644
index 0000000..5231394
--- /dev/null
+++ b/CODE/debugprewk/debug/MCP23017/mcp20317_schemss.jpg
Binary files differ