Обсуждаем контроллеры компании Atmel.
Вс авг 26, 2012 22:44:09
vitalik_1984 писал(а):NISTATIN писал(а):Народ подскажите пожалуйста как яркость с помощью АЦП регулировать. А то что-то никак не соображу...
Вообще смотря какую яркость вы регулируете, если какой нибудь подсветки, это одно, если яркость светодиодного табло, это другое.Может имеется ввиду регулировка яркости какого нибудь другого источника света с помощью реостата?
В общем случае работает связка ацп + шим. Неплохо было бы указать какой язык вы бы хотели использовать для программы.
Хочу в мониторе подсветку сделать из светодиодной ленты, и хочу чтоб яркость регулировалась стандартными кнопками, в схеме монитора яркость регулировалась от 0 до 3,3 вольта, так вот на вход ацп подать это напряжение и анализируя его изменять частоту ШИМ. вот подать напряжение у меня получается, проанализировать его тоже, а вот как изменять частоту ШИМ на основании полученных результатов напряжения, никак не получается. сделал так: i=(255*volt)/3300,но плавной регулировки не получается. работаю в codeVision.
Пн авг 27, 2012 07:25:45
чтобы ШИМ в Т13 работал нормально, значение должно быть в диапазоне 0-255, а по твоей формуле оно будет, если предположить что volt = 0...3.3, <1
проще сделать АЦП с опорным 3,3В, тогда значение из АЦП (ст.8 разрядов) можно просто переписывать а в регистр сравнения Т0
Пн авг 27, 2012 08:38:24
GP1 писал(а):чтобы ШИМ в Т13 работал нормально, значение должно быть в диапазоне 0-255, а по твоей формуле оно будет, если предположить что volt = 0...3.3, <1
проще сделать АЦП с опорным 3,3В, тогда значение из АЦП (ст.8 разрядов) можно просто переписывать а в регистр сравнения Т0
почему же <1? там же значение в милливольтах, там как раз получается в диапазоне 0-255. а про ваш способ можно поподробнее? я из даташита понял что там опорное только Vcc или 1,1 вольта.
Пн авг 27, 2012 09:25:23
если запитать тиньку от 3,3В и выбрать в качестве опорного Vcc, то как раз и получится то что надо.
АЦП измеряет входное напряжение, только нужно выровнять результат влево ADMUX:ADLAR=1, при этом в ADCH будет от 0 до 255, то что нужно для Т0, ADCL просто игнорируешь, переписываешь значение из ADCH в OCR0A/B и получаешь на выходе ШИМ
зы: в ШИМе, обычно, меняют только скважность, т.е. Т0 считает до переполнения, а при совпадении с OCR0x, в соответствии с режимом, происходит изменение состояния выхода
Пн авг 27, 2012 09:39:22
GP1 писал(а):если запитать тиньку от 3,3В и выбрать в качестве опорного Vcc, то как раз и получится то что надо.
АЦП измеряет входное напряжение, только нужно выровнять результат влево ADMUX:ADLAR=1, при этом в ADCH будет от 0 до 255, то что нужно для Т0, ADCL просто игнорируешь, переписываешь значение из ADCH в OCR0A/B и получаешь на выходе ШИМ
зы: в ШИМе, обычно, меняют только скважность, т.е. Т0 считает до переполнения, а при совпадении с OCR0x, в соответствии с режимом, происходит изменение состояния выхода
а с примерами кода можно? просто я в этом не очень силен и чтоб мне осмыслить все что вы написали куча времени понадобится
Пн авг 27, 2012 10:00:48
я быдлокодю только на асме, Си в процессе изучения.
Пн авг 27, 2012 13:28:39
Могу перевести асм, если есть комментарии.
NISTATIN
Настоятельно советую вам почитать
Правила , там написано, что нельзя нажимать на цитирование, если отвечаете на предыдущее сообщение.Сложно читать форум, если все цитировать.
Пн авг 27, 2012 20:39:59
пример кода есть здесь
http://radiokot.ru/circuit/digital/measure/27там просто читается АЦП и переписывается в OCR таймера
- Код:
;========================
; обработка прерываний
;========================
ad_comp:
push tmp
in tmp,SREG
push tmp
in tmp,ADCL
in tmp,ADCH
out OCR0,tmp
pop tmp
out SREG,tmp
pop tmp
reti
только там под М16, у тиньки название регистров чуть другое
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.