Ардуино: 50 Гц на цифровых выходах

photomuza

✩✩✩✩✩✩✩
16 Сен 2021
6
0
Такой скетч (удалил всё лишнее):
C++:
 #include <Servo.h>

Servo FwdPin_A;
Servo BwdPin_A;
Servo FwdPin_B;
Servo BwdPin_B;

void setup() {
  FwdPin_A.attach(2); //подключения к пинам драйвера L298N (здесь 50 Гц)
  BwdPin_A.attach(3); //подключения к пинам драйвера L298N (здесь 50 Гц)
  FwdPin_B.attach(4); //подключения к пинам драйвера L298N (здесь 50 Гц)
  BwdPin_B.attach(5); //подключения к пинам драйвера L298N (здесь 50 Гц)
 
}
void loop() {
  NRF24L01();
}
void NRF24L01() {
}
Вот видео -
Что не так с кодом, откуда 50 Гц?
Сразу чтоб не было вопросов: ардуину менял, это не наводки (см. видео). Такое только если в коде есть #include <Servo.h>.
 

photomuza

✩✩✩✩✩✩✩
16 Сен 2021
6
0
PWM это ШИМ? Вопрос был про возникновение 50 Гц.
 

photomuza

✩✩✩✩✩✩✩
16 Сен 2021
6
0
Ожидал, что в таком коде не будет никакого звука. У меня два скетча (TX и RX) - всё работает, но с этим шумом 50 Гц. Короче, я могу заменить attach на что-то другое или надо заменять/удалять Servo.h и полностью весь код перелопачивать?
 

kDn

★★★★★★★
18 Ноя 2019
4,310
2,390

@photomuza, я не совсем понимаю чего вы добиваетесь... Управление драйвером импульсное, почитайте даташит на драйвер и описание библиотеки.
 

Геннадий П

★★✩✩✩✩✩
14 Апр 2021
401
85
41
@photomuza, Не понятно что происходит на видео. Да, если подключить пищалку к ШИМ-сигналу, то она будет издавать звук с частотой ШИМ.
 
Изменено:

kDn

★★★★★★★
18 Ноя 2019
4,310
2,390
@photomuza, на всякий случай еще раз, то что уже было сказано, но на другом языке:

https://arduino.stackexchange.com/questions/31810/servo-attach-paralyzing-one-motor-on-l298n написал(а):
The Servo library uses Timer 1 to create the servo control signal. That means it can run the servo on any pin or combination of pins, and at the 50Hz speed that a servo likes best.

However, pins 9 and 10 also use Timer 1 to create the PWM signal.

It can't do both.

As soon as you start using the Servo library you lose PWM on pins 9 and 10.

So what can you do about it? Simply move your pins around to different pins. You can't use 9 and 10 for PWM, but you can use them for the servo. So put your servo on pin 10 and your right motor speed control on pin 3 and all should be happy.
Так что наличие 50Гц вполне нормально и ожидаемо.