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 14:25] admin [OLED Display] |
— (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/]]\\ | ||
- | To convert a picture one need a 128x64 pixel, B/W, 1Bit, Bitmap.\\ | ||
- | Settings:\\ | ||
- | Byte Orientation: vertical | ||
- | Width: 128 Hight: 64 | ||
- | Size Endianness: Little | ||
- | Pixel/Byte 8 | ||
- | |||
- | === 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/]]\\ | ||
- | |||
- | ---- |