Как использовать ШИМ с DRV8870?
Я использую Arduino nano и не могу работать с микросхемой DRV8870 в режиме ШИМ.
Когда я использую analogWrite(_pin, duty_cycle);
, двигатель издает странные звуки.
Я думал, что это из-за частоты ШИМ, поэтому я попытался изменить ее с помощью
TCCR1B = TCCR1B & B11111000 | B00000011;
но не получилось.
Компания Texas Instruments написала в своем pdf-файле следующее: "При использовании PWM лучше всего работает переключение между движением и торможением. Например, чтобы запустить двигатель вперед с 50 % от максимального числа оборотов в минуту, IN1 = 1 и IN2 = 0 в течение периода движения, а IN1 = 1 и IN2 = 1 в течение другого периода».
drv8870_pdf
@KD Technology, 👍2
Обсуждение1 ответ
analogWrite(_pin, duty_cycle) будет правильно работать только с выводами, поддерживающими ШИМ. Старые платы Arduino с ATmega8 поддерживают только функцию AnalogWrite() на контактах 9, 10 и 11. Плата Arduino Due поддерживает функцию AnalogWrite() на контактах со 2 по 13, а также на контактах DAC0 и DAC1. В отличие от контактов PWM, DAC0 и DAC1 являются цифро-аналоговыми преобразователями и действуют как настоящие аналоговые выходы. Чтобы найти свой, перейдите по следующей ссылке: https://www.arduino.cc/reference/en/language/functions/analog -io/analogwrite/
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как устранить шум от вентилятора 12 В с ШИМ-управлением на низкой скорости
- Как управлять 6 шаговыми двигателями с помощью Arduino?
- Не могу контролировать скорость двигателей постоянного тока с помощью analogWrite()
- Как Arduino Uno может поддерживать до 12 сервоприводов, если у него всего 6 цифровых выводов ШИМ?
- L298N издает звуковые сигналы и дает сбой при получении определенных значений AnalogWrite
- Ускорение двигателя постоянного тока с помощью ШИМ
- Контакты ШИМ серводвигателей, Arduino Uno
Вы уверены, что меняете правильный таймер? Только контакты 9 и 10 генерируются Timer1., @KIIV