Читайте также: |
|
Как известно диод - это токовый прибор, питать его нужно постоянным током, а не напряжением. Светодиоды – тоже диоды, и их тоже нужно питать стабильным током. При стационарной установке светодиода проблема его питания легко решается с помощью резистора, который задает ток через светодиод. Рассчитать номинал резистора помогает закон Ома: R=(Uпит-Uпад)/I, где Uпит – напряжение источника питания в вольтах, Uпад – напряжение, которое падает на светодиоде (примерно 3-3,5В, зависит от тока через светодиод), а I – желаемый ток через светодиод в амперах. Далее подбирается резистор ближайшего номинала, который есть в наличии и все хорошо работает. При больших токах резистор будет сильно греться, так что стоит его брать по мощнее.
Минусом стабилизатора на резисторе является неспособность реагировать на изменение напряжения питания (ток через светодиод и как следствие его яркость будут падать по мере разряда батареи), а также никому не нужная рассеиваемая мощность на резисторе. Для решения этой проблемы существуют так называемые драйвера светодиода (стабилизаторы тока). Стабилизаторы тока бывают повышающими (Boost) и понижающими (Buck). Boost стабилизаторы используются, когда напряжение на батареях меньше, чем падение напряжения на светодиоде, а Buck – когда напряжение на батарея больше падения на светодиоде.
При проектировании своего «неубиваемого» фонарика я задумал использовать параллельную связку из литиевых аккумуляторов или 3шт. АА батарейки (т.е. питающее входное напряжение драйвера должно быть в пределах 3-4,5В). Для этой задачи необходимо использовать Buck драйвер, но при этом не используется около 20% запасенной энергии в батареях! Эти 20% можно выжать, вставив в схему еще и Boost драйвер, который будет включаться, когда для Buck драйвера будет слишком низкое напряжения питания. Все это очень муторно и громоздко, 2 драйвера + компаратор или микроконтроллер для переключения. Так дело далеко не зайдет. Почитав раздел светотехники на speleo.ru открыл для себя Boost/Buck стабилизатор LTC3454 с нужным мне диапазоном питающих напряжений и недурной эффективностью (достижимой при вдумчивой намотке индуктивности). Эта микросхема следит за питающим напряжение и автоматически переключает встроенные Boost/Buck драйвера. Силовые ключи в мостовой схеме интегрированы в саму микросхему, и позволяют коммутировать токи до 1А. Схема включения была взята из даташита LTC3454 и немного модифицирована:
Конденсаторы С3,С4 – танталовые в СМД исполнении 68мкФ, С1, С2, С5 – керамические по 0,1мкФ. С намоткой индуктивности я связываться не стал, поэтому купил взял SUMIDA CDRH5D28RNP-5RØN на 5мкГн. Как видно, микросхема драйвера имеет 2 «канала», которые можно включать по отдельности или вместе с помощью высокого логического уровня на выводах EN1, EN2. Токи «каналов» задается с помощью 2-х резисторов R1, R2 которые рассчитывается по формуле R1=3580*0.8/I1, R2=3580*0.8/I2. Главное, чтобы суммарный ток «каналов» был меньше 1А, иначе есть хорошая вероятность спалить внутренние ключи. Далее по задумке, в фонарике будет 2 режима, «ходовой» и «мощный» с соответствующими токами через диод 0,2А и 1А (мощный режим достигается путем включения 2-х «каналов» по 0,2А и 0,8А одновременно). То есть резистор R1, задающий «ходовой» режим должен быть номиналом 15кОм, а R2 – 3,9кОм. Переключатся режимы будут с помощью тактовой кнопки, герметизированной кусочком резины и прижимной пластиной. То есть для этого нужно повесить еще микроконтроллер, который будет считывать нажатия кнопки и переключать режимы свечения диода. Включение/выключение фонаря будет производиться с помощью длительного (2с) удержания кнопки. А переключение «ходового» и «мощного» режима будет с помощью короткого нажатия кнопки (0,5с). Полная схема устройства с микроконтроллером:
Микроконтроллер взял тот, который был ближе всего под рукой. Им оказался микроконтроллер ATtiny24 в SO-14 исполнении. Прошивка его тривиальна, кроме обработки нажатия клавиши, где учитывается время удержания. Когда фонарик выключен – микроконтроллер переходит в Power-Down режим, и потребляет всего 0,1мкА (LTC3454 в SHUTDOWN режиме потребляет тоже всего ничего – 1мкА) и ощутимо подсаживать аккумулятор не будет. Также добавил еще один элемент, конденсатор С6 – 0,1мкФ на питании микроконтроллера.
1. #include <avr/io.h>
2. #include <avr/interrupt.h>
3.
4. #define EN1 2
5. #define EN2 3
6.
7. #define KEY 2
8.
9. unsigned char mode=0;
10. unsigned char sleep_flag=1;
11.
12. void pause (unsigned int a)
13. { unsigned int i;
14.
15. for (i=a;i>0;i--)
16.;
17. }
18.
19. void set_mode(void)
20. {
21. if (mode==0) PORTA&=~((1<<EN1)|(1<<EN2));
22. if (mode==1) PORTA=(1<<EN1);
23. if (mode==2) PORTA=(1<<EN1)|(1<<EN2);
24. }
25.
26. ISR (INT0_vect)
27. { int count;
28.
29. count=0;
30. while ((PINB&_BV(KEY))==0x00)
31. {
32. count=count+1;
33.
34. if (count==1000) {
35.
36. if (mode==1) mode=2;
37. else if (mode==2) mode=1;
38.
39. while ((PINB&_BV(KEY))==0x00)
40. {
41. count=count+1;
42. if (count==9000) {
43. if (mode==0) mode=1;
44. else {
45. mode=0;
46. sleep_flag=1;
47. }
48. set_mode();
49.
50. while ((PINB&_BV(KEY))==0x00)
51.;
52. }
53. }
54. set_mode();
55.
56. }
57. }
58.
59. return;
60. }
61.
62. int main(void)
63. {
64. DDRB=0x04; //PB2 как вход
65. PORTB=0x04;
66.
67. DDRA=0x0c; //PA2,PA3 как выхода
68.
69. pause(1000); //Пауза
70.
71. GIMSK=(1<<INT0);
72. MCUCR=(0<<ISC00)|(0<<ISC01); //Прерывание по низкому уровню на PB2
73. MCUCR|=(1<<SM1)|(0<<SM0)|(1<<SE); //Разрешить power-down режим
74. sei(); //Разрешить прерывания
75.
76. while(1)
77. {
78. if (sleep_flag==1) {
79. pause(1000);
80. asm("sleep");
81. }
82. }
83.
84. return 1;
85. }
Еще думал добавить сигнализацию состояния батареи на маломощном RGB светодиоде, но делитель напряжения для АЦП тоже будет кушать ток (например, если делитель сделать из 2-х резисторов номиналом 10кОм, то будет кушать уже 210мкА, что уже нехорошо). Потом мне правда подсказали, что включать делитель можно непосредственно портом микроконтроллера во время измерения АЦП, но было уже поздно и плату решил не переделывать.
Для всего этого методом лазерно-утюжной технологии была вытравлена плата. LTC3454 в виду паскудности корпуса DFN паялась с помощью предварительного подогрева (такой столик, который снизу подогревает плату горячим воздухом до заданной температуры). Процесс паяния DFN корпуса в принципе прост, мажем контактные площадки на плате качественной паяльной пастой, ложим на них микросхему, нагреваем до 215 градусов и наблюдаем, как силы поверхностного натяжения ставят микросхему на посадочное место. Главное не забыть припаять Exposed pad на днище микросхемы, который служит одновременно GND выводом и теплоотводом. Все остальное паяется обычным паяльником.
Вид со стороны LTC3454:
Вид со стороны tiny24:
На фото виден резистивный делитель напряжения, который я решил не использовать из-за высокого енергопотребления. Стороны платы соединяются с помощью 4-х проводков. 2 для управления и 2 для питания микроконтроллера.
Теперь посчитаем КПД полученного драйвера:
В ходовом режиме потребление от аккумулятора 0,14A при напряжении 4,00В, а ток и напряжение на светодиоде 0,19А и 2,73В соответственно, КПД=92%
В мощном режиме потребление от аккумулятора 1,2А при напряжении 3,65В, а ток и напряжение на светодиоде 1А и 3,06В, КПД=70%
Данные результаты я считая неплохими, но все же хочется повысить КПД в мощном режиме самостоятельной намоткой индуктивности, чем и займусь длинными зимними вечерами.
Дата добавления: 2015-10-16; просмотров: 220 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Проектное управление устойчивым развитием | | | Моя дорога в Тибет |