This is an old revision of the document!
Table of Contents
MIDI Keyboard
A 25 key Midi keyboard based on an Arduino (Atmega328P-PU). It has an small OLED Display, too.
MCP23017
I2C
I2C SDA SCL Arduino Uno A4 A5
Setting the Adress
To set the I2C address of the MCP23017 one has to connect A0, A1 and A2 to GND or to power.
GND = 0 and +5V = 1
A0 A1 A2 adresse 0 0 0 0x20 0 1 0 0 0x21 1 0 1 0 0x22 2 1 1 0 0x23 3 0 0 1 0x24 4 1 0 1 0x25 5 0 1 1 0x26 6 1 1 1 0x27 7
And in the code one has to put the address in the “begin” command:
mcp.begin(address);
Pulldown Resistor
Every botton is connected to +5V and at the pin to the MCP23017 it has a 10k pulldown resistor to ground.
IO Pin ----- Button ------- +5V | 10k | GND
Library
Adafruit-MCP23017-Arduino-Library
Datasheet
MCP23017
Key and Pin parsing
MCP Key/Note Library A0 D1 0 A1 C#1 1 A2 E1 2 A3 D#1 3 A4 F1 4 A5 C1 5 A6 G1 6 A7 F#1 7 B0 D1 8
OLED Display
Pins:
OLED Display Arduino GND: Ground GND VCC: 3.3v or 5.0V Power Supply +5V D0: CLK Pin 08 D1: MOSI Pin 07 RST: Reset Pin 06 DC: Data Command Pin 05 CS: Chip Select NC
Bit Converter
http://en.radzio.dxp.pl/bitmap_converter/
Example Code
OLED-Example