Ардуино: 50 Гц на цифровых выходах
- Войдите на сайт для отправки комментариев
Втр, 21/09/2021 - 19:16
Код (лишнее удалил):
01 | #include <Servo.h> |
02 |
03 | Servo FwdPin_A; |
04 | Servo BwdPin_A; |
05 | Servo FwdPin_B; |
06 | Servo BwdPin_B; |
07 |
08 | void setup () { |
09 | FwdPin_A.attach(2); //подключения к пинам драйвера L298N (здесь 50 Гц) |
10 | BwdPin_A.attach(3); //подключения к пинам драйвера L298N (здесь 50 Гц) |
11 | FwdPin_B.attach(4); //подключения к пинам драйвера L298N (здесь 50 Гц) |
12 | BwdPin_B.attach(5); //подключения к пинам драйвера L298N (здесь 50 Гц) |
13 | |
14 | } |
15 | void loop () { |
16 | NRF24L01(); |
17 | } |
18 | void NRF24L01() { |
19 | } |
Видео - https://www.youtube.com/watch?v=pbC6X-zLaR0
Что не так с кодом, откуда 50 Гц?
Сразу чтоб не было вопросов: ардуину менял, это не наводки (см. видео). Такое только если в коде есть #include <Servo.h>.
шимить можно только по пинам ENA и ENB если ничего не путаю...
Да и библиотека тебе зачем? так напрямую всё делает, смотри код по ссылке, что я давал для тележки, там вся математика написана для твоих двух двигателей осталось радиоканал приаттачить )))
Что не так с кодом, откуда 50 Гц?
Вот отсюда, может быть?
FwdPin_A.attach(2);
Чет у меня пригорает от таких тупых вопросов. Ты то ли тролль, то ли наркоман какой-то
шимить можно только по пинам ENA и ENB если ничего не путаю...
Прошил только D5 и D6 (ENA и ENB), правильно? Шумит.
осталось радиоканал приаттачить )))
Ну, если бы я мог приаттачить... Мне просто страшно любопытно, откуда прет четкий сигнал 50 Гц? Да, я видел в других скетчах, что Servo.h не используют. Но мне так программер написал, а я подумал, что-то с питанием у меня не так и принял работу, а он там после принятия заказа больше и не появляется. Вот теперь допер. Код по ссылке тоже видел, но выковыривать нужное и приделывать к своему... Я уже пытаюсь, но пока безуспешно.
шимить можно только по пинам ENA и ENB если ничего не путаю...
Прошил только D5 и D6 (ENA и ENB), правильно? Шумит.
осталось радиоканал приаттачить )))
Ну, если бы я мог приаттачить... Мне просто страшно любопытно, откуда прет четкий сигнал 50 Гц? Да, я видел в других скетчах, что Servo.h не используют. Но мне так программер написал, а я подумал, что-то с питанием у меня не так и принял работу, а он там после принятия заказа больше и не появляется. Вот теперь допер. Код по ссылке тоже видел, но выковыривать нужное и приделывать к своему... Я уже пытаюсь, но пока безуспешно.
там всё написано, обработчики прерываний удалить, переменные получать по радиканалу и совать в первый и второй канал, в первый - ручка газа, вперёд, назад, во второй повороты, лево-право
Там у вас к L298n шесть контактов ( у него 4) - уже непонятка.
ua6em, как вам ЛС написать или мэйл, я не вижу здесь ничего.
Что не так с кодом, откуда 50 Гц?
Сразу чтоб не было вопросов: ардуину менял, это не наводки (см. видео). Такое только если в коде есть #include <Servo.h>.
смешной вы...
А в документацию заглянуть?
Период обновления сигнала в библиотеке <Servo.h> - 20мс. какой частоте это соответвует - сами посчитаете или калькулятор дать?
ТС!, вот это заход с козырей! библиотека сервоприводов управляет обычными моторами?...
А зачем так? В чём прикол?
ТС!, вот это заход с козырей! библиотека сервоприводов управляет обычными моторами?...
А зачем так? В чём прикол?
сказано же, "ему так программер написал"... видно такой попался, любит эту либу :)
Там у вас к L298n шесть контактов ( у него 4) - уже непонятка.
ua6em, как вам ЛС написать или мэйл, я не вижу здесь ничего.
ответил
ТС!, вот это заход с козырей! библиотека сервоприводов управляет обычными моторами?...
А зачем так? В чём прикол?
сказано же, "ему так программер написал"... видно такой попался, любит эту либу :)
Я не сразу понял, это заказ на управление 2 моторами кто то сделал...
Посмотрел второй ролик ТС. Вроде исполнитель сделал вариант с двумя независимыми джойстиками на каждый мотор. Но из объяснений заказчика вообще ничего не ясно.
ТС!, вот это заход с козырей! библиотека сервоприводов управляет обычными моторами?...
А зачем так? В чём прикол?
сказано же, "ему так программер написал"... видно такой попался, любит эту либу :)
Я не сразу понял, это заказ на управление 2 моторами кто то сделал...
Посмотрел второй ролик ТС. Вроде исполнитель сделал вариант с двумя независимыми джойстиками на каждый мотор. Но из объяснений заказчика вообще ничего не ясно.
на библиотеке servo.h задумку эту в принципе нельзя реализовать, она не синхронная, будут сквозняки, история волшебного дыма довольно близка, но подход оригинальный, весьма )))
PS эх, не понять нам широту и размах русской души ...
Подход вполне понятный - нагуглить быстро код дистанционного управления, и втюрить его ничего не понимающему заказчику. А что код оказался для серво - это побоку.
Подход вполне понятный - нагуглить быстро код дистанционного управления, и втюрить его ничего не понимающему заказчику. А что код оказался для серво - это побоку.
не, серву он сам воткнул, это с другого скетча видимо...кстати у Гайвера тоже уши торчали от этого скетча читабельно по Node1... и т.д.
Правильный ответ - 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."
Правильный ответ - 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."
а я вам что в #6 написал? не это же самое? :)
Зачем же так тупить...
Обычно двигатели стараются ШИМить на частотах не создающих неприятных звуковых ощущений:
01
// Делители таймеров на 490Гц
02
#ifdef PWM_490 // 490Гц CLK/64
03
constexpr
byte
prescaler0 = bit(CS00) | bit(CS01);
04
constexpr
byte
prescaler1 = bit(CS10) | bit(CS11);
05
constexpr
byte
prescaler2 = bit(CS22);
06
#endif
07
08
// Делители таймеров на 1 кГц
09
//
10
#ifdef PWM_980 // на самом деле 980Гц CLK/64 для FAST PWM
11
constexpr
byte
prescaler0 = bit(CS00) | bit(CS01);
12
constexpr
byte
prescaler1 = bit(CS10) | bit(CS11);
13
constexpr
byte
prescaler2 = bit(CS22);
14
#endif
15
16
// Делители таймеров на 4 и 8 кГц
17
//
18
#ifdef PWM_4000 // 4 кГц CLK/8
19
constexpr
byte
prescaler0 = bit(CS01);
20
constexpr
byte
prescaler1 = bit(CS11);
21
constexpr
byte
prescaler2 = bit(CS21);
22
#endif
23
24
#ifdef PWM_8000 // 8кГц (на самом деле 7812.5 Гц) CLK/8 для FAST PWM
25
constexpr
byte
prescaler0 = bit(CS01);
26
constexpr
byte
prescaler1 = bit(CS11);
27
constexpr
byte
prescaler2 = bit(CS21);
28
#endif
а я вам что в #6 написал? не это же самое? :)
Да.
photomusa, не удержался и глянул ролик на вашем канале.
https://www.youtube.com/watch?v=b-nCEyQyjFc
А вы прикольный человек :-)
Если хотите (как мне показалось) что бы ехала, посмотрите вот этот ролик, может поможет.
https://www.youtube.com/watch?v=nkqesLSXe4Q
photomusa, не удержался и глянул ролик на вашем канале.
https://www.youtube.com/watch?v=b-nCEyQyjFc
А вы прикольный человек :-)
Если хотите (как мне показалось) что бы ехала, посмотрите вот этот ролик, может поможет.
https://www.youtube.com/watch?v=nkqesLSXe4Q
это не он, а реализатор прошивки...
мы многое здесь видели, но вот использование в качестве ШИМ библиотеки Servo.h - впервые )