Свой драйвер для LED фонарика. С памятью выбранной яркости и контролем разряда аккумулятора.

Что умеет мой драйвер:
Он имеет 4 режима яркости.
1режим шим 99% ток потребления фонарём 1,5А
2режим 45% 0,8А
3режим 14% 0,4А
4режим 4% 0,1А (100ма)
При включении фонарика, если он работает больше одной секунды, тогда выбранный режим работы (яркость) запоминается в памяти EEPROM контроллера, и при следующем включении, включается на той же яркости при которой фонарь выключался.
Если фонарик работает меньше одной секунды, тогда повторное нажатие на кнопку ВКЛ. переключает режим работы (яркости).
Так же он имеет контроль разряда аккумулятора. Когда аккумулятор разряжается до своего минимума, фонарик моргает 3 раза и выключается. Это значит, сел аккумулятор.

Контроль разряда происходит так:
Допустим фонарик работает на первом режиме (самом ярком) когда аккумулятор разрядится до минимума (где-то 2.8в) и такое напряжение, продержится более 3 секунд, тогда яркость фонаря плавно понизится до второго режима и второй режим запомнится в EEPROM, когда на втором режиме, аккумулятор разрядится до минимума, после трёх секунд, яркость плавно, понизится до третьего режима и режим запомнится в EEPROM. Тоже самое будет происходить далее, и только на четвёртом режиме работы (самом тусклым) когда аккумулятор дойдёт до минимума, после трёх секунд он моргнёт три раза и выключится.
Такой алгоритм работы, нужен для того, чтоб максимально полно использовать заряд аккумулятора.
Контроль напряжения нужен чтоб не убить аккумулятор, так как их нельзя разряжать ниже минимума.

 

 

 

 

 

Архив с прошивкой + проект для Протеуса.