Как отлаживать ввод MIDI?
Я пытаюсь получать 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);
}
}
@flawr, 👍1
Обсуждение2 ответа
Лучший ответ:
Решение:
На изображении указано, что штекеры находятся на стороне пайки. Так что замена контактов 2/3 помогает
На самом деле я должен был уточнить: изображение представляет собой вид сверху вниз со стороны компонентов - моя ошибка заключалась в том, что я неправильно истолковал диаграмму :), @flawr
Я думаю, проблема в скорости передачи данных вашего USB, сообщение с USB идет медленно, и это уничтожает MIDI-сообщение (тайминг 31250 бод). Установите немного более высокую последовательную скорость USB. И сделать буфер между ними.
Это всего лишь попытка, не знаю, решит ли это проблему.
Привет, девбоб, проблема уже решена и подтверждена., @Rohit Gupta
- Как правильно получить MIDI с Arduino, с 6n138?
- Может ли Arduino Leonardo одновременно использовать USB-порт и последовательные контакты RX TX?
- Mac не обнаруживает последовательный порт для Леонардо
- Проблема с загрузкой скетча в Леонардо
- Arduino Leonardo на Win 8.1 COM-порт пропал
- Последовательные порты на Arduino UNO/Leonardo инициализируются по-разному?
- Что происходит с последовательным выводом, когда никто не слушает?
- Как определить, какая скорость передачи данных установлена для виртуального COM-порта?
Я не вижу какой-либо очевидной проблемы, но я использовал аналогичную схему (правда, давно), и я использовал 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