Files
midi-dj-controller/PINOUT.md

10 KiB

🔌 Pinout-Diagramm USB-MIDI-Controller

Arduino Pro Micro Pinout mit Anschlüssen

                    Arduino Pro Micro (Sparkfun)
                         Micro-USB Port
                    ┌─────────────────────┐
                    │         ┌───┐       │
                    │         │USB│       │
         External   │  RAW    └───┘   GND │  Ground
         Power      │                     │
                    │  GND             RST│  Reset
                    │                     │
                    │  RST             VCC│  +5V
                    │                     │
                    │  VCC              A3│  (nicht verwendet)
                    │                     │
              SDA   │   2               A2│  (nicht verwendet)
      (I2C Data)    │                     │
              SCL   │   3               A1│  (nicht verwendet)
     (I2C Clock)    │                     │
          MUX_S0    │   4               A0│  MUX Signal
       (Select 0)   │                     │  (Analog Input)
          MUX_S1    │   5               15│  (nicht verwendet)
       (Select 1)   │                     │
          MUX_S2    │   6               14│  (nicht verwendet)
       (Select 2)   │                     │
          MUX_S3    │   7               16│  (nicht verwendet)
       (Select 3)   │                     │
                    │   8               10│  (nicht verwendet)
    (nicht verw.)   │                     │
                    │   9              TXO│  (nicht verwendet)
    (nicht verw.)   │                     │
                    └─────────────────────┘

🔗 Anschluss-Matrix

I2C-Bus Verteilung

                     +5V ────┬─── MCP23017 #1 VDD (Pin 9)
                             ├─── MCP23017 #2 VDD (Pin 9)
                             └─── Pull-Up Widerstände (4.7kΩ)
                                      │
    Arduino Pin 2 (SDA) ─────────────┼─── MCP23017 #1 SDA (Pin 13)
                                     ├─── MCP23017 #2 SDA (Pin 13)
                                     │
    Arduino Pin 3 (SCL) ─────────────┼─── MCP23017 #1 SCL (Pin 12)
                                     └─── MCP23017 #2 SCL (Pin 12)
                                      
                     GND ────┬─── MCP23017 #1 VSS (Pin 10)
                             └─── MCP23017 #2 VSS (Pin 10)

🎚️ MCP23017 Chip-Layout

MCP23017 #1 (Adresse 0x20)

                         MCP23017 #1
                    ┌─────────────────────┐
        Button 0 ───│ 1  GPB0     VDD  28 │─── +5V
        Button 1 ───│ 2  GPB1     GPB7 27 │─── Button 7
        Button 2 ───│ 3  GPB2     GPB6 26 │─── Button 6
        Button 3 ───│ 4  GPB3     GPB5 25 │─── Button 5
        Button 4 ───│ 5  GPB4     GPB4 24 │─── Button 4
          NC ───────│ 6  GPB5     GPB3 23 │─── LED 3
          NC ───────│ 7  GPB6     GPB2 22 │─── LED 2
          NC ───────│ 8  GPB7     GPB1 21 │─── LED 1
           +5V ─────│ 9  VDD      GPB0 20 │─── LED 0
          GND ─────│10  VSS      INTA 19 │─── NC
          GND ─────│11  NC       INTB 18 │─── +5V (Reset)
      I2C SCL ─────│12  SCL      GPA7 17 │─── LED 15
      I2C SDA ─────│13  SDA      GPA6 16 │─── LED 14
          GND ─────│14  A0       GPA5 15 │─── LED 13
     Button 8 ─────│15  GPA0     GPA4 14 │─── LED 12
     Button 9 ─────│16  GPA1     GPA3 13 │─── LED 11
    Button 10 ─────│17  GPA2     GPA2 12 │─── LED 10
    Button 11 ─────│18  GPA3     GPA1 11 │─── LED 9
    Button 12 ─────│19  GPA4     GPA0 10 │─── LED 8
                    └─────────────────────┘

MCP23017 #2 (Adresse 0x21)

                         MCP23017 #2
                    ┌─────────────────────┐
       Button 16 ───│ 1  GPB0     VDD  28 │─── +5V
       Button 17 ───│ 2  GPB1     GPB7 27 │─── LED 19
       Button 18 ───│ 3  GPB2     GPB6 26 │─── LED 18
       Button 19 ───│ 4  GPB3     GPB5 25 │─── LED 17
          LED 16 ───│ 5  GPB4     GPB4 24 │─── LED 16
          NC ───────│ 6  GPB5     GPB3 23 │─── NC
          NC ───────│ 7  GPB6     GPB2 22 │─── NC
          NC ───────│ 8  GPB7     GPB1 21 │─── NC
           +5V ─────│ 9  VDD      GPB0 20 │─── NC
          GND ─────│10  VSS      INTA 19 │─── NC
          GND ─────│11  NC       INTB 18 │─── +5V (Reset)
      I2C SCL ─────│12  SCL      GPA7 17 │─── NC
      I2C SDA ─────│13  SDA      GPA6 16 │─── NC
          +5V ─────│14  A0       GPA5 15 │─── NC
          NC ───────│15  GPA0     GPA4 14 │─── NC
          NC ───────│16  GPA1     GPA3 13 │─── NC
          NC ───────│17  GPA2     GPA2 12 │─── NC
          NC ───────│18  GPA3     GPA1 11 │─── NC
          NC ───────│19  GPA4     GPA0 10 │─── NC
                    └─────────────────────┘

🔀 CD74HC4067 Multiplexer Layout

                      CD74HC4067 Multiplexer
                   ┌─────────────────────────────┐
     Analog 0 ─────│ 1  C0               VCC  24 │───── +5V
     Analog 1 ─────│ 2  C1               C15  23 │───── (Erweiterung)
     Analog 2 ─────│ 3  C2               C14  22 │───── (Erweiterung)
     Analog 3 ─────│ 4  C3               C13  21 │───── (Erweiterung)
     Analog 4 ─────│ 5  C4               C12  20 │───── Analog 11 (Slider 4)
     Analog 5 ─────│ 6  C5               C11  19 │───── Analog 10 (Slider 3)
     Analog 6 ─────│ 7  C6               C10  18 │───── Analog 9 (Slider 2)
     Analog 7 ─────│ 8  C7               C9   17 │───── Analog 8 (Slider 1)
              ─────│ 9  C8               C8   16 │─────
 Arduino A0 ───────│10  SIG              C7   15 │───── 
Arduino Pin 4 ─────│11  S0               C6   14 │───── Arduino Pin 6 (S2)
          GND ─────│12  GND              C5   13 │───── Arduino Pin 7 (S3)
Arduino Pin 5 ─────│13  S1               C4   12 │─────
          GND ─────│14  EN               C3   11 │─────
                   └─────────────────────────────┘

🎛️ Regler-Anschlüsse (Potis & Slider)

Typische Potentiometer/Slider-Verdrahtung

Poti/Slider                 Multiplexer
     
     VCC ──── Pin 1 (links)
                             
     Signal ── Pin 2 (mitte) ──── Kanal Cx
                             
     GND ──── Pin 3 (rechts)

Kanal-Zuordnung

Kanal    Komponente       MIDI-CC    Funktion
────────────────────────────────────────────
 C0  ──  Poti 1       ──   CC1   ──  Volume Ch1
 C1  ──  Poti 2       ──   CC2   ──  Volume Ch2  
 C2  ──  Poti 3       ──   CC3   ──  Volume Ch3
 C3  ──  Poti 4       ──   CC4   ──  Volume Ch4
 C4  ──  Poti 5       ──   CC5   ──  Filter 1
 C5  ──  Poti 6       ──   CC6   ──  Filter 2
 C6  ──  Poti 7       ──   CC7   ──  Filter 3
 C7  ──  Poti 8       ──   CC8   ──  Filter 4
 C8  ──  Slider 1     ──   CC9   ──  Master Vol
 C9  ──  Slider 2     ──   CC10  ──  Crossfader
 C10 ──  Slider 3     ──   CC11  ──  Send FX 1
 C11 ──  Slider 4     ──   CC12  ──  Send FX 2

Stromversorgung & Signale

Power Distribution

USB +5V ──┬── Arduino VCC
          ├── MCP23017 #1 VDD
          ├── MCP23017 #2 VDD
          ├── CD74HC4067 VCC
          ├── Potentiometer VCC (alle)
          └── LED-Vorwiderstände

USB GND ──┬── Arduino GND
          ├── MCP23017 #1 VSS
          ├── MCP23017 #2 VSS
          ├── CD74HC4067 GND
          ├── Potentiometer GND (alle)
          ├── Button-Switches (alle)
          └── LED-Kathoden (alle)

Signal-Integrität

  • I2C Pull-Ups: 4.7kΩ zwischen SDA/SCL und +5V
  • Button-Debouncing: Software-basiert (50ms)
  • Analog-Filtering: Schwellenwert-basiert (±4 LSB)
  • LED-Strombegrenzung: 220-470Ω Vorwiderstände

📏 Layout-Empfehlungen

PCB/Breadboard-Layout

    [Arduino Pro Micro]
           │
           │ I2C Bus (kurz halten!)
           │
    ┌──────┴──────┐
    │             │
[MCP23017 #1] [MCP23017 #2]
    │             │
    │             │
[16 Buttons]  [4 Buttons]
[16 LEDs]     [4 LEDs]

    [CD74HC4067]
         │
    [12 Analog]
    [Controls]

Kabel-Längen

  • I2C-Bus: < 30cm (kurze Verbindungen)
  • Analog-Signale: < 50cm (gegen Rauschen)
  • Digital-Signale: < 1m (unkritisch)
  • Power: Stern-Topologie vom Arduino aus

Dieser detaillierte Verdrahtungsplan zeigt dir genau, wie alle Komponenten miteinander verbunden werden müssen. Die ASCII-Diagramme geben dir eine klare visuelle Referenz für den Aufbau deines MIDI-Controllers! 🎵