MCP23017 and Teensy 3.6 button sketch not working

Status
Not open for further replies.

lolahandycam

New member
Hi All,
I know there is a thread similar to this one but i could not fix my issue with it :/

I'm currently building a sequencer for my modular synthesizer following ExtraLife videos (for Arduino UNO) : https://www.youtube.com/watch?v=Zm5zT1KV26I&list=PLXcIAQij6ZZKMTHAFv8BHvEnsouNYhx3t&index=3

I'm trying to use the MCP23017 with the Teensy 3.6 to be able to acces button input and control LED.
To dive into this, i downloaded the Adafruit_MCP23017 library and tried the first example.
This example is for the Arduino UNO, in order to make it work with the teensy, i feed the MCP23017 with 3.3V instead of 5V and i added two 4.7k ohms pullup resistors between SCL0 (Pin 19) and SDA0(Pin 18).
The rest remain exactly the same.

Nothing happens to the pin13 LED when i press the button.

I have tripple checked my wiring, im pretty sure there is something simple that i did not get but i could find it on my own

Below photos of the breadboard, and wiring "diagram"
and code of the Example "button" in Adafruit_MCP23017.h library

Thank you in advance for your attention <3

Alix


IMG_1931.jpg
IMG_1932.jpg
IMG_1929.jpg
mcp23017diagram.jpg
IMG_1928.jpg



Code:
#include <Wire.h>
#include "Adafruit_MCP23017.h"

// Basic pin reading and pullup test for the MCP23017 I/O expander
// public domain!

// Connect pin #12 of the expander to Analog 5 (i2c clock)
// Connect pin #13 of the expander to Analog 4 (i2c data)
// Connect pins #15, 16 and 17 of the expander to ground (address selection)
// Connect pin #9 of the expander to 5V (power)
// Connect pin #10 of the expander to ground (common ground)
// Connect pin #18 through a ~10kohm resistor to 5V (reset pin, active low)

// Input #0 is on pin 21 so connect a button or switch from there to ground

Adafruit_MCP23017 mcp;
  
void setup() {  
  mcp.begin();      // use default address 0

  mcp.pinMode(0, INPUT);
  mcp.pullUp(0, HIGH);  // turn on a 100K pullup internally

  pinMode(13, OUTPUT);  // use the p13 LED as debugging
}



void loop() {
  // The LED will 'echo' the button
  digitalWrite(13, mcp.digitalRead(0));
}
 
Try running File > Examples > Wire > Scanner. After uploading, make sure you have Teensy selected in Tools > Ports, then open the Arduino Serial Monitor.

What does it print in the serial monitor?
 
That means no communication is working between Teensy and the MCP23017 chip. While not good, at least this mean you know to focus on the power and I2C wires. There's no point worrying about the pushbutton yet. First you need to get the wiring fixed so the scanner can detect the MCP23017 chip.

I can confirm MCP23017 definitely does work with Teensy 3.6, when connected properly. I have personally used MCP23017 many times with Teensy 3.6. It will work once the wiring is done right.
 
Thank you for this advice,
after checking a rechecking the wiring (that is already simple)
I changed the position of the chip on the breadboard, and tadam !
I apologies for such stupid issue, and i hope this can help some people in their troubleshooting journey !
thanks again Paul for the support (and for these wonderfull pieces of hardware that i will now be able to play with all night long)
 
Status
Not open for further replies.
Back
Top