Выбор частоты ШИМ во время работы программы.

Пользовательские блоки ПИД регуляторов, прочих регуляторов и для работы с ШИМ выходами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
RedSky
Сержант
Сообщения: 249
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 41
Откуда: Днепропетровск

Выбор частоты ШИМ во время работы программы.

#1

Сообщение RedSky » 08.01.2018{, 00:36}

Блоки позволяют изменять частоту ШИМ на лету, на выводах 3,9,10,11 из любого места программы. Делались для плат на Atmega328, но должны заработать и на
168-х.
На вход блока необходимо подавать число от 1 до 7(5), которое определяет делитель для тактования таймера. Описание соответствия значения на входе и реальной частоты внутри блоков.
Добавил блок для 10-и разрядного ШИМа на первом таймере. Блок не использует сторонние библиотеки.
Вложения
ШИМ.ubl
(33.7 КБ) 16 скачиваний
Последний раз редактировалось RedSky 29.08.2019{, 16:02}, всего редактировалось 1 раз.

gregori08091971
Рядовой
Сообщения: 22
Зарегистрирован: 17.12.2018{, 11:21}
Репутация: 0
Имя: gregori

Выбор частоты ШИМ во время работы программы.

#2

Сообщение gregori08091971 » 27.12.2018{, 13:26}

На 2560 не пробовали

Аватара пользователя
RedSky
Сержант
Сообщения: 249
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 41
Откуда: Днепропетровск

Выбор частоты ШИМ во время работы программы.

#3

Сообщение RedSky » 27.12.2018{, 17:33}

Для 2560 не задумывал изначально. Возможно заработают нормально или на других пинах, или не заработает совсем. Нужно читать описание регистров управления таймереми.

vadulkin
Рядовой
Сообщения: 7
Зарегистрирован: 31.05.2018{, 11:42}
Репутация: 0
Имя: Вадим

Выбор частоты ШИМ во время работы программы.

#4

Сообщение vadulkin » 10.01.2019{, 17:40}

У меня кулеры работают через пид регулятор, по шим. Надо ли менять в пид настройках что то (выходное значение. у мя от 0-255)? Раньше при стандартной частоте обороты регулировались. Мешал только писк. А сейчас до 99% мощности стоят и при 100 кулера срываются. А мосфет до 99% мощности тускло горит.

Аватара пользователя
RedSky
Сержант
Сообщения: 249
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 41
Откуда: Днепропетровск

Выбор частоты ШИМ во время работы программы.

#5

Сообщение RedSky » 10.01.2019{, 22:42}

Проект бы увидеть. Похоже как таймер занят под другую задачу.
А когда мосфет даже тускло горит - непорядок :D

vadulkin
Рядовой
Сообщения: 7
Зарегистрирован: 31.05.2018{, 11:42}
Репутация: 0
Имя: Вадим

Выбор частоты ШИМ во время работы программы.

#6

Сообщение vadulkin » 13.01.2019{, 19:00}

Ок, выкладываю
Не мосфет горит, а индикация на мосфете))
Вложения
1.flp
(747.63 КБ) 27 скачиваний

Аватара пользователя
RedSky
Сержант
Сообщения: 249
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 41
Откуда: Днепропетровск

Выбор частоты ШИМ во время работы программы.

#7

Сообщение RedSky » 13.01.2019{, 19:12}

Сегодня уже не успеваю глянуть. Попробуйте пока просто светодиод с резистором на 150-300 ом вместо мосфета подключить - будет ли регулирование?
А что за мосфет такой, можно ссылку?

vadulkin
Рядовой
Сообщения: 7
Зарегистрирован: 31.05.2018{, 11:42}
Репутация: 0
Имя: Вадим

Выбор частоты ШИМ во время работы программы.

#8

Сообщение vadulkin » 14.01.2019{, 15:16}

Вообщем он регулирует. Но по светодиоду, который я назвал индикатором)) и который вы посоветовали установить есть там, и видно, что блок не правильно регулирует. Если взять работу от 0% до 99% мощности работы, соответствует шим сигналу от 0 до примерно ±50. Которого не хватает раскрутить кулер. Яркость Светодиода меняется от совсем тусклого до более менее тусклого )) но как наступает 100% ( т.е. шим 255)то кулер срывается и светодиод горит на всю, как бы минуя с 51 по 254
Пробовал переделать шим на 1023, та же херь
Отправлено спустя 2 минуты 31 секунду:
Мосфет. Я так его называю)

Отправлено спустя 7 минут 24 секунды:
Может этот случай? Цитата:

На практике выяснилось, что при установке разрядности ШИМ больше 8ми функция analogWrite() не правильно отрабатывает код 255. Например, при 10ти разрядном ШИМ все коды от 0 до 1023 работают правильно, за исключением кода 255. Вместо того чтобы сформировать сигнал скважностью 1/4, вырабатывается статический сигнал уровня лог. 1. Что соответствует коду 1023.

Не знаю причину такого эффекта. Возможно функция analogWrite() воспринимает 255 как максимальное значение и расширяет его на весь диапазон. Может она принимает 255 как знаковое число.
Вложения
-1689716793-737068731.jpg

Аватара пользователя
RedSky
Сержант
Сообщения: 249
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 41
Откуда: Днепропетровск

Выбор частоты ШИМ во время работы программы.

#9

Сообщение RedSky » 14.01.2019{, 22:54}

vadulkin, вы не внимательно отнеслись к таймерам. Генератор секунд использует первый таймер - как и шим на 9 и 10. Автор блока предупреждает о проблемах с шим. Тут или отказаться от генератора на прерываниях, или использовать обычный генератор из стандартных блоков - точности думаю хватит.
Немного исправил ваш проект. Не был уверен, что подавать на вход шим переменную float хорошая идея, ну и ещё пару замечаний.
Вложения
2.flp
(754.57 КБ) 21 скачивание
ошибка.png

vadulkin
Рядовой
Сообщения: 7
Зарегистрирован: 31.05.2018{, 11:42}
Репутация: 0
Имя: Вадим

Выбор частоты ШИМ во время работы программы.

#10

Сообщение vadulkin » 15.01.2019{, 16:15}

Вроде работает, но одна хрень, нужная, перестает работать. Я так понимаю что скоростной счетчик тоже конфликтует? Через него у мя работает диммер на 220
Вложения
Безымянный.jpg

Аватара пользователя
RedSky
Сержант
Сообщения: 249
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 41
Откуда: Днепропетровск

Выбор частоты ШИМ во время работы программы.

#11

Сообщение RedSky » 15.01.2019{, 17:43}

Скорее всего ваш диммер тоже использует таймер, надо смотреть код в IDE. Как вариант перенос шим на другие выводы.

Аватара пользователя
RedSky
Сержант
Сообщения: 249
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 41
Откуда: Днепропетровск

Выбор частоты ШИМ во время работы программы.

#12

Сообщение RedSky » 29.08.2019{, 16:03}

Добавил блок для 10-и разрядного ШИМа на первом таймере. Блок не использует сторонние библиотеки.

Ответить

Вернуться в «ПИД регуляторы (PID), блоки для ШИМ»

Кто сейчас на конференции

Сейчас этот форум просматривают: krom23 и 1 гость