roboforum.ru

Технический форум по робототехнике.

 

Контроль яркости свечения светодиода

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Контроль яркости свечения светодиода

Сообщение space » 02 окт 2009, 12:21

Сделать смог такое, но только с шимом. Интересуют др. варианты реализации, если таковые имеются.
Код с шимом:
Код: Выделить всёРазвернуть
$regfile = "m16def.dat"
$crystal = 16000000

Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare B Pwm = Clear Down

Config Pind.4 = Output

Dim S As Byte

Do

  For S = 1 To 220 Step 10
  Pwm1b = S
  Incr S
  Waitms 30
  Next

  For S = 220 To 1 Step -10
  Pwm1b = S
  Decr S
  Waitms 30
  Next

Loop
Последний раз редактировалось space 02 окт 2009, 12:27, всего редактировалось 1 раз.
Аватара пользователя
space
 
Сообщения: 548
Зарегистрирован: 17 июн 2007, 23:44
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич

Re: Контроль яркости свечения

Сообщение EdGull » 02 окт 2009, 12:22

а что нужно-то чтобы было?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Контроль яркости свечения светодиода

Сообщение space » 02 окт 2009, 12:29

Вот что у меня получилось с шимом:

Нужно тоже самое только сделать это надо не используя шим, а то жалко на такое дело тратить шим.
Аватара пользователя
space
 
Сообщения: 548
Зарегистрирован: 17 июн 2007, 23:44
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич

Re: Контроль яркости свечения светодиода

Сообщение avr123.nm.ru » 02 окт 2009, 12:30

space писал(а):Сделать смог такое, но только с шимом. Интересуют др. варианты реализации, если таковые имеются.
C ШИМ ИМХО удобней. Можно сделать ЦАП на нескольких ногах подключенных через резисторы к светодиоду.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Контроль яркости свечения светодиода

Сообщение EdGull » 02 окт 2009, 12:31

а что не жалко, уарт например не жалко?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Контроль яркости свечения светодиода

Сообщение galex1981 » 02 окт 2009, 12:33

А ШИМ можно сделать программно, тогда не будешь "тратить ШИМ" на такое дело...
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Контроль яркости свечения светодиода

Сообщение space » 02 окт 2009, 12:42

Мне вообще, если можно, то покажите какими способами ещё можно. А так юарт пока не жалко. Интересуют все варианты для общего развития.
Пробовал ещё с ацп, но там надо подстроечный резистор ещё подключать или датчик звуковой или световой. Уже с этими вещами поэксперементировал всё работает. :D
Читал, что можно шимов наделать программно сколько угодно, но как не знаю. Но хотел бы узнать :roll:
Аватара пользователя
space
 
Сообщения: 548
Зарегистрирован: 17 июн 2007, 23:44
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич

Re: Контроль яркости свечения светодиода

Сообщение avr123.nm.ru » 02 окт 2009, 14:20

space писал(а): шимов наделать программно сколько угодно, но как не знаю. Но хотел бы узнать :roll:

Это можно узнать в здача-упражнение 13 в курсе по AVR - http://avr123.nm.ru/z13.htm - програмный ШИМ на 8 каналов для управления 8 servo в примере, но можно сделать аналогично и больше PWM каналов.
Последний раз редактировалось avr123.nm.ru 02 окт 2009, 14:23, всего редактировалось 2 раз(а).
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Контроль яркости свечения светодиода

Сообщение galex1981 » 02 окт 2009, 14:22

В основном цикле или по таймеру

Добавлено спустя 1 минуту 38 секунд:
1. На ногу подается 1
2. Задержка по длительности 1
3. На ногу подается 0
4. Задержка по длительности 0
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Контроль яркости свечения светодиода

Сообщение boez » 02 окт 2009, 18:35

avr123.nm.ru писал(а):Это можно узнать в здача-упражнение 13 в курсе по AVR - http://avr123.nm.ru/z13.htm - програмный ШИМ на 8 каналов для управления 8 servo в примере, но можно сделать аналогично и больше PWM каналов.


Но есть один нюанс :) Такие шимы для светодиодов годятся плохо. Например как зажечь все светодиоды на 90%?
boez
 
Сообщения: 1974
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Контроль яркости свечения светодиода

Сообщение avr123.nm.ru » 02 окт 2009, 18:39

Я думаю для програмного ШИМ это не проблема. Ведь не обязательно последовательно их включать. Можно сгруппировать по времени выключеня в массив и включать все вместе а выключать "пачками".
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Контроль яркости свечения светодиода

Сообщение contr » 02 окт 2009, 19:43

imho
включаем все сразу,
16 задержек - 16 уровней яркости
между этими задержками и вставляем гашение отдельных leds
повтор цикла

Вся беда что программные решения отъедают много ресурсов. Если в приведенном выше алгоритме еще что-нибудь делать, то задержки должны быть не просто delay(xxx), а эквивалентные по времени исполнения фрагменты кода основной программы.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1

Re: Контроль яркости свечения светодиода

Сообщение avr123.nm.ru » 02 окт 2009, 20:19

Усложнение возникает при одинаковых или близких величинах ШИМ - тогда вычисления усложняются.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Контроль яркости свечения светодиода

Сообщение contr » 03 окт 2009, 11:30

не, в предложенном алгоритме гашение всех "лишних" leds одной командой, синхронное регулирование трудности не представляет.
Дополнительное удобство - линейное регулирование яркости в диапазоне свечения, а не просто изменение свечения.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don
Предупреждения: -1


Вернуться в Микроконтроллеры

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

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

Mail.ru counter