Как отлаживать ввод MIDI?

serial arduino-leonardo midi opto-isolator

Я пытаюсь получать MIDI-сообщения на Leonardo. Для этого я использовал схему на схеме ниже (только верхняя половина для приема). Единственное, что я сделал по-другому, это использовал диод 1N4148 вместо 1N914. Я подключил GND к контакту GND, 5V к контакту 5V и RX к контакту 0 (RX), и я использовал приведенный ниже код, чтобы увидеть, получаю ли я какие-либо входы или нет. (Сначала я начал с более сложного кода, но кажется, что это минимальное, что я могу сделать.) В качестве источника MIDI я использовал Arturia Keystep, который я тестировал на миди-инструменте.

К сожалению, мне ничего не ответили, и я не знаю почему. Что я пробовал до сих пор:

  • Проверил полярность всех кабелей и убедился, что все соединения работают.
  • Заменил Леонардо на другой (оба новые).
  • Заменил оптопару 6N137 на другую (оба новые).
  • Добавлен над оператором if Serial.println("test");, что затем привело к бесконечной лавине "test" в последовательном мониторе - просто чтобы проверить, работает ли USB-соединение.
  • Измерил напряжение между контактами 5 и 8 на 6N137, оно действительно равно 5 В.

Есть ли что-то очевидное, что я делаю неправильно? Что вы предлагаете сделать, чтобы попытаться найти ошибку? (У меня есть мультиметр, но нет осциллографа.)

(из этого ответа).

byte b;
void setup() {
  Serial.begin(9600); //USB
  Serial1.begin(31250); //MIDI
}

void loop() {
  if (Serial1.available() > 0) {
    b = Serial1.read();
    Serial.println((int)b);
  }
}

, 👍1

Обсуждение

Я не вижу какой-либо очевидной проблемы, но я использовал аналогичную схему (правда, давно), и я использовал 1N4148 без каких-либо проблем. У меня были некоторые проблемы с использованием правильного номинала резистора, и я добавил ферритовые кольца, но это не должно быть проблемой на макетной плате., @Michel Keijzers

Вы проверили вилки по схеме => сторона пайки., @Codebreaker007

возможно вы перепутали контакты 4 и 5, @jsotola

@ Codebreaker007 Я думаю, что это все, кажется, я поменял местами контакты 2 и 3 на своей плате. Постараюсь это исправить и отчитаюсь - было бы неплохо, если бы это было так просто :), @flawr

https://learn.sparkfun.com/tutorials/midi-tutorial/all, @jsotola

@MichelKeijzers Спасибо, это приятно знать. Что это за ферритовые шарики, о которых вы упомянули?, @flawr

Они предназначены для снижения электромагнитных помех, в нормальных условиях не должны быть проблемой., @Michel Keijzers

@ Codebreaker007 Именно так, я поменял местами контакты 2 и 3, спасибо, что упомянули об этом - со всеми предупреждениями об этом я думал, что не совершу такой глупой ошибки :), @flawr


2 ответа


Лучший ответ:

2

Решение:
На изображении указано, что штекеры находятся на стороне пайки. Так что замена контактов 2/3 помогает

,

На самом деле я должен был уточнить: изображение представляет собой вид сверху вниз со стороны компонентов - моя ошибка заключалась в том, что я неправильно истолковал диаграмму :), @flawr


0

Я думаю, проблема в скорости передачи данных вашего USB, сообщение с USB идет медленно, и это уничтожает MIDI-сообщение (тайминг 31250 бод). Установите немного более высокую последовательную скорость USB. И сделать буфер между ними.

Это всего лишь попытка, не знаю, решит ли это проблему.

,

Привет, девбоб, проблема уже решена и подтверждена., @Rohit Gupta