Arduino Fußtaster bauen für XR18

Mathias1234
Mathias1234
Registrierter Benutzer
Zuletzt hier
18.09.25
Registriert
28.07.14
Beiträge
810
Kekse
1.048
Ort
Meitingen
Vielleicht kann mir hier jemand etwas helfen. Da ich handwerklich durchaus etwas Begabung habe, aber Programmieren usw. für mich irgendwie böhmische Dörfer sind brauch ich da Hilfe.

Ich würde gerne per Midi Controller 2 Mutegruppen am Behringer Xr18 schalten und wenn's nicht zu kompliziert wird, per Dreh-Encoder die Gesamtlautstärke regeln.
Im Idealfall geht das ganze per Akku und mit einer Midi oder USB Strippe zum Behringer.

Löten usw kann ich. Am PC komme ich auch zurecht. Aber mit Programmierung komm ich irgendwie nicht so wirklich klar, bei mir schaltet da nach ner Zeit irgendwie immer das Hirn ab.

Ich hab mir schon Tutorials und ähnliches angesehen, aber für meinen Anwendungsfall hab ich noch nichts konkretes gefunden. Meistens sind die Projekte viel umfangreicher als ich es benötige.

Schön wäre es, wenn mir hier jemand Schritt für Schritt weiterhelfen könnte und man am Schluss zu einem Ergebnis kommt, das vielleicht auch noch Anderen weiterhilft.
 
Zuletzt bearbeitet:
Arduino geht dafür. Hast du schon einen bestimmten dafür im Auge? Oder einen Lieblingslieferanten, bei dem du das Elektronikzeug kaufst?

USB geht nicht zum Steuern des XR18. Das ist nur für das Audio Interface und nicht zur Steuerung.

MIDI geht aber und wenn du nur Befehle absetzen willst, dann mit wenig Hardware Aufwand.
MidiOut.png

Welcher Pin das ist, hängt vom Arduino Modell ab. Die Ausgabe geht an die serielle Schnittstelle, die auf 31250 Bit/s bzw. 31,250 kBaud gestellt werden muss.
 
Zuletzt bearbeitet:
OK, ich denke mit nem Arduino Nano oder Uno sollte das gehen. Zumindest ist das bis jetzt das, was ich im Netz bei den Projekten immer gesehen habe. Je kleiner umso besser für mich. Was würdet ihr mir raten?
Dann steht der Nano schonmal auf der Einkaufsliste, falls der das kann. (Bin echt ein Noob/Unwissender was das angeht.)

-Arduino Nano,
-Midi Out Buchse
- 2 x 220 Ohm Widerstände
- Akku? bzw. Stromquelle?
- Welche Taster? Poti?

Wo ich das kaufen soll? Reichelt? eBay? Amazon? Ist mir an sich egal, außer ihr sagt irgendeiner ist besser in dem Bereich.

Danke schonmal.
 
Da ich Amazon verweigere, könnte ich z.B. die Auswahl bei Reichelt angeben:
Der hier ist super billig, aber ich bin nicht sicher, ob da alles dokumentiert ist und kompatibel zum Original: https://www.reichelt.de/de/de/shop/produkt/arduino_kompatibles_nano_board_atmega328pb_usb-c-372020
Das wäre der originale : https://www.reichelt.de/de/de/shop/produkt/arduino_nano_v3_atmega_328_mini-usb-142943
Von den Anschlüssen sieht der so aus:
introduction-to-arduino-nano-13-1.png.webp

Von den Anschlüssen interessieren dich die analogen Eingänge : A0 .. A7 und die digitalen Pins D0 ... D13, wobei der D1 der TXD Pin für die Schaltung oben ist, also schon für feste Aufgabe vergeben. D0 wird vermutlich bei Verwendung der seriellen Schntittstelle auch nicht für Taster verfügbar sein.
Desweiteren 5V und die Mass GND.
Taster kann man an freie Digitalpins anschließen und nach GND schalten. Da man intern einen Pullup aktivieren kann (kommt noch bei der Programmierung) braucht man keine externen Widerstände. Man muss nur wissen, dass man eine 1 liest, wenn der Taster offen ist und eine 0, wenn er geschlossen ist.
An die analogen Eingänge kann man die Schleifer von Potentiometern anschließen, deren eines Ende kommt dann an +5V , das andere an GND. Der interne Analog - Digitalwandler liefert Werte zwischen 0 und 1023. Die kann man also duch 8 teilen (oder besser um 3 Bits nach rechts schieben) und hat dann einen Wertebereich von 0 .. 127 für MIDI passend.

Mit Potentiometern (oder Schiebereglern) geht das einfach. Wenn du einen digitalen Drehknopf (RPG) willst, geht das auch, aber ist etwas aufwändiger bei der Programmierung. Auch dafür hätte ich dir Code. Mache ich beruflich, aber nicht mit Arduino, sondern direkt mit den Atmel Prozessoren (ok inzwischen gehören die Microchip)

Willst du Fußtaster oder ein "Tischgerät", oder ein Tischgerät mit Anschlussmöglichkeit für Fußtaster? Das ginge auch parallel. Einfach ein Klinkenbuchse, Massse an GND und die Spitze zum Taster Eingang.

Ansonsten ein schon vorgestelltes Projekt eines Boardmitglieds: https://www.musiker-board.de/threads/diy-mute-pedal-fuer-das-x32.599641/post-7297178

Und wenn du dem Link in dem Beitrag folgst, dann gibt es ein Arduino Beispielprogramm, das alle nötigen Befehle enthält (ok, keine analoger Eingang, aber das kann ich liefern)

Stromversorgung durch handelsübliche Power Bank.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 1 Benutzer
Spitze, und ich such mir nen Wolf... Ich les mir das alles mal durch. Vielen herzlichen Dank

Geb dann weiteres Feedback wie es weitergeht.
 
So, stehe gerade noch etwas aufm Schlauch. Was brauche ich denn für Schalter/Taster, wenn das alles in ein Gehäuse soll ( Oder einfach das ???
Lead Foot FS-2

).Würde dann mit dem Midikabel zum Pult. Über die Fusstaster/schalter soll noch das Poti (welches bräuchte ich da?) eingebaut werden. Tut mir leid für die vielleicht dummen Fragen. Sonst hab ich beim Reichelt schon alles im Warenkorb.
 
Beim Poti würde ich ein 10 kOhm linear nehmen. Z.B. https://www.reichelt.de/de/de/shop/produkt/drehpotentiometer_10_kohm_6_mm_linear-238719
Passenden Knopf nicht vergessen

Zu beachten ist, die Variante mit dem Poti sendet genau den Wert, der mit dem Poti eingestellt wird, ohne Rücksicht auf eventuell andere Clients, die da mitmischen.
ICh würde da acuh nur einen Wert senden, senn sich der Poti-Wert geändert hat (also +/- 1 Zähler wäre zu empfindlich) sonst hat kein anderer Client eine Chance, da du ja immer weider deinen Wert sendest und damit die anderen überschreibst.

Taster:
einfach rot https://www.reichelt.de/de/de/shop/produkt/miniatur-drucktaster_0_5a-24vac_1x_ein_rt-45166
einfach schwarz https://www.reichelt.de/de/de/shop/produkt/miniatur-drucktaster_0_5a-24vac_1x_ein_sw-45167
Besser in rot https://www.reichelt.de/de/de/shop/produkt/drucktaster_0_1a-24vac_1x_ein_11_9_1mm_rt-110863
Mit Anzeige LED rot (braucht noch Vorwiderstand 470 Ohm ... 1 kOhm vor LED vom Prozessor Pin angesteuert) https://www.reichelt.de/de/de/shop/produkt/drucktaster_0_2a-60vdc_1x_ein_beleuchtet_rt-44433
Ansosnten bräuchtest du eine eigene LED pro Taster (mit ebensolchen Vorwiderständen)

Fußtaster: https://www.reichelt.de/de/de/shop/produkt/drucktaster_2_pol_250_v_ac_1_a-227749

Wenn du einen Drehimpulsgeber wolltest, wäre das so etwas: https://www.reichelt.de/de/de/shop/produkt/drehimpulsegeber_15_impulse_30_rastungen_vertikal-315144
Der würde ermöglichen, die Lautstärke ab dem momentan eingestellten Wert zu verändern ABER dazu müsstest du auch noch die Signale vom XR18 empfangen und auswerten, dir den Wert merken und ab der Drehung dann den neuen Wert (also den letzten empfangenen nehmen und Inkrement dazuzählen) senden. Aber keinesfalls sofort den empfangenen Wert senden, sonst macht du dir eine MIDI Schleife.
Dafür braucht es dann ein 2. MIDI Kabel und zum Empfang einen Optokoppler. Und du musst dir aus dem ganzen Wust, den das XR18 sendet, nur diejenigen rauspicken, die du auch ändern willst.
Die Schaltung hast du offensichtlich schon gefunden mit deinem "Gefällt mir" im anderen Thread.


Das BCR2000 arbeitet im S4 Mode genau so. Du bekommst alle geänderten Parameter per MIDI und damit ist das Gerät im Bilde. Wenn also jemand mit dem Tablet Mute einschaltet wird das angezeigt und dann ist dein nächster Druck Mute aus. Oder ein geänderter Analogwert wird auf dem LED Kranz des Geräts angezeigt und jede Drehung macht von dort aus weiter.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 1 Benutzer
Das Lead Foot ist ein Schalter, kein Taster. Könnte man auch verwenden, ist aber etwas umständlicher.
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Ich will dich nicht vom Bauen abhalten, aber falls du was kaufen willst könntest du evtl. auch das hier nehmen und dann ein Poti oder Expression Pedal an die Erweiterungsbuchsen anschließen um ein Volume zu haben. das lässt sich auch via USB-Powerbank mit Strom versorgen:

Hotone Ampero Control





falls es mehr ums bauen geht, dann natürlich viel spaß, da hatte ich mal folgendes gefunden, aber aufgrund des niedrigen Preises der AMpero leiste dann für die Amperocontrol entschieden:

View: https://youtu.be/yELnZdEJqS0?si=b8lHDBC35q0VgqH5
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Mir geht's eigentlich primär ums Bauen und mal schauen ob ich das hinbekomme. Das Resultat bekommt dann meine Schwägerin für ihre Blasmusikcombo, als kleine Überraschung. Die tut sich halt immer schwer für solche Kleinigkeiten am Tablet immer zwischen Mobile Sheets und Mixingstation hin und her zu switchen. Mal kurz die Channels stummschalten oder die Summe muten ist da halt in dieser Form deutlich komfortabler. Gesamtlautstärke anpassen wäre noch das I Tüpfelchen.

Daher möcht ich das auch günstig halten. Spielerei halt.
 
  • Gefällt mir
Reaktionen: 1 Benutzer
na dann viel spaß dabei, evtl. hilft der Selbstbau link, wobei es evtl. auch nochmal passendere Projekte gibt, youtube und Github ist da ja immer ne recht gute anlaufstelle.

expressionanschluss kann man ja prinzipell recht einfach mittels poti oder Fader realisieren und Mainfader lässt sich laut MIDI Implementationstabelle via CC auch steuern.

Mutegruppen hab ich allerdings nicht gefunden, sondern nur die einzelnen Channels, d.H. da müsste man alle benötigen kanäle auf einen Schalter legen.
 
Mutegruppen schalten geht laut meiner Nachforschungen. Muss mir die Liste mal raussuchen bei Gelegenheit.

Edith hier im Anhang



Das wäre jetzt mal meine Einkaufsliste.


Fehlt noch etwas? Hab jetzt die Tastschalter 3x für alle Fälle. LEDs kommen seperat.
Muss mal schauen ob ich evtl noch ne kleine Powerbank mit einbaue um vom externen USB Kabel wegzukommen.
Wenn das mal alles auf dem Tisch liegt, schau ich mal ob ich das so zusammen bekomme. Code wird dann spannend :eek2:.
 

Anhänge

  • Screenshot_2025-09-17-11-14-58-162_com.android.chrome-edit.jpg
    Screenshot_2025-09-17-11-14-58-162_com.android.chrome-edit.jpg
    342,1 KB · Aufrufe: 2
Zuletzt bearbeitet:
Mutegruppen geht mit dem XR18

Bei der DIN Buchse würde ich dir die mit dem Metallkorpus raten, für die du nur ein rundes Loch brauchst. Die 5-Polige ist gerade nicht lieferbar aber die 7-polige wäre auch geeignet. Die hat nur 2 Pins mehr, 5-poliger Stecker passt auch (und wenn du ein Spezialkabel bastelst und einen 7-Poligen Stecker verwendest, kannst du z.B. über die 2 nicht normgerechten Pins die Stromversorgung mitgeben.

Der billige Arduino Klon könnte etwa andere Eigenschaften haben. Aber kann man ja mal probieren.
 
  • Interessant
Reaktionen: 1 Benutzer
Ohne dich jetzt zu sehr einspannen zu wollen, kannst du mir da noch nen Schaltplan bzw einfach ein Schema machen wo was anzuschließen ist? (Übersichtshalber) Wenns zu viel Arbeit ist, dann komm ich auch so klar denke ich. Kann auch versuchen, dass ich das irgendwie aufmale 🤣, bevor ich jetzt da alles mögliche zusammenlöte und es nicht passt.
 
Siehe Beitrag #4, da habe ich die Anschlüsse schon beschrieben. Davon hängt nachher ab, wie das Programm nachher aussieht.
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Stimmt vor lauter Euphorie schon wieder vergessen. 👍
 
Du benötigst 2 Bibliotheken für den Arduino:

- MIDI.h (von FortySevenEffects – installieren über den Bibliotheksmanager)
- SoftwareSerial.h (Standard)

C++:
#include <SoftwareSerial.h>
#include <MIDI.h>

// Pin-Definitionen
const int button1Pin = 2;
const int button2Pin = 3;
const int potPin = A0;
const int midiTxPin = 6;

// MIDI-Konstanten
const byte midiChannel = 1;
const byte note1 = 60; // C4
const byte note2 = 62; // D4
const byte ccNumber = 1; // Modulation Wheel (z. B.)

// MIDI via SoftwareSerial
SoftwareSerial midiSerial(-1, midiTxPin); // RX, TX
MIDI_CREATE_INSTANCE(SoftwareSerial, midiSerial, MIDI_OUT);

// Entprell-Zeit
const unsigned long debounceDelay = 50; // in Millisekunden

// Taster 1
bool button1StableState = HIGH;
bool button1LastRead = HIGH;
unsigned long button1LastChangeTime = 0;

// Taster 2
bool button2StableState = HIGH;
bool button2LastRead = HIGH;
unsigned long button2LastChangeTime = 0;

// Poti
int lastCCValue = -1;

void setup() {
  pinMode(button1Pin, INPUT_PULLUP);
  pinMode(button2Pin, INPUT_PULLUP);
  
  midiSerial.begin(31250); // MIDI-Standard Baudrate
  MIDI_OUT.begin(MIDI_CHANNEL_OMNI);
}

void loop() {
  unsigned long currentTime = millis();

  // === Taster 1 mit Timer-Entprellung ===
  bool currentRead1 = digitalRead(button1Pin);
  if (currentRead1 != button1LastRead) {
    button1LastChangeTime = currentTime;
    button1LastRead = currentRead1;
  }
  if ((currentTime - button1LastChangeTime) > debounceDelay && currentRead1 != button1StableState) {
    button1StableState = currentRead1;
    if (button1StableState == LOW) {
      MIDI_OUT.sendNoteOn(note1, 127, midiChannel);
    } else {
      MIDI_OUT.sendNoteOff(note1, 0, midiChannel);
    }
  }

  // === Taster 2 mit Timer-Entprellung ===
  bool currentRead2 = digitalRead(button2Pin);
  if (currentRead2 != button2LastRead) {
    button2LastChangeTime = currentTime;
    button2LastRead = currentRead2;
  }
  if ((currentTime - button2LastChangeTime) > debounceDelay && currentRead2 != button2StableState) {
    button2StableState = currentRead2;
    if (button2StableState == LOW) {
      MIDI_OUT.sendNoteOn(note2, 127, midiChannel);
    } else {
      MIDI_OUT.sendNoteOff(note2, 0, midiChannel);
    }
  }

  // === Potentiometer lesen und MIDI CC senden ===
  int potValue = analogRead(potPin);
  int ccValue = map(potValue, 0, 1023, 0, 127);

  if (ccValue != lastCCValue) {
    MIDI_OUT.sendControlChange(ccNumber, ccValue, midiChannel);
    lastCCValue = ccValue;
  }
}

Pins noch anpassen und elektrisch so beschalten wie von chris_kah vorgeschlagen. Dann den Midi-Chanel und die Notenwerte nach deinen Vorgaben anpassen.
 
Grund: Code angepasst
Zuletzt bearbeitet:
Das geht sogar mit Bordmitteln straight forward ohne spezielle Bibliothek:

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);

// Setup serial port for MIDI communication
Serial.begin(31250);

}
Da sind sogar schon Beispiele für die Initialisierung von Eingab und AusgabePins dabei.

Und serielle Ausgabe:
Serial.write(0xb0 + channel); // Control Change + Kanalnummer im Bereich 0.. 15, Wenn 1..16 dann: (0xaf + channel);
Serial.write(command);
Serial.write(value);
Man braucht also nichtmal eine spezielle MIDI Bibliothek.
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Hab jetzt mal die Sachen bestellt, werde jetzt erstmal alles soweit aufbauen und dann können wir das mit dem Code mal angehen. Bis jetzt sind das leider immer noch böhmische Dörfer für mich, zum größten Teil zumindest.
 

Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben