Авторизация
Зарегистрироваться

Свой LED драйвер или как избавится от режима SOS


Здравствуйте коллеги. (ссылка не на того продавца, а просто первый попавшийся похожий!!!!!!)
Обзор не про фонарь, а про переделку!!!
Этот фонарь я получил больше года назад, расстроил он меня сильно.
Под светодиодом дыра, ток едва 1А потреблял, а заказал фонарь побольше — думал помощнее будет. Нечего о нем рассказать.(хотя аккумулятор честные 5 ампер/час выдает — емкость замерил)


В общем забросил и не пользовался. Давно у меня мысль была изучать микроконтроллеры, и вот пришел черед до апгрэйда по своему вкусу.
SOS и моргание меня раздражает, 3 режима для меня мало 5 много, 4 в самый раз

Берем самый распространенный/дешевый МК attiny13 (у меня их навалом осталось от эксперементов)))
И любой N-Channel Logic Level MOSFET с дохлой материнки
Обязательно проверяем по даташиту чтоб он был Logic — это означает что он управляется 3-5 вольтами на управляющем электроде. у меня это был FDB7045L.

схема

конденсатор можно не ставить, я поставил просто чтобы былО, типа избавить МК от помех.



Проблему дыры под светодиодом решил так — приклеил к звезде массивную гайку и гайку вклеил в корпус, теперь корпус хорошо прогревается

все внутренности в фонаре выкинул, резистор не ставил потому что при 100% мощности и заряженном аккумуляторе фонарь потребляет как раз 3А, видимо из-за длинных проводов. Так всё работает уже несколько месяцев, перегревов нет. И этот фонарь стал самым удобным.

Режим работы:
4 режима, переключается от максимума к минимуму покругу
(параметры мощности вывел эксперементально, удобные для себя)
самый минимум 4 %
средний режим 14 %
половина яркости 45 %
самый яркий режим 99 %
Алгоритм переключения.
Если включили и держим дольше секунды не выключая то при следующем включении режим мощности не меняем.
Если включили и выключили не дождавшись 1 секунды то при следующем включении меняем режим.
Для меня так удобно если постоянно пользуешься одним режимом не нужно постоянно перещелкивать.
частота ШИМ 9600000 / 8 / 256 = 4,6 килогерца моргания не видно
файл прошивки, фьюзы не трогаем

(если микроконтроллер новый — то там поумолчанию установлен фьюз CKDIV8 — его нужно снять, это первоначальный делитель частоты генератора на 8. Если его не снять то частота ШИМа будет меньше в 8 раз)


cloud.mail.ru/public/2f015c75c281/%D0%A4%D0%BE%D0%BD%D0%B0%D1%80%D1%8C%20XML-T6
Программа на Си
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
//#define TIMER_FREQUENCY 9600000
// написал программу Ilya 22229999@mail.ru
unsigned int t=0;

#define PORT PORTB
#define PIN PINB
#define LED0 PB0
#define LED1 PB1
int i;
unsigned char u;
signed char w;
unsigned char eeprom_u EEMEM; // определяем переменную в EEPROM
unsigned char eeprom_w EEMEM; // определяем переменную в EEPROM

void vkluchLED(t)
{
PORT |= _BV(t);
}
void vIkluchLED(t)
{
PORT &= ~_BV(t);
}
void mig ()
{
vkluchLED(LED1);
_delay_ms(150);
vIkluchLED(LED1); // (зажигаем и гасим светодиод).
};

int main(void)
{
DDRB |= ((1 << LED0)|(1 << LED1));// выходы

/*
Это делается с помощью битов CS02 CS01 CS00 регистра TCCR0B.
CS02 | CS01 | CS00
0 | 0 | 0 — таймер/счетчик остановлен
0 | 0 | 1 — нет предделителя *
0 | 1 | 0 — предделитель 8 **
0 | 1 | 1 — предделитель 64 **
1 | 0 | 0 — предделитель 256 **
1 | 0 | 1 — предделитель 1024 **
*/
TCCR0A = 0b11000001; // управление выходом, ШИМ
TCCR0B = 0b00000010; // делитель N = 8
OCR0A = 255; // Значение регистра определяет яркость светодиода

u = eeprom_read_word(&eeprom_u); // считываем байт из EEPROM и помещаем его в
w = eeprom_read_word(&eeprom_w); // считываем байт из EEPROM и помещаем его в

if (w<1) // это для самого первого включения после программирования, прописывает 4 режим
{ eeprom_write_word(&eeprom_w, 4);
w = eeprom_read_word(&eeprom_w); // считываем байт из EEPROM и помещаем его в
}

if (u==1){
w--;
if (w<1){w=4;}
eeprom_write_word(&eeprom_w, w);
u=0;
}

u=1;
eeprom_write_word(&eeprom_u, 1); //при включении записываем ноль

while(1)
{

// w — текущая мощность от 1 до 4
if(w==1){ OCR0A=245; } // самый минимум 11 из 256 4 %
if(w==2){ OCR0A=220; } // четверть яркости 36 из 256 14 %
if(w==3){ OCR0A=140; } // половина яркости 116 из 256 45 %
if(w==4){ OCR0A=1; } // самый яркий режим 255 из 256 99 %

for(i=255;i>=0;i--) //это формирование задержки после которой режим не переключается после повторного включения
{
_delay_ms(60); }

mig(); // это временная индикация для отладки

if (u==1){ u=0; //здесь прописываем в память что при следующем включении изменять режим не нужно
eeprom_write_word(&eeprom_u, 0); //при включении записываем ноль
}

}}

видео как работает всё это
www.youtube.com/watch?feature=player_detailpage&v=TTzWQvQfWvs
естественно можно использовать и SMD компоненты, но у меня было внутри полно места. Всё естественно изолируем бумажным скотчем, не беспокоимся ничего не греется.
Планирую купить +32 Добавить в избранное +23 +60
свернуть развернуть
Комментарии (56)
RSS
+
avatar
0
видео как работает всё это

«Это видео c ограниченным доступом»
+
avatar
  • oksalin
  • 26 марта 2014, 15:35
0
«Сожалеем об этом.»
+
avatar
0
Проверил, работает
+
avatar
  • repent
  • 26 марта 2014, 15:34
+17
Приветствую!!! Вот это вы заморочились! =) Скажите, а мультиварку можете перепрошить, а то плов пригорает? =))
+
avatar
  • vismyk
  • 27 марта 2014, 07:21
+1
Двое знакомых независимо друг от друга почти враз пришли к идее купить самую дешёвую мультиварку и базе её реле и ТЭНа забацать на микроконтроллере мега-девайс, заточенный для себя. Вплоть до SMS-оповещения о готовности и управлении со смартфона. ;) Дальше идеи ни один не продвинулся. :(
+
avatar
  • newkid
  • 26 марта 2014, 15:41
0
Уважаемый в схеме ошибка. Должна быть кнопка переключения режимов или селектор.
+
avatar
0
точно, но она с другого торца фонаря, я думаю что всем понятно что + к плюсу аккумулятора, а минус к корпусу.
+
avatar
  • stasgid
  • 26 марта 2014, 15:42
+1
Автор молодец и руки прямые! прямо сказал мне не понравился драйвер я сделал свой молодец.

Не покупной свой!
+
avatar
+3
Молодец, спору нет.
Но
Обзор не про фонарь, а про переделку!!!
А
Сайт mySKU.ru cоздан для обмена артикулами (sku) товаров, заказанными в зарубежных интернет-магазинах…
И потому вопрос где конкретно приобрести товар «переделка», в каком «зарубежном интернет-магазине», остался открытым.
+
avatar
+2
Вопросы что делать с китайским фонарём который работает не так как надо возникают у каждого второго покупателя. Это один из вариантов решения.
Этот вариант стоит 1-2 доллара и полчаса времени, МК можно купить в любом городе.
Желающим потратится и самое главное подождать 1-2 месяца нужно поискать другие обзоры.
+
avatar
  • bo_004
  • 26 марта 2014, 15:45
+1
Ток потребления в дежурке (мало, но всёже сколько)?
+
avatar
0
схему поправил
кнопка выключения отключает и светодиод и микроконтроллер, так что никакой дежурки нет
+
avatar
  • gamebox
  • 26 марта 2014, 16:01
+1
Как-то не очень питать светодиод без стабилизации тока. В худшем случае можно сжечь светодиод на максимальной яркости при свежем аккумуляторе. Также из этого следует недостаток — зависимость яркости от уровня заряда аккумулятора. Заряд аккумулятора не контролируется — значит может высосать незащищенные (хотя это зависит от светодиода). Корпорация дала АЦП, используй не хочу.
+
avatar
0
1. у меня на свежезаряженном аккумуляторе ток выше 3А не поднимался (желающие могут поставить сопротивление или проводок подлиньше поставить)
2. Компенсировать яркость можно переходом на режим большей мощности
3. Стабилизация тока сьест приличную часть заряда аккумулятора
4. Контроль напряжения штука хорошая но не всё сразу и схема усложниться, как минимум нужен будет подстроечник и наладка(не все смогут правильно выставить делитель напряжения), а места в фонарях мало. И для меня это не очень важно.
я всё время держу аккумуляторы заряженными.
+
avatar
  • gamebox
  • 26 марта 2014, 19:56
+1
1. по даташитам у xml-t6 при 3 А падение напряжения 3,35 В, видимо остальное и падает на проводах, но это потери мощности.
2. это неудобно, учитывая скачкообразное изменение яркости при переключении.
3. непонятно откуда такие выводы, ведь ток можно стабилизировать той же ШИМ, потери на шунте не существенны, учитывая что сейчас рассеивают провода.
4. нужен просто делитель из двух резисторов, достаточно поделить на 4, т.к. внутренний ИОН имеет 1,1 В, что позволит контролировать до 4,4 В. И ничего не придется подстраивать, просто выбрать сопротивления в отношении 3 к 1.
+
avatar
0
Заряд аккумулятора не контролируется
Если банка не защищена от переразряда, то фонарь отключится на минимальном напряжении работы ATtiny — 2.7 вольта. Но наверно будет уже поздно.
+
avatar
  • gamebox
  • 26 марта 2014, 19:44
0
www.gaw.ru/html.cgi/txt/ic/Atmel/micros/avr/attiny13.htm
Диапазон напряжения питания
— от 1.8 до 5.5 В
+
avatar
0
www.atmel.com/images/doc2535.pdf

Operating Voltage:
– 1.8 — 5.5V for ATtiny13V.
– 2.7 — 5.5V for ATtiny13

Кому верить?
+
avatar
  • BECHA
  • 26 марта 2014, 16:15
0
тем, кто не умеет программировать контроллеры помогут магазины фроде фастеча или кайдомана. там можно и драйвера заказать и светодиоды. а лучше конечно сразу фонарик вроде Convoy купить — им сразу светить можно, без переделок.
+
avatar
0
Вся прелесть в том что можно сделать не 4 режима, а 10
Даже дорогие фонари порой хотелось бы изменить под себя
Мне нравятся линзованные фонари, чтоб можно было посветить под ноги и в помещении.
А эти конвои слепят точкой, был у меня такой
+
avatar
  • BECHA
  • 27 марта 2014, 11:39
0
никогда не обращали внимание, что ни одна известная фирма не делает линзованных фонарей. не задумывались почему? ответ «не умеют» не подходит. По поводу конвоя — много разных моделей — какая именно была у вас и с каким рефлектором? Например S3 с текстурированный светит широко. Кроме того для конвоя можно TIR оптику подобрать. Да и драйвера есть и с 5ю режимами.
+
avatar
0
Да мне побарабану что выпускают «известные» фирмы, они выпускают то что им удобно выпускать, пусть выпускают дальше. Меня не устраивает яркию луч по центру(даже с мятым рефлектором), покупать только ради вау эффекта? Под ноги светить неудобно (для меня). Если я не могу купить то, что мне нужно я делаю/доделываю сам.
Я ни кому не навязываю своего мнения.
+
avatar
0
Программу можно усовершенствовать.
Во-первых,
u=0;
в условном блоке явно лишее. Все равно на выходе из условия мы безусловно приказываем u=1;

Во-вторых, нужно ли в бесконечном цикле постоянно задавать яркость и формировать задержку? По-моему можно один раз задать яркость, один раз подождать, потом сделать u=0 и крутить дальше пустой бесконечный цикл.
+
avatar
0
согласен, конечно всё это я знаю
я быстренько на макетке запрограмировал, заработало, поставил в фонарь для обкатки
да так и оставил (цыкл оставил чтоб можно было наблюдать задержку, потому что долго играл с частотой камня и делителем ШИМа)
вылизывание совершенно ничего не изменит, даже потребление не изменится
я прошивку сюда выложил чтоб желающие могли подправить
+
avatar
  • Kila
  • 26 марта 2014, 17:27
0
Давно читаю муську, но щас все-таки решил зарегаться. И вот почему:
1. Код страшный, название функций жесть, использование «магических чисел»
2. Светодиод подключаете напрямую к питанию? ШТААА? Вот прочтите
3. Контакты кнопки не подгорели?
4. Правда все работает несколько месяцев?
+
avatar
0
1. всё красиво и с пояснениями
2. я у себя замерил, получилось 2,8 -3,2 А меня устраивает — зато КПД 100% на 100% мощности обычно долго негоняю
3. кнопка работает — что ей будет, а вот пружинка грелась ))) она стальная
я её дополнительно обмотал проводом
4. Всё работает
+
avatar
  • Kila
  • 26 марта 2014, 17:38
0
1. Хорошо, вам виднее
2. КПД чего? У светодиода не более 30% на излучение идет
3. Ей плохо будет при частом включении током 3А
4. Ну оно работает, но так действительно не стоит делать, люди могут повторить и что выйдет у них — неизвестно
+
avatar
+3
2 Стабилизатор тока на таком низком напряжении и таком большом токе сьесть большую часть ёмкости элемента питания. потому что преобразование не бывает 100%ным за всё приходится расплачиваться низким кпд

цепь состоит не только из одного светодиода, есть ещё провода, транзистор и внутреннее сопротивление источника питания, которое и ограничивает ток
3. будет плохо поставьте рубильник помощнее
4. конечно не стоит делать, если слабо представляешь что делаешь, лучше купить очередную китайщину и чесать репу
+
avatar
  • Kila
  • 26 марта 2014, 17:59
+1
Вы считаете себя первопроходцем в создании драйверов для светодиодов?
Почему тогда во всех нормальных фонарях не подключают светодиод к аккумулятору напрямую? У вас в голове такая каша видимо, вы посчитайте указанные сопротивления, 1 Ом наберете?
+
avatar
0
вы паяльник хоть раз в руках держали? или только ссылками на теоретические статьи можете кидаться?
+
avatar
  • Kila
  • 26 марта 2014, 18:09
0
Держал, и на работе стоит паяльная станция Lukey, и ссылками не кидался, она всего одна, сопротивление померяли?
+
avatar
  • Kila
  • 26 марта 2014, 18:12
+1
Я вас пытаюсь объективно покритиковать, а вы начинаете агриться и даже не хотите понять
+
avatar
+1
чё понимать, ток померил, не выходит за пределы допустимого, чего ещё нужно?
+
avatar
0
Не слушайте никого. Не ошибается тот, кто ничего не делает. Может, дождемся от вас статью про контроль тока диода методом измерения падения напряжения на токовом шунте аналоговым входом attiny с автоматической коррекцией скважности :)
+
avatar
+1
У всех не ест, а тут сожрёт? КПД современных преобразователей >85%, Вам таки мало? Если взять все компоненты в СМД варианте, то можно спокойно упихать и управляющий МК и преобразователь. Заодно и кнопке не придётся коммутировать большие токи.
Идея — хорошая, исполнение — отвратное. У Вас получился аналог автомобиля ВАЗ: ездит — да и фиг с ним.
+
avatar
  • Kila
  • 26 марта 2014, 18:14
+1
Я понять не могу как у него еще и едет )
+
avatar
0
где вы видите современные преобразователи???
в китайских драйверах???
AMC7135 который стоит в каждом китайском драйвере
это ЛИНЕЙНЫЙ стабилизатор
цель сделать копеечное рабочее устройство которое можно собрать на коленке
+
avatar
0
7135 это стабилизатор ТОКА, причём специально для светодиодов.
цель сделать копеечное рабочее устройство которое можно собрать на коленке
Вот и «инженеры» АвтоВАЗа так же работают
+
avatar
0
можно взглянуть на ваши мерседесы??? а то у меня на работе тоже много чего стоит (кстати очень весомый агрумент)
тоже похвастаться?
+
avatar
0
Да запросто

Вот, например, кусок разводки одной из плат стенда для испытаний ДВС, предсерийный вариант. На «снимке» сетевой контроллер W5200.
+
avatar
+2
ну вот, а говорил что не на автовазе работаешь
+
avatar
0
Есть народные драйвера типа АК-47 со звездами-там тоже мигание можно отключить.
+
avatar
+2
есть, и можно купить
Всем невнимательным предлагаю заново прочитать название обзора
оно звучит Свой LED драйвер или как избавится от режима SOS
мне нужен был именно такой драйвер, и я его сделал
а контроль напряжения, если понадобится сделаю
+
avatar
  • klirik
  • 26 марта 2014, 20:09
0
До кучи нужно добавить ссылку на «народную прошивку» с фонарёвки.
Там коллективными усилиями сделана как раз для мелкой тиньки — с разными ништяками. Просто чтобы (если обзор не удалят за оффтоп) была референсная ссылка для будущих искателей.
+
avatar
0
не участвовал и не видел
+
avatar
  • klirik
  • 27 марта 2014, 06:43
0
Ну вот например: forum.fonarevka.ru/showthread.php?t=15966
(и дальше по параллельным темам)
+
avatar
  • gogabig
  • 26 марта 2014, 21:01
+1
Уважаемый IlyaVsamere, Вы большой умничка и сделали всё отлично!
Прочитал внимательно Ваш обзор и все комменты, ваше решение конечно не идеально, НО оно оптимально для вашего варианта, а это как раз то чего всегда не хватает «теоретикам».
Ну и я конечно тоже кину пару-тройку советов, как же Мы да со свиным-то рылом! :-)
1) Что не стали стабилизировать ток — абсолютно правильно, не стоит этого делать, а вот поставить в цепь токоограничительный резистор примерно 0.3-0.5 Ома может и стоит, мощности на нём потеряете немного и подстрахуете диод.
2) Отсечку по низкому напряжению можно сделать зацепившись ногой с АЦП прямо за диод, после транзистора, тогда можно и не городить делители.
3) Хотел Ышо подкинуть советов, но подумал что не стоит усовершенствовать то что работает как надо хозяину и думаю это правильно, успехов и ждём новых обзоров!
+
avatar
0
Спасибо
1. сначала я тоже так подумал, накупил 2ватных резисторов разных номиналов от 0,1 и выше
начал подключать диод к только что заряженной батарее, а ток то и не превышает допустимый, по этому так и оставил. Тем кому требуется обязательно надо ставить.
2. прям за диод не получится, внутренний АЦП измеряет или относительно питания МК (это нам вообще ничего не даёт) или относительно внутреннего ИОНа (осточника опорного напряжения) 1,1 вольта так что нужно городить резистивный делитель (а резисторы имеют разброс и тд.)
3. последнее время я стараюсь разрабатывать простые и дешевые решения
потому что дорого и сложно и дурак сделает
+
avatar
  • gogabig
  • 26 марта 2014, 23:05
0
относительно питания МК (это нам вообще ничего не даёт)
Как раз я это и имел ввиду, будем мерять падение на открытом транзисторе, канал имеет вполне определённое сопротивление, от этого и танцуем. Впрочем это я только так, теоретически, как бы сам начал экспериментировать. :-)
А сам на самом деле купил себе двухрежимные драйверы Тыц и сегодня только что «вколхозил» в свой Сипик, получил что МНЕ было нужно.
+
avatar
  • guest
  • 26 марта 2014, 23:50
0
Тут вопрос чем меряли? У дешевого мультиметра сопротивление шунт+провода легко может дойти до однного ома. Вот и получиться что мультиметр и был токограничивающим сопротивлением.
+
avatar
0
Измерял вот таким мультиметром
Mastech MS8201H Digital LCR Multimeter
ebay.com/itm/160663592182
покупал лет 10 назад, дорого

щюпы толстые, шунт там впаян 1 — 1,5 милиметра 4-5см длинной
+
avatar
0
Уважаю. Придумал, реализовал, рассказал.
Меня максимум на 2 стадии хватает))
+
avatar
  • faloss
  • 27 марта 2014, 09:52
0
Раз тут разговор про дорогие фонари ВОТ автору топика. Думаю стоит вещь своих денег.
+
avatar
  • 5077070
  • 27 марта 2014, 18:36
0
Все хорошо в отчете — зачот! Кроме — "(хотя аккумулятор честные 5 ампер/час выдает — емкость замерил)" — Trustfire — честную емкость отдает? Ни за что не поверю!
+
avatar
0
я тоже не верил, сначала
лень только щас заниматься зарядкой-разрядкой чтоб доказывать
+
avatar
-1
стабилизации тока нет

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.