![]() |
![]() |
|
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]()
. . . В этой статье описывается самая простая, но достаточно эффективная схема управления светодиодной подсветкой а-ля респиратион люмиер). Как работает наглядно можно посмотреть на видео ниже.
. . . Схема состоит из мелкоконтроллера и обвязки: ![]() ![]() . . . Элементы схемы: R1, R2 = 3k6 - понижающие питание микроконтроллера резистора. R4 = 10k - подтяжка пина сброса. R5 = 10k - ограничитель тока транзистора. R6 = 10k - на всякий случай, можно не ставить)). С1 = 1mkF - сглаживающая ёмкость. С2 = 100n - задержка сброса. VD1 = стабилитрон 5 вольт. VT1 = транзистор BC807. . . . Транзистор имеет ограничение 0,5 ампер, это приблизительно 1 метр светодиодной ленты. Если планируется использовать много светодиодов, транзистор можно поставить бОльшей мощности. . . . Качнуть архив с прошивкой микроконтроллера можно здесь . . . Обсуждение проекта ниже. |
#2
|
|||
|
|||
![]()
если задача только в том, чтобы мигать светодиодами, то спокойно можно использовать таймер и вручную мигать.
Простейший расчет: 16МГц тактовая частота процессора/100Гц допустимая частота мигания светодиодов/256уверен, что 256 градаций яркости - больше, чем надо = максимум 625 тактов на прерывание. Для обслуживания 6 каналов - больше чем достаточно. В прерывании достали переменную по каждому каналу, сравнили с счетчиком, если равно - перекинули соответствующую ногу. Примерно как написано ниже не проверял на синтаксис, но суть понятна, думаю. #define PWM_Count 6 uint8_t volatile Counter; uint8_t volatile PWM_DataPWM_Count; uint8_t volatile PWM_PinsPWM_Count; void Timervoid uint8_t i; if Counter==0 for i=0;i<PWM_Count;i PinPWM_Pinsi=1; for i=0;i<PWM_Count;i if PWM_Datai==i PinPWM_Pinsi=0; UPD. Интересно было бы если бы подсветка горела именно там, где надо, а не вся сторона. Но чую, что это реализовать будет уже сильно посложнее. Хотя почти уверен, что ардуинки хватит и для этого. Повесить динамическую индикацию, можно еще сдвиговые регистры использовать... |
#3
|
|||
|
|||
![]()
Задача этого проекта решена самым оптимальным способом в рамках поставленной задачи. Микроконтроллер выбран не просто так, если использовать аналоговый таймер, количество элементов в схеме и сложность настройки увеличится.
Ну а если хотите сделать из мотоцикла новогоднюю йолку), то 6 каналов маловато. ИМХО. Есть у меня такой проект, в сети ещё не показывал. 64 канала (в одном канале 4 цвета, ШИМ 60 кГц), программируемые сценарии, графический интерфейс, акустический и аналоговые входы. Видео работы сделать не успел, сейчас мот разобран, готовлю к новому сезону. |
![]() |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|