Страница 1 из 2

Регулировка яркости светодиодов на МК

Добавлено: Чт авг 12, 2010 20:10:30
cirimpill
Я новичок, с МК дело не имел никогда. После долгих проб и ошибок. Научился подключать МК к компу, прошивать его, стирать и т.д. Программировать я умею, только вот с МК дело не имел.
Сам учусь на программиста.

Есть у меня грандиозная идея (для меня :))) )

Сделать часы пропеллер с пультом управления. Чтобы можно было время высталять дистанционно, переключать режимы отображения, и можно было яркость менять светодиодов, так чтобы ночью не так ярко часы светили (линейка из 30 светодиодов будет)

Вот моя проблема: Насколько мне известно Яркость (тоесть напряжение на выходе) можно менять программно при помощи ШИМ

Подскажите как это сделать, ну скажем в цикле шагов так на 100 менять яркость лампы.
Чтобы она как бы плавно тухла.

Напишите пару сточек кода (просто я операторы эти AVR не совсем хорошо знаю)

Буду очень благодарен или дайте ссылку где это описано

Re: Регулировка яркости светодиодов на МК

Добавлено: Чт авг 12, 2010 20:13:17
GP1
а обучалку не пробывал читать? :wink:

Re: Регулировка яркости светодиодов на МК

Добавлено: Чт авг 12, 2010 20:18:38
cirimpill
Там все на ассемблере, я его не знаю, нужно на Си

Re: Регулировка яркости светодиодов на МК

Добавлено: Чт авг 12, 2010 20:22:14
ARV
немного не в тему: а как ШИМ проявит себя во вращающихся часах? не получится вместо регулировки яркости регулировка длины пунктирчиков?

пожалуй, для этого случая надо регулировать иначе яркость...

Re: Регулировка яркости светодиодов на МК

Добавлено: Чт авг 12, 2010 20:54:49
YS
Там все на ассемблере, я его не знаю
Значит придется изучать. Без знания ассемблера (хотя бы поверхностного, на уровне мигалки) в программирование МК лучше не соваться, даже если пишете на С или чем-то еще. Ибо при отладке он ой как полезен... Некоторые баги без него не выловить вообще. Куски кода, критичные по времени, также пишутся на ассемблере. Даже в С. И, кстати, как Вы собираетесь проектировать схемы на МК без четкого осознания того, как он работает на низком уровне? :wink:
немного не в тему: а как ШИМ проявит себя во вращающихся часах?
Беда будет - изображение в пунктирчик. ИМХО тут надо менять яркость пропуском кадров. Хотя по сути это тот же ШИМ, только синхронизированный с перемещением источников света.

Re: Регулировка яркости светодиодов на МК

Добавлено: Чт авг 12, 2010 21:43:28
Murav
YS писал(а):Значит придется изучать. Без знания ассемблера (хотя бы поверхностного, на уровне мигалки) в программирование МК лучше не соваться, даже если пишете на С или чем-то еще.
Учить ассемблер не обязательно - языка С вполне хватит. А со временем можно будет и ассемблер изучить.
ARV писал(а):немного не в тему: а как ШИМ проявит себя во вращающихся часах? не получится вместо регулировки яркости регулировка длины пунктирчиков?
Если взять высокую частоту, то пунктиров заметно не будет. Только на МК такую частоту на куче портов вытянуть не получится.
А вот включение светодиодов не на каждом обороте будет очень сильно заметно - частота вращения и так маленькая, а если ещё и включать не каждый раз, то мигание будет хорошо заметно(нужна как минимум частота обновления 24Гц).

Скорее всего регулировать яркость контроллером не удастся, так что лучше либо отказатся от этой идеи либо делать внешнюю схему, управляющую напряжением на светодиодах.

Re: Регулировка яркости светодиодов на МК

Добавлено: Чт авг 12, 2010 22:25:47
Fizikus
Если взять высокую частоту, то пунктиров заметно не будет. Только на МК такую частоту на куче портов вытянуть не получится.
А для чего вытягивать их на куче портов? Одного аппаратного ШИМ недостаточно?
Скорее всего регулировать яркость контроллером не удастся, так что лучше либо отказатся от этой идеи либо делать внешнюю схему, управляющую напряжением на светодиодах.
Можете обосновать?
Вот схемка моего вентилятора, только без часов:

Re: Регулировка яркости светодиодов на МК

Добавлено: Пт авг 13, 2010 07:39:33
ARV
Fizikus писал(а):Можете обосновать?
вам же обосновывали выше в нескольких постах: ШИМ * вращение = пунктирчики. вы же не хотите, чтобы ваше изображение вместо (или вместе) с изменением яркости превращалось в пунктиры?!

Re: Регулировка яркости светодиодов на МК

Добавлено: Пт авг 13, 2010 07:41:59
Kavka
Если речь пошла про часы-вертушку, то хотелось бы обсудить регулировку яркости при удалении от центра.
У кого какие идеи?

Re: Регулировка яркости светодиодов на МК

Добавлено: Пт авг 13, 2010 09:20:16
ВНН
Если регулировку ШИМ привязывать к позиции вывода то проблемы не будет.Допустим круг разбит на 60 точек частота вращения
1500 об/мин (25Гц) ШИМ берем 25*60=1500Гц

Re: Регулировка яркости светодиодов на МК

Добавлено: Пт авг 13, 2010 09:54:24
Kavka
BHH, 1500Гц это будет, типа, pixel-clock.

Возьмём ситуацию с меньшим пикселом (6 градусов на пиксел - маловато :))) )
Пусть один пиксель по окружности = 1 градусу.
Скорость вращения 25 об/сек.
Пиксельная скорость = 25*360 = 9000 Гц
Т.е. одна точка отображается в течении 1/9000 секунды.
И в эту долю секунды надо ещё и ШИМ упихать...
При 20МГц это около 2000 тактов - можно уложиться думаю :)

Re: Регулировка яркости светодиодов на МК

Добавлено: Пт авг 13, 2010 10:07:46
ВНН
Kavka Sorry неправильно посчитал,да принцип такой для регистров типа 74hc595.Но можно от ШИМ на ключевой элемент как реализовано в схеме Fizikus.

Re: Регулировка яркости светодиодов на МК

Добавлено: Пт авг 13, 2010 10:51:51
YS
А со временем можно будет и ассемблер изучить.
Вот как раз таки ассемблер надо изучать в первую очередь. Естесственно, я не говорю о каких-то извращенных приемах, не говорю о работе с вещественными числами - для этого как раз и есть языки высокого уровня. Но знать его хотя бы на уровне здешней обучалки (кстати, у меня на ее освоение ушло дня три, на четвертый я уже бодро писал что-то свое на асме :)) , так что не стоит говорить, что это сложно) жизненно необходимо. А вот уже после того, как создалось четкое понимание работы МК на самом низком уровне, можно переходить к С. Ассемблер и С - джентльменский набор проектировщика устройств на МК. Ассемблер дает понимание, С облегчает жизнь и дает гибкость.

Re: Регулировка яркости светодиодов на МК

Добавлено: Пт авг 13, 2010 17:36:31
Fizikus
ARV писал(а):
Fizikus писал(а):Можете обосновать?
вам же обосновывали выше в нескольких постах: ШИМ * вращение = пунктирчики. вы же не хотите, чтобы ваше изображение вместо (или вместе) с изменением яркости превращалось в пунктиры?!
Пиксельная скорость 9000Гц, берем ШИМ 20 МГц 8 бит, частота на выходе 20000/256=78,125 кГц; далее 78125/9000=8,68. Т.е. на один пиксель почти 9 вспышек. При 120мм вентиляторе 1 пиксель = 1 мм. 9 вспышек на 1 мм глаз не различит как пунктиры.
P.S.: из ассемблера знаю только cli и sei, однако это не мешает мне писать и прошивать.

Re: Регулировка яркости светодиодов на МК

Добавлено: Пт авг 13, 2010 18:40:32
YS
из ассемблера знаю только cli и sei, однако это не мешает мне писать и прошивать.
Правильная фраза - "из ассемблера знаю только cli и sei, однако это пока не мешает мне писать и прошивать."

Re: Регулировка яркости светодиодов на МК

Добавлено: Вс авг 15, 2010 20:12:09
Барсик
YS писал(а):Без знания ассемблера (хотя бы поверхностного, на уровне мигалки) в программирование МК лучше не соваться, даже если пишете на С или чем-то еще.
Собачья чушь. К счастью, я, не посоветовавшись с Вами, сунулся программировать микроконтроллеры, совершенно не зная ассемблера. И Вы не поверите, программирую на C и прекрасно себя чувствую. И не заморачиваюсь всякой фигнёй вроде инициализации стека. И не страдаю, как этот несчастный http://radiokot.ru/forum/viewtopic.php?f=20&t=5308 когда мне надо разделить одно число на другое.

Re: Регулировка яркости светодиодов на МК

Добавлено: Вс авг 15, 2010 21:49:35
YS
Барсик, я несказанно рад за Вас. :)

Re: Регулировка яркости светодиодов на МК

Добавлено: Вс авг 15, 2010 22:26:32
Барсик
А я рад за Вас и желаю Вам всяческих успехов! :beer:

Re: Регулировка яркости светодиодов на МК

Добавлено: Вт авг 17, 2010 12:25:49
Nicke
Вот не плохая статья про ШИМ с кусачками кода.
http://easyelectronics.ru/avr-uchebnyj- ... -shim.html
А тут пример использования ШИМ на СИ:
http://www.avrlab.com/node/52

Re: Регулировка яркости светодиодов на МК

Добавлено: Вт авг 17, 2010 14:50:18
kris95
Люди, на счёт шим - вы забыле о такой вещи как RC цепочка ( частотный фильтр ). На выходе мы в итоге получем не импульсы а напряжение !!! Такж есть врианты ШИМ-напряжение конверторов на операционнике.
А насчёт ассэмблера - я учился с него ( сейчас на Си пишу ), и скажу что он очень помогает. Просто если учишь только СИ то не понимаешь как работает сам МК, там всё очень запутано и поверхностно, а в асме всё прозрачно, чисто машинный код. Но писать в дальнейшем лично я считаю лучше на Си, но при этом не забыв о асме.