Dann habe ich das Beispiel Sketch der Midi Lib: Midi In auf den Arduino (Uno R3 328p) geladen und Midi Out von meinem Midi Device gesendet.
Jetzt sollte die LED von RX blinken, wenn ein Signal eingeht.
Es passiert aber Nichts.
Der Arduino hängt per USB am PC, kann es sein dass, der RX dann praktisch dem 16U2 "zuhört" und den Eingang am Mainboard ignoriert? (Vermute ja nicht, aber will es ausschliesen)
Kann es sein das man diesen abstellt indem man den Arduino ohne USB mit Strom versorgt? Oder was passiert wenn man ihm nur Strom, also keine Daten per USB Netzteil gibt?
Ich habe die Schaltung auch schon zum 2ten mal gebaut, also habe schon eine Weile rumprobiert. Ich lade aber auch gerne mal Bilder hoch ob ich etwas übersehe oder verdreht habe.
Sonstige Lösungsansätze sind gerne Willkommen.
Danke schonmal.
Die RX/TX LED sind beim UNO R3 mit Atemga 16U2 nicht auf die TX/RX Leitungen geschaltet sondern vom Controller separat angesteuert.
Auch bei einem NANO mit FT232 sind LED und Datenleitung getrennt.
Bei einem UNO mit CH340 sind die LED an den TX/RX Leitungen.
Da beim Arduino UNO R3 in der TX/RX Leitung je ein 1kOhm Widerstand geschaltet ist kann man die RX/TX Leitungen auch als Serielle Schnittstelle von außen betreiben. Die Externe Schaltung muß nur niederohmig genug sein um die Spannungen auf die notwendigen Pegel zu treiben. Bei der Schaltung in Post 1 ist das der Fall.
Achso. Das erklärt warum die RX LED inaktiv ist, dann sollte aber die "L" leuchten.
#include <MIDI.h>
// Simple tutorial on how to receive and send MIDI messages.
// Here, when receiving any message on channel 4, the Arduino
// will blink a led and play back a note for 1 second.
MIDI_CREATE_DEFAULT_INSTANCE();
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
MIDI.begin(4); // Launch MIDI and listen to channel 4
}
void loop()
{
if (MIDI.read()) // If we have received a message
{
digitalWrite(LED_BUILTIN, HIGH);
MIDI.sendNoteOn(42, 127, 1); // Send a Note (pitch 42, velo 127 on channel 1)
delay(1000); // Wait for a second
MIDI.sendNoteOff(42, 0, 1); // Stop the note
digitalWrite(LED_BUILTIN, LOW);
}
}
Wenn schon, dann solletest du danach auch ein (kleines) delay machen, sonst blinkt die LED nicht und bleibt in Dauer-HIGH solange MIDI.read() etwas liefert.
Z.B statt 1000ms 800ms HIGH + 200ms LOW
Ja das ist das Beispiel aus der Midi Lib und wichtig ist das es überhaupt leuchtet.
Ich habe jetzt eine Loop Programm gemacht bei dem TX Midi Out sendet und die Optoschaltung funktioniert. Also die L LED leuchtet bei Empfang und lustigerweise aber auch die TX die wieder ausspuckt wenn empfangen wurde. Die soll doch entkoppelt sein und nur vom 16U2 aus Saft kriegen, wie geht das denn?