Самодельная MIDI система для баяна или гармони

Больше
6 года 4 мес. назад - 6 года 4 мес. назад #43059 от Дмитрий
я имел ввиду с питанием все нормально, ток на 5-7ма падает когда L мигает,
ардуино впаяна в плату и другой пока нету .... щас только если дорожки перерезать чтобы отсоединить датчики
на rst ровно напряжение питания 5,07 вольт, может и правда что то с ардуино, пока не сбросил еепром некоторые ноты звучали тише , после нажатия PS сразу мигал L и tx, сейчас включаеш PS нет мигания обоих светодиодов пока не потянеш мех,
и теперь его можно включать и выключать
пытался записать видео но ничего не видно
Последнее редактирование: 6 года 4 мес. назад пользователем Дмитрий.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 4 мес. назад - 6 года 4 мес. назад #43060 от Александр
В режиме отладки не происходит вычисление громкости и отправка её в MIDI, а также убрана отправка всех MIDI команд.
Есть подозрение на эту строку, см.ниже.

В прошивке строку:
int volume = (((long int)(md_data.md_channel_volume[channel]) * press_out_value / PRESS_MAX_VALUE));
замените на строку:
int volume = (((long int)(64 * press_out_value / PRESS_MAX_VALUE));

А ещё, в прошивке нет проверки правильности конфигурации (данных в регистре) и если EEPROM глючит, то возможны недопустимые значения в конфигурации. Например, громкость канала более чем 127.
Нужно будет добавить проверку достоверности и проверку версии.
Последнее редактирование: 6 года 4 мес. назад пользователем Александр. Причина: Потому что мысль

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 4 мес. назад - 6 года 4 мес. назад #43061 от Дмитрий
C:\Users\1\Desktop\Midi_Bayan\Midi_Bayan.ino: In function 'void loop()':

Midi_Bayan:369: error: expected ')' before ';' token

int volume = (((long int)(64 * press_out_value / PRESS_MAX_VALUE));

exit status 1
expected ')' before ';' token
перезалил видео
Последнее редактирование: 6 года 4 мес. назад пользователем Дмитрий.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 4 мес. назад #43062 от Александр
Одну скобку пропустил:
int volume = (((long int)(64) * press_out_value / PRESS_MAX_VALUE));

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 4 мес. назад #43063 от Дмитрий
все также моргает L

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 года 4 мес. назад #43064 от Александр
Теперь попробуйте разные варианты отправки команды:
if ((md_data.md_pressure == 1) && (md_pressure_lock == 0)) // Если датчик включен и не заблокирован кнопкой "Режим"
Command3(0xB0 | channel, 0x07,64);

if ((md_data.md_pressure == 1) && (md_pressure_lock == 0)) // Если датчик включен и не заблокирован кнопкой "Режим"
Command3(0xB0 | 0, 0x07,volume);

//if ((md_data.md_pressure == 1) && (md_pressure_lock == 0)) // Если датчик включен и не заблокирован кнопкой "Режим"
// Command3(0xB0 | channel, 0x07,volume);

На какой-нибудь перестал L моргать?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.273 секунд
Работает на Kunena форум