Files
midi-dj-controller/WIRING.md

9.7 KiB

Verdrahtungsplan für USB-MIDI-Controller

📋 Übersicht der Verbindungen

Arduino Pro Micro Pin-Belegung

                Arduino Pro Micro (ATmega32u4)
                ┌─────────────────────────────┐
                │  RAW                    GND │
                │  GND                    RST │
                │  RST                    VCC │
                │  VCC                     A3 │
         SDA    │   2                      A2 │
         SCL    │   3                      A1 │
      MUX_S0    │   4                      A0 │ ──── MUX Signal
      MUX_S1    │   5                     15  │
      MUX_S2    │   6                     14  │
      MUX_S3    │   7                     16  │
                │   8                     10  │
                │   9                     TXO │
                └─────────────────────────────┘

🔌 Detaillierte Verdrahtung

1. I2C Bus (MCP23017 Chips)

Arduino Pro Micro    MCP23017 #1 (0x20)    MCP23017 #2 (0x21)
     Pin 2 (SDA) ──┬─── Pin 13 (SDA) ───────── Pin 13 (SDA)
     Pin 3 (SCL) ──┼─── Pin 12 (SCL) ───────── Pin 12 (SCL)
         VCC ──────┼─── Pin 9 (VDD) ────────── Pin 9 (VDD)
         GND ──────┼─── Pin 10 (VSS) ──────── Pin 10 (VSS)
                   │    Pin 18 (RESET) ─── VCC
                   │    Pin 15,16,17 ────── GND  (A0,A1,A2 = 0x20)
                   │
                   └─── Pin 18 (RESET) ─── VCC
                        Pin 15 ────────── VCC  (A0 = HIGH)
                        Pin 16,17 ──────── GND  (A1,A2 = 0x21)

2. CD74HC4067 Multiplexer

Arduino Pro Micro         CD74HC4067
     Pin 4 (MUX_S0) ────── Pin 10 (S0)
     Pin 5 (MUX_S1) ────── Pin 11 (S1)
     Pin 6 (MUX_S2) ────── Pin 14 (S2)
     Pin 7 (MUX_S3) ────── Pin 13 (S3)
     Pin A0 ─────────────── Pin 1 (SIG)
         VCC ─────────────── Pin 24 (VCC)
         GND ─────────────── Pin 12 (GND)
                            Pin 15 (EN) ──── GND (Enable)

🎛️ Analoge Regler-Anschlüsse

Potentiometer & Schieberegler an Multiplexer

Multiplexer Kanal    Komponente           Wert
      C0      ────── Poti 1 (Mittelpin)    CC1
      C1      ────── Poti 2 (Mittelpin)    CC2
      C2      ────── Poti 3 (Mittelpin)    CC3
      C3      ────── Poti 4 (Mittelpin)    CC4
      C4      ────── Poti 5 (Mittelpin)    CC5
      C5      ────── Poti 6 (Mittelpin)    CC6
      C6      ────── Poti 7 (Mittelpin)    CC7
      C7      ────── Poti 8 (Mittelpin)    CC8
      C8      ────── Slider 1 (Mittelpin)  CC9
      C9      ────── Slider 2 (Mittelpin)  CC10
      C10     ────── Slider 3 (Mittelpin)  CC11
      C11     ────── Slider 4 (Mittelpin)  CC12
      C12-C15 ────── (Reserviert für Erweiterung)

Potentiometer-Verdrahtung (pro Poti/Slider)

     VCC ──── Pin 1 (links/oben)
     GND ──── Pin 3 (rechts/unten)
Multiplexer ── Pin 2 (Mittelpin/Schleifer)

🔘 Button & LED Matrix

MCP23017 #1 (Adresse 0x20) - Buttons 0-15 & LEDs 0-15

MCP Pin    Button    LED      MIDI Note    Funktion
  0   ──── BTN0  ──  LED0  ──   C2 (36)   ── Kick
  1   ──── BTN1  ──  LED1  ──  C#2 (37)   ── Snare
  2   ──── BTN2  ──  LED2  ──   D2 (38)   ── Hi-Hat
  3   ──── BTN3  ──  LED3  ──  D#2 (39)   ── Open Hat
  4   ──── BTN4  ──  LED4  ──   E2 (40)   ── Clap
  5   ──── BTN5  ──  LED5  ──   F2 (41)   ── Crash
  6   ──── BTN6  ──  LED6  ──  F#2 (42)   ── Ride
  7   ──── BTN7  ──  LED7  ──   G2 (43)   ── Tom 1
  8   ──── BTN8  ──  LED8  ──  G#2 (44)   ── Tom 2
  9   ──── BTN9  ──  LED9  ──   A2 (45)   ── Tom 3
  10  ──── BTN10 ── LED10  ──  A#2 (46)   ── Perc 1
  11  ──── BTN11 ── LED11  ──   B2 (47)   ── Perc 2
  12  ──── BTN12 ── LED12  ──   C3 (48)   ── Perc 3
  13  ──── BTN13 ── LED13  ──  C#3 (49)   ── Perc 4
  14  ──── BTN14 ── LED14  ──   D3 (50)   ── FX 1
  15  ──── BTN15 ── LED15  ──  D#3 (51)   ── FX 2

MCP23017 #2 (Adresse 0x21) - Buttons 16-19 & LEDs 16-19

MCP Pin    Button    LED      MIDI Note    Funktion
  0   ──── BTN16 ──   /    ──   E3 (52)   ── Transport: Play
  1   ──── BTN17 ──   /    ──  F3 (53)    ── Transport: Stop
  2   ──── BTN18 ──   /    ──  F#3 (54)   ── Transport: Rec
  3   ──── BTN19 ──   /    ──   G3 (55)   ── Transport: Loop
  4   ──── LED16 ──   /    ──     /       ── Play LED
  5   ──── LED17 ──   /    ──     /       ── Stop LED
  6   ──── LED18 ──   /    ──     /       ── Rec LED
  7   ──── LED19 ──   /    ──     /       ── Loop LED
  8-15 ──── (Nicht verwendet)

Button-Schaltung (pro Button)

       VCC
        │
       ┌┴┐ 10kΩ Pull-Up
       │ │ (intern im MCP23017)
       └┬┘
        │
        ├─── MCP23017 Pin (Input)
        │
       ┌┴┐ Button (Tact Switch)
       └┬┘
        │
       GND

💡 LED-Schaltung (pro LED)

MCP23017 Pin (Output) ──┬── 220Ω Widerstand ──┬── LED Anode (+)
                        │                      │
                       GND                     │
                                             LED Kathode (-)
                                               │
                                             GND

🔄 Vollständiger Systemaufbau

                              USB-MIDI-Controller
    ┌─────────────────────────────────────────────────────────────────┐
    │                                                                 │
    │  ┌─────────────────┐     ┌───────────────┐                     │
    │  │  Arduino Pro    │     │  CD74HC4067   │                     │
    │  │     Micro       │ ──── │  Multiplexer  │ ──── 12x Analog     │
    │  │   (ATmega32u4)  │     │               │      Regler         │
    │  └─────────────────┘     └───────────────┘                     │
    │           │                                                     │
    │           │ I2C Bus                                             │
    │           │                                                     │
    │  ┌─────────┴─────────┐                                          │
    │  │                   │                                          │
    │  ▼                   ▼                                          │
    │ ┌──────────────┐   ┌──────────────┐                            │
    │ │  MCP23017    │   │  MCP23017    │                            │
    │ │    #1        │   │    #2        │                            │
    │ │  (0x20)      │   │  (0x21)      │                            │
    │ └──────────────┘   └──────────────┘                            │
    │        │                   │                                    │
    │        ▼                   ▼                                    │
    │  16x Buttons         4x Buttons                                 │
    │  16x LEDs            4x LEDs                                    │
    │                                                                 │
    └─────────────────────────────────────────────────────────────────┘
                                   │
                                   ▼ USB
                              ┌──────────┐
                              │    PC    │
                              │   DAW    │
                              │ Software │
                              └──────────┘

📌 Wichtige Hinweise

Pull-Up Widerstände

  • MCP23017 hat interne Pull-Up Widerstände (aktiviert im Code)
  • Externe 4.7kΩ Pull-Ups für I2C-Bus empfohlen bei langen Leitungen

Spannungsversorgung

  • Alle Komponenten arbeiten mit 5V
  • Gesamtstromaufnahme: ~500mA (bei allen LEDs an)
  • USB kann bis zu 500mA liefern

Verkabelungstipps

  • I2C-Leitungen kurz halten (< 1m)
  • Twisted Pair für I2C bei längeren Strecken
  • Sternförmige GND-Verteilung
  • Entstörkondensatoren (100nF) an jedem IC

Debugging

  • Serial Monitor für MIDI-Events
  • LED-Test beim Start zeigt Hardware-Status
  • I2C-Scanner-Code für Adress-Probleme verfügbar