FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Воскресенье, 04.12.2016, 04:56
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » ШИИМ 10 БИТ пользовательский блока на Си (10 Битный ШИМ с настраиваемым периодом)
ШИИМ 10 БИТ пользовательский блока на Си
Слимпер
Дата: Четверг, 07.07.2016, 21:07 | Сообщение # 1
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Offline
Попалась мне на глаза интересная библиотека TimerOne, одна из функций возможность генерировать 10 Битный ШИМ с настраиваемым периодом.

Решил сделать блок:

Название :Блок ШИМ 10Бит

Разрядностью 10Бит (0-1023)
Период можно настраивать

Получилось два блока.
Описание:


PWM_CONST_(CODE)

PWM_REG_(CODE)


Возможно использовать для следующих пинов
Arduino Uno                  9, 10
ArduinoLeonardo          9, 10, 11
ArduinoMega                11, 12, 13


!!!!Возможны конфликты с блоками где используется Timer1 (из известных мне Rremote, Servo)

Еще два блока полный аналог предыдущих, только используется Timer3 (есть только в ArduinoLeonardo ArduinoMega)

PWM_CONST_T3
PWM_REG_T3-CODE


Возможно использовать для следующих пинов
Arduino Leonardo     5
Arduino Mega            2, 3, 5


Если у кого есть осциллограф (и не лень),  проверти правильность работы и минимальной возможный период.

Обновление

Добавил второй вариант с заданием Периода через вход блока, т.е можно регулировать Период ШИМ по ходу выполнения программы.

Актуальные версии блоков находятся ШИМ 10 БИТ с изменяемым периодом 

Все вопросы и предложения в эту тему.


Сообщение отредактировал Слимпер - Вторник, 12.07.2016, 04:38
 
DerAlex Дата: Пятница, 08.07.2016, 04:02 | Сообщение # 2
Полковник
Группа: Проверенные
Сообщений: 332
Награды: 3
Репутация: 7
Статус: Offline
Выхода можно любые использовать?

аврора
 
Слимпер Дата: Пятница, 08.07.2016, 04:34 | Сообщение # 3
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Offline
Цитата DerAlex ()
Выхода можно любые использовать?
 
Цитата Слимпер ()
Возможно использовать для следующих пинов
Arduino Uno                  9, 10
Arduino Leonardo          9, 10, 11
Arduino Mega                11, 12, 13

Есть еще одна Библиотека TimerThree она задействует Timer3 ( есть Leonardo, Mega )
Если сделать блок на этой библиотеки то можно будет задействовать ШИМ на пинах:

Arduino Leonardo     5
Arduino Mega          2, 3, 5


Сообщение отредактировал Слимпер - Пятница, 08.07.2016, 04:45
 
DerAlex Дата: Пятница, 08.07.2016, 05:26 | Сообщение # 4
Полковник
Группа: Проверенные
Сообщений: 332
Награды: 3
Репутация: 7
Статус: Offline
Период ШИМ общий для всех каналов ?Или можно для каждого канала отдельно выставить ?

Добавлено (08.07.2016, 05:26)
---------------------------------------------
Нужный блок , прямо скажем. А то вот как пришлось извращаться. Посмотрите тему =ПАДЕНИЕ ЧАСТОТЫ ГЕНЕРАТОРА=


аврора
 
Слимпер Дата: Пятница, 08.07.2016, 06:24 | Сообщение # 5
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Offline
Цитата DerAlex ()
Период ШИМ общий для всех каналов ?Или можно для каждого канала отдельно выставить ?
В описании библиотек прямо не сказано, но эксперименты показали что общий.

Но если сделать еще один блок на базе TimerThree  Timer3 ( есть Leonardo, Mega ) то можно будет сделать два независимых периода.

Цитата DerAlex ()
Нужный блок , прямо скажем. А то вот как пришлось извращаться. Посмотрите тему =ПАДЕНИЕ ЧАСТОТЫ ГЕНЕРАТОРА=

Кстати сейчас Период ШИМ настраивается один раз в параметрах  блока.
Надо будет вечером попробовать сделать вариант с с настройкой через вход.
 
Слимпер Дата: Пятница, 08.07.2016, 18:56 | Сообщение # 6
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Offline
Цитата Слимпер ()
Кстати сейчас Период ШИМ настраивается один раз в параметрах  блока.Надо будет вечером попробовать сделать вариант с с настройкой через вход.

Сделал Вариант с заданием Периода по входу. То есть можно изменять во время работы программы.  Смотреть в первом сообщении

П.С. У кого есть возможность просьба протестировать правильность работы.


Сообщение отредактировал Слимпер - Суббота, 09.07.2016, 16:41
 
CraCk Дата: Пятница, 08.07.2016, 19:04 | Сообщение # 7
Майор
Группа: Проверенные
Сообщений: 180
Награды: 0
Репутация: 1
Статус: Offline
Нубский вопрос. А зачем ето нужно?
 
Слимпер Дата: Пятница, 08.07.2016, 19:33 | Сообщение # 8
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Offline
Цитата CraCk ()
Нубский вопрос. А зачем ето нужно?
Если вы про измени периода шим. Ну выше уже упоминали тему ПАДЕНИЕ ЧАСТОТЫ ГЕНЕРАТОРА, в ней как раз обсуждали подобную задачу.

А вообще стандартная частота ШИМ Arduino  500ГЦ, что далеко не всегда подходит.
Сам пробовал раньше регулировать обороты Компьютерного вентилятора 12В, регулировалось но вентилятор при этом пел (издавал противные звуки), по этому отказался от этой затеи.
А вот сейчас можно будет поднять частоту скажем до 5кГц, и думаю писка не будет.
 
DerAlex Дата: Пятница, 08.07.2016, 19:47 | Сообщение # 9
Полковник
Группа: Проверенные
Сообщений: 332
Награды: 3
Репутация: 7
Статус: Offline
В теме ПАДЕНИЕ ЧАСТОТЫ ГЕНЕРАТОРА обсуждалась работа генератора в приборе проверки форсунок для автомобиля.Там как раз требовался генератор с независимой перестройкой частоты и скважности.

Добавлено (08.07.2016, 19:47)
---------------------------------------------
Без блока предложенного Слимпер, пришлось городить огород.
Использовалось два блока, блок генератора ,скоростной счетчик в режиме задержки и еще внешний триггер RS.Сейчас это возможно без излишних выкрутасов.


аврора

Сообщение отредактировал DerAlex - Пятница, 08.07.2016, 19:48
 
CraCk Дата: Пятница, 08.07.2016, 21:02 | Сообщение # 10
Майор
Группа: Проверенные
Сообщений: 180
Награды: 0
Репутация: 1
Статус: Offline
СПС за ответы. А уменьшать можно?
 
Слимпер Дата: Пятница, 08.07.2016, 21:13 | Сообщение # 11
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Offline
Цитата CraCk ()
СПС за ответы. А уменьшать можно?
Период ШИМ можно регулировать в пределах от 100мкс (может и меньше) до 8.38с
Если я не путаю с переводами, Частота получается от 10кГц до 0.12Гц


Сообщение отредактировал Слимпер - Пятница, 08.07.2016, 21:14
 
DerAlex Дата: Воскресенье, 10.07.2016, 07:20 | Сообщение # 12
Полковник
Группа: Проверенные
Сообщений: 332
Награды: 3
Репутация: 7
Статус: Offline

Программа генератора с использованием блока ШИМ.
Прикрепления: 5516497.png(49Kb)


аврора
 
DerAlex Дата: Воскресенье, 10.07.2016, 07:29 | Сообщение # 13
Полковник
Группа: Проверенные
Сообщений: 332
Награды: 3
Репутация: 7
Статус: Offline
Прикрепления: 4614169.jpg(214Kb)


аврора
 
Слимпер Дата: Воскресенье, 10.07.2016, 09:17 | Сообщение # 14
Генерал-лейтенант
Группа: Проверенные
Сообщений: 661
Награды: 25
Репутация: 23
Статус: Offline
Цитата DerAlex ()
Программа генератора с использованием блока ШИМ.
А осциллографом не проверяли, ШИМ правильный получатся? А то у меня нечем проверить .


Сообщение отредактировал Слимпер - Воскресенье, 10.07.2016, 19:23
 
DerAlex Дата: Понедельник, 11.07.2016, 07:29 | Сообщение # 15
Полковник
Группа: Проверенные
Сообщений: 332
Награды: 3
Репутация: 7
Статус: Offline
Пока не проверял.

Добавлено (11.07.2016, 07:29)
---------------------------------------------
На слух заметно, что только в крайнем положении движка переменного резистора СКВАЖНОСТЬ наиболее сильное изменение звучания.Вечером подключу осциллограф . погляжу в чем дело.


аврора
 
Форум » Основной » Спросить у знатоков » ШИИМ 10 БИТ пользовательский блока на Си (10 Битный ШИМ с настраиваемым периодом)
Страница 1 из 212»
Поиск:

FLProg © 2016
Яндекс.Метрика