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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 7
Зарегистрирован: Чт июл 29, 2010 10:23:24

Сообщение cirimpill »

Я новичок, с МК дело не имел никогда. После долгих проб и ошибок. Научился подключать МК к компу, прошивать его, стирать и т.д. Программировать я умею, только вот с МК дело не имел.
Сам учусь на программиста.

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

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

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

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

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

Буду очень благодарен или дайте ссылку где это описано
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

а обучалку не пробывал читать? :wink:
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Родился
Сообщения: 7
Зарегистрирован: Чт июл 29, 2010 10:23:24

Сообщение cirimpill »

Там все на ассемблере, я его не знаю, нужно на Си
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18767
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

немного не в тему: а как ШИМ проявит себя во вращающихся часах? не получится вместо регулировки яркости регулировка длины пунктирчиков?

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

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

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

Сообщение Murav »

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

Скорее всего регулировать яркость контроллером не удастся, так что лучше либо отказатся от этой идеи либо делать внешнюю схему, управляющую напряжением на светодиодах.
Реклама
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Сб фев 27, 2010 19:23:52
Откуда: Тула

Сообщение Fizikus »

Если взять высокую частоту, то пунктиров заметно не будет. Только на МК такую частоту на куче портов вытянуть не получится.
А для чего вытягивать их на куче портов? Одного аппаратного ШИМ недостаточно?
Скорее всего регулировать яркость контроллером не удастся, так что лучше либо отказатся от этой идеи либо делать внешнюю схему, управляющую напряжением на светодиодах.
Можете обосновать?
Вот схемка моего вентилятора, только без часов:
Вложения
схема.rar
(134.11 КБ) 333 скачивания
Продаю SMD резисторы, конденсаторы.
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18767
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

Если речь пошла про часы-вертушку, то хотелось бы обсудить регулировку яркости при удалении от центра.
У кого какие идеи?
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 347
Зарегистрирован: Сб дек 13, 2008 09:03:43
Откуда: г.Советская Гавань

Сообщение ВНН »

Если регулировку ШИМ привязывать к позиции вывода то проблемы не будет.Допустим круг разбит на 60 точек частота вращения
1500 об/мин (25Гц) ШИМ берем 25*60=1500Гц
Я тоже белый и пушистый и также как и Вы ловлю мышей.
С уважением ВНН.
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

BHH, 1500Гц это будет, типа, pixel-clock.

Возьмём ситуацию с меньшим пикселом (6 градусов на пиксел - маловато :))) )
Пусть один пиксель по окружности = 1 градусу.
Скорость вращения 25 об/сек.
Пиксельная скорость = 25*360 = 9000 Гц
Т.е. одна точка отображается в течении 1/9000 секунды.
И в эту долю секунды надо ещё и ШИМ упихать...
При 20МГц это около 2000 тактов - можно уложиться думаю :)
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 347
Зарегистрирован: Сб дек 13, 2008 09:03:43
Откуда: г.Советская Гавань

Сообщение ВНН »

Kavka Sorry неправильно посчитал,да принцип такой для регистров типа 74hc595.Но можно от ШИМ на ключевой элемент как реализовано в схеме Fizikus.
Я тоже белый и пушистый и также как и Вы ловлю мышей.
С уважением ВНН.
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

А со временем можно будет и ассемблер изучить.
Вот как раз таки ассемблер надо изучать в первую очередь. Естесственно, я не говорю о каких-то извращенных приемах, не говорю о работе с вещественными числами - для этого как раз и есть языки высокого уровня. Но знать его хотя бы на уровне здешней обучалки (кстати, у меня на ее освоение ушло дня три, на четвертый я уже бодро писал что-то свое на асме :)) , так что не стоит говорить, что это сложно) жизненно необходимо. А вот уже после того, как создалось четкое понимание работы МК на самом низком уровне, можно переходить к С. Ассемблер и С - джентльменский набор проектировщика устройств на МК. Ассемблер дает понимание, С облегчает жизнь и дает гибкость.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Сб фев 27, 2010 19:23:52
Откуда: Тула

Сообщение Fizikus »

ARV писал(а):
Fizikus писал(а):Можете обосновать?
вам же обосновывали выше в нескольких постах: ШИМ * вращение = пунктирчики. вы же не хотите, чтобы ваше изображение вместо (или вместе) с изменением яркости превращалось в пунктиры?!
Пиксельная скорость 9000Гц, берем ШИМ 20 МГц 8 бит, частота на выходе 20000/256=78,125 кГц; далее 78125/9000=8,68. Т.е. на один пиксель почти 9 вспышек. При 120мм вентиляторе 1 пиксель = 1 мм. 9 вспышек на 1 мм глаз не различит как пунктиры.
P.S.: из ассемблера знаю только cli и sei, однако это не мешает мне писать и прошивать.
Продаю SMD резисторы, конденсаторы.
Контактная информация:
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

из ассемблера знаю только cli и sei, однако это не мешает мне писать и прошивать.
Правильная фраза - "из ассемблера знаю только cli и sei, однако это пока не мешает мне писать и прошивать."
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Сообщение Барсик »

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

Сообщение YS »

Барсик, я несказанно рад за Вас. :)
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3459
Зарегистрирован: Ср сен 27, 2006 16:18:57

Сообщение Барсик »

А я рад за Вас и желаю Вам всяческих успехов! :beer:
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Вт фев 09, 2010 19:21:27
Откуда: Belarus

Сообщение Nicke »

Вот не плохая статья про ШИМ с кусачками кода.
http://easyelectronics.ru/avr-uchebnyj- ... -shim.html
А тут пример использования ШИМ на СИ:
http://www.avrlab.com/node/52
Держит паяльник хвостом
Сообщения: 920
Зарегистрирован: Ср янв 07, 2009 19:30:23

Сообщение kris95 »

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

Вернуться в «Микроконтроллеры и ПЛИС»