Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
other_boards:midi_keyboard [2017/07/06 03:52] admin [MIDI Keyboard] |
— (current) | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== MIDI Keyboard ===== | ||
| - | A 25 key Midi keyboard based on an Arduino (Atmega328P-PU). It has an small OLED Display, too.\\ | ||
| - | ---- | ||
| - | ==== Code ==== | ||
| - | {{ :other_boards:midi_keyboard_04.zip |}}\\ | ||
| - | |||
| - | ---- | ||
| - | ==== 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 === | ||
| - | [[https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library|Adafruit-MCP23017-Arduino-Library]]\\ | ||
| - | |||
| - | === Datasheet === | ||
| - | [[http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf|MCP23017]]\\ | ||
| - | |||
| - | ===Key and Pin parsing=== | ||
| - | MCP1 Key/Note Pin 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 A#1 8 | ||
| - | B1 H1 9 | ||
| - | B2 G#1 10 | ||
| - | B3 A1 11 | ||
| - | B4 Switch 12 | ||
| - | B5 Octave Up 13 | ||
| - | B6 Octave Down 14 | ||
| - | B7 15 | ||
| - | |||
| - | MCP2 Key/Note Pin Library | ||
| - | A0 D2 0 | ||
| - | A1 C#2 1 | ||
| - | A2 E2 2 | ||
| - | A3 D#2 3 | ||
| - | A4 F2 4 | ||
| - | A5 C2 5 | ||
| - | A6 G2 6 | ||
| - | A7 F#2 7 | ||
| - | B0 A#2 8 | ||
| - | B1 H2 9 | ||
| - | B2 G#2 10 | ||
| - | B3 A2 11 | ||
| - | B4 C3 12 | ||
| - | B5 Program Up 13 | ||
| - | B6 Program Down 14 | ||
| - | B7 15 | ||
| - | |||
| - | |||
| - | ---- | ||
| - | ==== OLED Display ==== | ||
| - | [[https://www.smart-prototyping.com/Prototyping-Modules/Arduino/OLED-0.96inch-12864-display-module-blue.html]]\\ | ||
| - | |||
| - | === 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 === | ||
| - | [[https://www.smart-prototyping.com/image/data/2_components/Arduino/100952%20OLED%200.96inch%2012864%20display%20module%20blue/OLED.zip|OLED-Example]]\\ | ||
| - | |||
| - | ---- | ||
| - | ==== MIDI ==== | ||
| - | === MIDI Library === | ||
| - | Here are the links for the MIDI library for MIDI over the serial pins (TX, RX).\\ | ||
| - | [[https://github.com/FortySevenEffects/arduino_midi_library/releases/tag/4.2|MIDI Library 4.2]]\\ | ||
| - | |||
| - | === MIDI Specifications === | ||
| - | [[http://www.midi.org/techspecs/midimessages.php]] | ||
| - | [[http://dernulleffekt.de/midi/table1.html]]\\ | ||
| - | [[http://dernulleffekt.de/midi/table2.html]]\\ | ||
| - | [[http://dernulleffekt.de/midi/table3.html]]\\ | ||
| - | [[http://dernulleffekt.de/midi/table4.html]]\\ | ||
| - | |||
| - | ---- | ||
| - | ==== Knowledge ==== | ||
| - | === MCP23017 === | ||
| - | [[http://www.learningaboutelectronics.com/Articles/MCP23017-IO-port-expander-circuit-with-arduino.php]]\\ | ||
| - | [[http://www.nikolaus-lueneburg.de/2015/11/mcp23017-i2c-io-port-expander/]]\\ | ||
| - | === OLED Display === | ||
| - | [[http://www.instructables.com/id/How-to-use-OLED-display-arduino-module/]]\\ | ||
| - | |||
| - | ---- | ||