На Motor shield пищат двигатели. Ardino CAR
- Войдите на сайт для отправки комментариев
Вс, 28/07/2013 - 04:37
Пищат двигатели на Motor shield, когда пытаюсь изменить скорость ниже 255, и чем ниже тем громче писк. На скорости в 255 все нормально... Может проблемы в частоте ШИМ? Как её изменит используя библиотеку AFMotor? Пробовал вот так, нет изменений:
AF_DCMotor motor1(1, MOTOR12_64KHZ); AF_DCMotor motor2(2, MOTOR12_64KHZ); AF_DCMotor motor3(3, MOTOR34_64KHZ); AF_DCMotor motor4(4, MOTOR34_64KHZ);
фото машинки. Управляю через bluetooth с планшета. Arduino UNO R3, питание напрямую к Motor shield с бп 12в 1000мА.
Собственно, именно так она и меняется, странно что вы слышите писк.
А попробуйте снизить частоту, бует ли слышна разница?
1, 8, 64 пробовал, то же самое писк на 200 слышен и до 0 усиливается.
Вы вопроса не поняли - тональность писка меняется при изменении частоты ШИМа?
Да, на 1 - писк, на 64 как гудок. Но громкость почти одинаковая.
Там у вас в машинке, вероятно, дроссели стоят. Они и пищат. Подайте на моторы постоянное напряжение - писк пройдет
Пищат двигатели на Motor shield, когда пытаюсь изменить скорость ниже 255, и чем ниже тем громче писк. На скорости в 255 все нормально... Может проблемы в частоте ШИМ? Как её изменит используя библиотеку AFMotor? Пробовал вот так, нет изменений:
фото машинки. Управляю через bluetooth с планшета. Arduino UNO R3, питание напрямую к Motor shield с бп 12в 1000мА.
255 - это постоянно 5В на выходе. Потому и не пищит.
Там у вас в машинке, вероятно, дроссели стоят. Они и пищат.
Подайте на моторы постоянное напряжение - писк пройдет
Пищат двигатели на Motor shield, когда пытаюсь изменить скорость ниже 255, и чем ниже тем громче писк. На скорости в 255 все нормально... Может проблемы в частоте ШИМ? Как её изменит используя библиотеку AFMotor? Пробовал вот так, нет изменений:
фото машинки. Управляю через bluetooth с планшета. Arduino UNO R3, питание напрямую к Motor shield с бп 12в 1000мА.
255 - это постоянно 5В на выходе. Потому и не пищит.
Думаю, ТС больше интересует почему пищит, а не почему не пищит.
Да, на 1 - писк, на 64 как гудок. Но громкость почти одинаковая.
Писк идет независимо от кода
когда устанавливаю например motor.setSpeed(100) и при движении в любом направлении идет этот писк.
Вот например такой для теста делал:
Почему пищит я выше написал
Вы предположили ЧТО может пищать, а вот ПОЧЕМУ слышен писк двигателей при расчетной частоте ШИМа 64кГц вопрос остается открытым. Можно конечно предположить что ТС сверх-человек и может слышать звуки частотой свыше 20кГц и(или) посоветовать ему просто заткнуть уши и не париться.
Ну для начала - зачем вы на выводах, на которых присутствует хардовый UART, пользуете программный UART ?
SoftwareSerial.h не использует таймеров, но зато она запрещает при вызове available() все прерывания - в этом может и быть причина писка.
Так что попробуйте пример кода выше ,а дальше будем думать...
1) Подло переписывать свои ранние коменты. Это меняет смысл диалога.
2) Чего ты так накинулся? Некуда пар выпустить?
1) Что я переписал от чего поменялся смысл диалога? Хотите верну назад ? Обычно поправляю ошибки и могу что-нить добавить, перефразировать, но смысла не меняю.
2) Да не накинулся совсем, просто не ясен ваш подход - "уводите тему в непонятное русло",а я пытаюсь помочь решить проблему ТС.
Специально для вас пишу дополнение к посту выше отдельным постом.
...проблему ТС, вместо того что бы советовать не пользоваться ШИМом.
Молодец.
Я, конечно, библиотеку эту первый раз в жизни вижу. Тонкостей ее не знаю, но тем не менее. Отвечая на колкий постфактум дописанный максимом комментарий про сверчеловека - даже если шим там и 64кГц - ок. Ухом его не услышишь, конечно. Потому, вероятнее всего, что попимо модуляции шимом, все это дело еще модулиется звуковой частотой. И, чтобы это подтвердить - надо вырубить все(передачу данных на компорт и т.д.) и, тупо запустить мотор на постоянное вращение в одну сторону с какой-то постоянной скажностью (не 255).
А, касательно кода, что приведен автором поста и подправлен максимом. Если смотреть бегло и, если в библиотеке нет каких-то особых фич, то он как-минимум, странен.
1) не понятно, зачем после приема данных в компорт используется функция заднего хода. Чтобы застопорить мотор таким образом, или что?
2) Мотор - инерционный прибор.Он мгновенно не срабатывает, а у вас в коде ни одного делая нет.
Интересно было бы узнать, к каким ногам ардуины подключаются моторы
Я бы воткнул в конце лупа секундный делай, так как, скорее всего, дело в приеме данных. И да, странно, что он инициализирован программно.
Вот это уже по делу, только уж не секундную, а например 100 миллисекундную. Тогда и с софтовым UARTом будет нормально работать.
Вот, написал такой код, для проверки, с комметариями, писк не пропал...
А если сериал порт закомментить?
Значит все таки писк стал менне слышен и более высокий. А конденсаторы, которые параллельно двигателям у вас стоят, убирать пробовали?
Кстати, если не ошибаюсь, на шилде конденсаторы уже предусмотрены. Надо по схеме проверить