Код для медленного включения и выключения светодиода

Обсуждаются темы не относящиеся к журналу "РАДИО"

Код для медленного включения и выключения светодиода

Сообщение wlf » 20 фев 2010, 17:34

Есть микроконтроллер PIC12F629 и три светодиода, нужно написать программу так, чтобы светодиоды медленно загорались и медленно гасли. Ну или для одного светодиода. У самого не получается, знаний недостаточно! Как будет выглядеть этот кусочек кода???
wlf
 
Сообщения: 20
Зарегистрирован: 26 апр 2009, 19:04

Re: Код для медленного включения и выключения светодиода

Сообщение БОРИС » 13 мар 2010, 23:52

широтно- импульсная модуляция на частоте >60Гц
а каким способом - на собственное усмотрение
с PICами не пробовал, а для AT89C51 вполне можно сделать до 24 независимых каналов ;)
БОРИС
БОРИС
 
Сообщения: 13
Зарегистрирован: 24 авг 2008, 07:37
Откуда: УКРАИНА, ДОНЕЦК

Re: Код для медленного включения и выключения светодиода

Сообщение Арвар » 25 мар 2010, 20:35

если проблема не решена могу более подробно ответить с точки зрения языка С.
Арвар
 
Сообщения: 21
Зарегистрирован: 11 ноя 2008, 11:34

Re: Код для медленного включения и выключения светодиода

Сообщение wlf » 28 мар 2010, 14:37

Проблема не решена, буду вам очень признателен если поможете мне! Пробовал писать программу на ассемблере для PIC12F629, не получается чего-то. Светодиод то горит постоянно, то в пол-накала, то вспыхивает еле заметно!
wlf
 
Сообщения: 20
Зарегистрирован: 26 апр 2009, 19:04

Re: Код для медленного включения и выключения светодиода

Сообщение uyra » 28 мар 2010, 16:02

можно использовать RC цепь к выходу подключить ключ
uyra
 
Сообщения: 8
Зарегистрирован: 28 мар 2010, 07:23

Re: Код для медленного включения и выключения светодиода

Сообщение Арвар » 28 мар 2010, 18:29

писал я как-то нечто подобное на С. А МК был ат89с2051.

все регистры, которые я создал у меня были ансигнед чар (0-255)
в void main (void) я настраивал таймер и запускал его
вся прога писалась в подпрограмме прерываний, которая вызывалась по переполнению таймера.
if (count >= 64)
{
count=0; //
otrezok++;
if (otrezok >= 5)
{
otrezok=0;
if (bright<=64)
{
bright++;
}
}
}
count++;
if (count<= bright)
{
вкл. светодиод
}
else выкл. светодиод;
return

count с bright - всю яркость (от "не горит"-тускло горит-горит но не совсем ярко-ярко горит) на уровни разбивает? т.е. каунт как бы создаёт период всего сигнала (0 и 1), а брайт, который постепенно увеличивается в зависимости от otrezok - время тока когда надо гореть и так со временем брайт будет равен каунту, т.е. светодиод будет гореть всегда

вот как-то так,
otrezok - регистр, который задаёт время, в течение которого горит один уровень яркости - от 0 до 64
Арвар
 
Сообщения: 21
Зарегистрирован: 11 ноя 2008, 11:34

Re: Код для медленного включения и выключения светодиода

Сообщение Vladnik » 29 мар 2010, 14:30

wlf писал(а):Проблема не решена, буду вам очень признателен если поможете мне! Пробовал писать программу на ассемблере для PIC12F629, не получается чего-то. Светодиод то горит постоянно, то в пол-накала, то вспыхивает еле заметно!

Здравствуйте!
Вся фишка в том что светодиод очень не линейный прибор!
То есть если вы будете линейно увеличивать ширину импульса на выходе МК, на например 0 до 255
то получите следующее - вначале, прибор будет нехотя разгоратся - от 0 до где то 50, потом резко
вспыхнет полностью (100-150), а потом будет светить полностью, и дальнейшее увеличение ширины
импульса мало повлияет на его яркость. Причем чем больше прибор способен отдать в канделах,
тем хуже. Поэтому и характеристику управления надо "расстягивать" со второй четверти и до последней. Недаром многие фирмы выпускают специальные контроллеры для этого дела.
Vladnik
 
Сообщения: 22
Зарегистрирован: 26 янв 2010, 18:08

Re: Код для медленного включения и выключения светодиода

Сообщение Арвар » 29 мар 2010, 22:11

Vladnik - согласен. у меня например, гашение светодиода было не совсем плавным. в начале медленного гашения он и не думал гаситься, и только чуть позже осознав что нужно это делать, он спешит медленно погаситься=)
Арвар
 
Сообщения: 21
Зарегистрирован: 11 ноя 2008, 11:34

Re: Код для медленного включения и выключения светодиода

Сообщение БОРИС » 03 апр 2010, 10:34

У меня никаких проблем с регулировкой от полного затухания до полной яркости - все решается с помощью программы.
В программе кстати предусматриваются и динамическое или статическое изменение яркости по любому из каналов при работе в режиме формирования рисунка по заранее заданной программе(заказчика) ;)
БОРИС
БОРИС
 
Сообщения: 13
Зарегистрирован: 24 авг 2008, 07:37
Откуда: УКРАИНА, ДОНЕЦК


Вернуться в Всё остальное

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

cron