ардуино мега про мини
- Войдите на сайт для отправки комментариев
Добрый день.
Использую Arduino pro mega
использую команду переменную long motor; tone(9,motor);
когда нажимаю кнопочку , то мотор почему то начинает крутится довольно быстро, хотя начальное значение переменной 0. что бы убедится что проблема в этом участке кода - я попробовал закоментировать команду tone и теперь при нажатии мотор уже не вращается. так же в сериал я вывел значение переменной motor И оно равно 0. в тоже время я залил в скетч просто tone(9,0); и мотор не крутился. если скорость текущая становится отличная от 0. например 1 то скорость вращения соотвествует 1 герцу. как вновь нажимаю эту кнопку- меньше- на экранчике у меня 1 меняется на 0 но при этом двигатель вращается где то в районе 40кгц (осцилографа нет)
как вообще к этой задаче подступится не пойму. посоветуйте как выявить ошибку. может быть скажите какую библиотеку которая генерирует на 9 пине?
//МЕНЬШЕ Скорость мотора протяжки if (btn_up_tim+100<millis()) { if (digitalRead(24)==1) { btn_up_tim=millis(); k1=0.01; if (Eflag==1) {Mspeed=Eoutput; tone(9,Mspeed); Eoutput=0; Eflag=0; disp_refresh=true;} else {Mspeed=Mspeed-k2;} if (Mspeed<0) {Mspeed=0;} tft.setTextColor(TFT_YELLOW); tft.fillRect(57,0,60,15,TFT_GREY); tft.setCursor(57, 0); tft.setTextSize(2); tft.setTextColor(TFT_YELLOW); tft.println(String(Mspeed)); tone(9,Mspeed); k2=k2*1.2; if (k2>1500) {k2=1500;} } else {k2=1;} } //МЕНЬШЕ Скорость мотора протяжки
У tone не бывает 1 Герц. Что-то Вы напутали.
http://arduino.ru/Reference/Tone
а какая бывает? я о таком не слышал. я ему на вход подавал Mspeed=1; и вроде бы он крутил мотор. там микрошаг большой я не обратил внимание. видимое вращение уже при значении 100. посоветуйте пожалуйста с чего начать искать ошибку. может быть есть сторонняя библиотека - аналогичная tone, я эти таймеры не могу осилить сам никак. я пока даже не знаю что проверить еще что бы исправить эту ошибку.
tone не выдаёт частоту меньше 31Гц. А уж что и куда Вы там подавали - это Вам виднее.
Понятно, я не знал об этом. спасибо. значит мне однозначно нужно найти другую библиотеку. или пример. раньше я использовал пример который нашел на этом форуме.но был для нано только
для таких маленьких частот никакие библиотеки не нужны.
Например, чтобы получить частоту 1 Гц, все что нужно - подать на пин HIGH на полсекунды а потом LOW на столько же
я бы хотел от 0 до 45000 генерировать. когда я использовал tone то при превышении этого числа у меня ардуина мега начинала *подвисать* - как то медленно обновлять цифры на дисплее. может у кого есть наработка на любом другом пине с таймером
или помогите разобраться в использовании этой библиотеке https://alexgyver.ru/gyvertimers/
я не понимаю какая связь между каналами и 9 и 10 пинами в таблицами. почему 2 пина. и куда подключать провод в итоге. один земял а второй к какому пину - 9 или 10. не понятно
или помогите разобраться в использовании этой библиотеке https://alexgyver.ru/gyvertimers/
С нею Вам здесь помогут - https://community.alexgyver.ru/