Модуль WTV020-SD-16P возможно ли использовать в одном скече с гироскопом ( без delay)
- Войдите на сайт для отправки комментариев
Вс, 10/04/2016 - 18:12
Доброго времени суток!
Ребят запустил скеч: Nano + гиро MPU6050+2кнопки+2реле(одна из реле выключается через 30сек). И решил озвучить нажатие кнопок, и некоторые моменты измерений гироскопа. Но возникло пару вопросов по модулю. Так как сколько я видел примеров, рабочих скечей с этим модулем, все они используют delay так как вродебы нужно время на воспроизведение файла AD4.
В общем вопрос токой, возможно ли использовать модуль WTV020-SD-16P без паразитной функцыи delay и не вредя нормальной работе гироскопа???
В отдельном скече WTV020-SD-16P я запускал, AD4 читает с этим проблем нет. Но этот скеч использует delay.
Ну неужели весь скеч обязательно должен остановится, чтобы модуль воспроизвел один трек?? Треки у меня разные от 4 секунд до 1минуты...
Пробовал запускать треки без delay в скече с MPU6050 но скеч сразу зависает.
А каким образом это возможно реализовать?
Вместо delay() используют millis(). Как бы на живом скетче проще показать, чем излагать теорию.
Нужно чтобы после нажатия кнопки1 (BUTTON_01.click_down) воспроизвёлся один раз трек wtv020sd16p.playVoice(0); длинной 3сек.
А по нажатию кнопки2 (BUTTON_02.click_down) трек wtv020sd16p.playVoice(1); тоже 3 сек.
Замените wtv020sd16p.PlayVoice();
на wtv020sd16p.asyncPlayVoice();
Попробовал прописал прямо в кнопку wtv020sd16p.asyncPlayVoice(0); не воспроизвелось...
Потом попробовал здесь (здесь почемуто воспроизвелось но только после закрытия порта монитора:) т.е получается после остановки ардуидны)
т.е. если пишешь
то воспроизводит, а если
то зависает...
А если меняешь на wtv020sd16p.asincPlayVoice(0); то молчит, так?
Лог последовательного порта можешь показать?
т.е. если пишешь
то воспроизводит, а если
то зависает...
А если меняешь на wtv020sd16p.asincPlayVoice(0); то молчит, так?
Когда использую delay вся программа начинает тупить со скоростью указанной в delay. И нечего не воспроизводится.
А когда убераю delay, то со страшной скоростью мегает светодиод TX на дуине и не воспроизводит. Но скеч вроде не зависает и показания гироскопа в норме. Но уже после закрытия порта и сталобыть отключения ардуины воспроизводится этот трек ))
Такое ощущение как будто зависает не сама дуня а модуль wtv020sd16p.
И в динамиках, чётко в такт лампочке TX на дуне слышны пощелкивания....
Как будтобы пытается запустить трек со скоростью 20 раз в секунду, и сама себе мешает этим...
Есть подозрение, что эта функция вызывается многократно. Попробуй так, объяви boolean ena=true; добавь в loop
Будет проигрываться один раз?
А нет ли конфликта?
Ребят, пробовал добавить вторую функцию на одну кнопку, но почемуто срабатывает две функцый почти одновременно. Хоть держи кнопку хоть нажимай. В чём может быть причина?
Функция1
Функцыя 2