Füge detaillierte Verdrahtungspläne für den USB-MIDI-Controller hinzu, einschließlich Pinbelegung, I2C-Bus-Verbindungen und Layout für analoge Regler und Tasten.

This commit is contained in:
2025-07-19 15:50:43 +02:00
parent e64048e99b
commit bab88c532f
2 changed files with 417 additions and 0 deletions

217
PINOUT.md Normal file
View File

@@ -0,0 +1,217 @@
# 🔌 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! 🎵

200
WIRING.md Normal file
View File

@@ -0,0 +1,200 @@
# 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