Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2

ТЕМА: Драйвер фонарика

Драйвер фонарика 10 мая 2019 23:16 #1

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
Приветствую вас уважаемый Soir.
Собственно затея управления драйвером такова:
Контроллер Attiny13. Вывод 3(PB4) будет служить выходом ШИМ сигнала, к которому будут подключены управляемые линейные стабилизаторы тока AMC7135.
Дабы не звенели аккумуляторы от ШИМ коммутации, ШИМ будет 37кГц.
Дать возможность изменять эту частоту в отдельном файле EEPROM указав в какой ячейке.
ШИМ будет работать в 4 режимах: 100% 60% 30% 10%.
Дать возможность изменять эту частоту в отдельном файле EEPROM указав в какой ячейке.
Так же еще 3 отдельных режима которые будут включаться отдельным алгоритмом:

--Стробоскоп 12Гц (50%),
--S.O.S. три короткие вспышки 0,5 сек > три длинные вспышки 1сек > короткие вспышки 0,5 сек интервал 2 сек и цикл повторяется
--Маячок 0,5сек вспышка 3сек интервал

•На вывод 2(PB3) подключена тактовая кнопка на землю.

•По питанию подключен делитель напряжения средняя точка которого подключена к выводу 7(PB2), этот порт АЦП будет служить детектором заряда аккумулятора. Резисторы в цепи установлю к плюсу 20,5кОм, к земле 10,5кОм. За полный заряд взял верхнее значение 3,7В (но в основном Аккумуляторы выдают и больше в районе 4В). Нижний порог разряда значение 3В.
•Цепь делителя напряжения рассчитал так что при вышеуказанных номиналах при 3,7В в средней точке 1,25В. При 3,3В значение равно 1,12В. При 3В, значение равно 1,02В.

•В рабочем состоянии при достижении напряжения 1,12В на выводе 7(PB2) ШИМ из состояния 100% 60% 30% переходит в 10%.
•Так же при пробуждении если напряжение на выводе 7(PB2) 1,12В, ШИМ включается в режим 10%
•При достижении напряжения 1,02В на выводе 7(PB2) ШИМ уходит в сон (энергосбережение) и каждое повторное нажатие на кнопку, вывод 3(PB4) даёт разовый импульс 10% длительностью 0,3 сек (тем самым сигнализируя о просадке аккумулятора.

Алгоритм включения:
•Короткое разовое нажатие включает один из 100% 60% 30% 10% режимов на котором был выключен (память последнего режима).
•Повторное короткое нажатие переводит в сон (энергосбережение) с сохранением последнего режима.
•Длительное нажатие 1 сек в состояния сна (энергосбережения) включает --Стробоскоп
•Повторное длительное нажатие включает --S.O.S.
•Следующее длительное нажатие включает -–Маячок и так длительными нажатиями переключение этих трех режимов по кругу пока коротким нажатием не переведу в режим сна. Эти режимы не запоминаются, в памяти только режимы фонаря.

•Переключение между режимами 100% 60% 30% 10% осуществляется зажатой кнопкой интервалом через 0,8 сек происходит переключение от максимального с который включен в настоящий момент до минимального 10% и останавливается на нем, отпускаю кнопку, ШИМ продолжает работу. В момент переключения режимов с зажатой кнопкой останавливаюсь на том режиме, на котором отпускаю кнопку.
•Переключение на максимальный режим так же происходит ступенчато по режимам интервалом через 0,8 сек, только когда находится в состоянии 10%. (нижняя отправная точка, от которой возможно переключение от минимума к максимуму) Доходя до 100% переключение останавливается на 100%, отпускаю кнопку, ШИМ продолжает работу.
•В момент переключения режимов с зажатой кнопкой останавливаюсь на том режиме, на котором отпускаю кнопку.

Україна прокидається
Последнее редактирование: 10 мая 2019 23:41 от zaxtone.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 12 мая 2019 07:09 #2

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
Не уверен, что все поместится в ATTINY13, но пока вопросы.
Правильно я понимаю, что всего два основных режима: 1 - постоянное свечение; 2 - мигания (стробоскоп, S.O.S. и маячок)?
Переключение между этими режимами - длительность удержания кнопки в состоянии сна контроллера?
В состоянии бодрствования короткое нажатие переводит в сон из любого режима, а длительное нажатие к изменению светового эффекта в пределах выбранного режима?
С какой яркостью работает режим мигания?
Администратор запретил публиковать записи гостям.

Драйвер фонарика 12 мая 2019 22:57 #3

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
Не уверен, что все поместится в ATTINY13
Если не влезет тогда на усмотрение Attiny15,25,45,85.
Правильно я понимаю, что всего два основных режима: 1 - постоянное свечение; 2 - мигания (стробоскоп, S.O.S. и маячок)?
Режимы постоянного-свечения 4 режима и отдельно сигнальные режимы "стробоскоп", "S.O.S." и "Маячок"
Переключение между этими режимами - длительность удержания кнопки в состоянии сна контроллера?
Переключение между режимами только в состоянии работы.
В состоянии бодрствования короткое нажатие переводит в сон из любого режима
Из любого состояния бодрствования выключает короткое нажатие.
а длительное нажатие к изменению светового эффекта в пределах выбранного режима?
Из состояния сна, сигнальные режимы включаются только длинным нажатием , а из состояния сна коротким нажатием только режимы свет.Выключается все одинаково коротким нажатием.

Расказ на пальцах если что
Україна прокидається
Администратор запретил публиковать записи гостям.

Драйвер фонарика 13 мая 2019 06:35 #4

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
zaxtone пишет:
В состоянии бодрствования короткое нажатие переводит в сон из любого режима
Из любого состояния бодрствования выключает короткое нажатие.
То есть, на мой вопрос - ответ "Да", или я не уловил какой-то нюанс в Вашем ответе?

Ладно, в целом понятно. Но Вы не ответили на мой вопрос:
С какой яркостью работает режим мигания?
В свете новой терминологии, поправлю - с какой яркостью работает блок режимов мигания?

И еще вопрос.
Может лучше сделать не ступенчатое переключение яркости, а плавное? Пока кнопка нажата, яркость плавно уменьшается (увеличивается). После отпускания запоминается и не нужно будет отдельно вводить значения яркости при прошивке МК.

P.S.
Еще замечание.
Поскольку МК будет питаться от источника нестабильного напряжения, то для измерения напряжения следует использовать его внутренний Aref (источник образцового напряжения). Его напряжение 1,1V. Следовательно, максимальное напряжение на входе в МК не должно превышать 1,1V.

Если пороги напряжения будут задаваться через EEPROM, то нет смысла подбирать точные резисторы в делителе. Достаточно будет прописать в EEPROM число, соответствующее нужному напряжению.
Последнее редактирование: 13 мая 2019 08:01 от Soir. Причина: Дополнение.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 13 мая 2019 11:06 #5

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
С какой яркостью работает режим мигания?
Режимы мигания 100%.
Может лучше сделать не ступенчатое переключение яркости, а плавное?
Давайте попробуем. Тогда В файле EEPROM так же выделить ячейку для возможности изменения скорости (времени) плавного перехода. Тогда есть смысл так же в EEPROM при условии что верхний порог свечения 100% то уровень нижнего я смогу задавать сам.
Поскольку МК будет питаться от источника нестабильного напряжения, то для измерения напряжения следует использовать его внутренний Aref (источник образцового напряжения). Его напряжение 1,1V. Следовательно, максимальное напряжение на входе в МК не должно превышать 1,1V.
Согласен. Тогда за вами лишь останется указать какая ячейка отвечают за переход на 10% и у меня будет возможность подобрать делитель напряжения.
Україна прокидається
Последнее редактирование: 13 мая 2019 11:19 от zaxtone.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 13 мая 2019 12:01 #6

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
zaxtone пишет:
В файле EEPROM так же выделить ячейку для возможности изменения скорости (времени) плавного перехода.
Усложнять не будем, по крайней мере, пока остается ATTINY13. Скорость будет такая же, как Вы определили - 0,8 сек/шаг. Всего три шага. То есть, от 10% до 100% проход будет за 2,4 сек. Примерно.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 13 мая 2019 18:45 #7

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
Собрал проект, поместилось в ATTINY13. Но если я что-то не учел, то возможно и нет. Поэтому сначала проверьте работу на макете или в симуляторе.
В EEPROM записываются:
- ячейка [0x00] - минимальное значение ШИМ. Число от 0 до 255. Можете пересчитать в проценты. Если нужно 10%, то это будет 25 (по умолчанию).
- ячейка [0x01] - минимальное напряжение, при котором ШИМ перейдет на установленный минимум в ячейке [0x00].
- ячейка [0x02] - минимальное напряжение, при котором ШИМ отключается.
В напряжения прописываются условные числа от 0 до 255 (по умолчанию 150 и 100 соответственно). Какие конкретно должны быть - можете рассчитать, зная параметры делителя. Весь диапазон чисел от 0 до 255 соответствует диапазону напряжений от 0,0 до 1,1V.
- в ячейку [0x03] программа сама запишет выбранный уровень ШИМ.

В архиве в качестве примера файл Lamp_ATTINY13.eep с значениями по умолчанию. Откройте его в программаторе, отредактируйте, затем зашейте в МК.
Вложения:
Администратор запретил публиковать записи гостям.

Драйвер фонарика 21 мая 2019 21:33 #8

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
Отредактировал EEPROM
0х00 оставил как есть
0х01 0,783V на делителе по шкале от 0 до 255 (200) НЕХ=C8
0х02 0,712V на делителе по шкале от 0 до 255 (182) НЕХ=B6
В протеусе с загруженым отредактированным EEPROM, переключение на низкий уровень ШИМ происходит при 0,64V
В жизни на макете вообще ничего не запускается.





Спустя 10 минут после вышенаписаного:

Только что присмотрелся в изначальную схему из первого поста. Назначение выводов в проекте протеуса не такое. Подсоеденил как в протеусе - работает. Просьба переназначить выводы в соответствии с схемой из первого поста.
pin2 (PB3)-KEY
pin7 (PB2)-BATT
Pin3 (PB4)-LED
Україна прокидається
Последнее редактирование: 21 мая 2019 22:00 от zaxtone.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 22 мая 2019 06:45 #9

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
zaxtone пишет:
Просьба переназначить выводы в соответствии с схемой из первого поста.
Изменение назначения выводов связано с оптимизацией распределения ресурсов МК.
Перенести можно только BATT на один из свободных выводов.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 22 мая 2019 17:22 #10

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
Контроллер реагирует на дребезг кнопки. Говорят что это программно исправимо.
Есть еще одна проблема, см.видео:

Україна прокидається
Администратор запретил публиковать записи гостям.

Драйвер фонарика 22 мая 2019 18:19 #11

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
Защита от дребезга в программе есть, но усилил.
Гистерезис добавил. Ввести его в настойку возможности нет. Поэтому опробуйте, если что тогда подправлю.
Вложения:
Последнее редактирование: 23 мая 2019 20:31 от Soir. Причина: Обновление прошивки
Администратор запретил публиковать записи гостям.

Драйвер фонарика 22 мая 2019 23:33 #12

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
Гистерезис работает, однако в этой версии есть сбои. Регулировка ШИМ нажатием работает не корректно, иногда работает иногда нет (в первой версии все было хорошо).
При достижении значения ячейки 0х02 отключения не работает (в первой версии работало)
Включение как в первой так и в второй версии, мигающие режимы с выключенного состояния при зажатии кнопки не включается пока её не отпущу, а надо что бы при зажатой кнопке, включение произошло после заданного времени которое я указывал выше. Переключение между мигающими режимами корректно, по отсчету времени даже не отпуская кнопку.
Хотелось бы дополнить ещё : В режиме света при достижении минимального или максимального уровня происходит очень короткое но заметное (импульсом допустим 0,2 сек) затухание сигнализирующее о достижении одного из этих крайних состояний.
Україна прокидається
Последнее редактирование: 23 мая 2019 02:19 от zaxtone.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 23 мая 2019 07:10 #13

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
zaxtone пишет:
Регулировка ШИМ нажатием работает не корректно, иногда работает иногда нет (в первой версии все было хорошо).
Регулировка ШИМ в прошивке не менялась.
Возможно свое влияние дает гистерезис. То, что видел на видео, показывает, что при увеличении яркости напряжение просаживается. Фонарик переходит в эконом режим, ток уменьшается, напряжение поднимается. Но если без гистерезиса он снова возвращался в основной режим, то сейчас напряжение должно подняться еще выше.
Поэкспериментируйте с этим.

zaxtone пишет:
При достижении значения ячейки 0х02 отключения не работает (в первой версии работало)
Исправил.

zaxtone пишет:
мигающие режимы с выключенного состояния при зажатии кнопки не включается пока её не отпущу, а надо что бы при зажатой кнопке
Изменил.

zaxtone пишет:
затухание сигнализирующее о достижении одного из этих крайних состояний.
Сделал.
Обновил прошивку в сообщении №11.

P.S.
Память МК израсходована на все 100%. Дальнейшие доработки или изменения невозможны. Поэтому, если будут возникать вопросы - рассматривайте вариант перехода на другой микроконтроллер.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 23 мая 2019 15:19 #14

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
Україна прокидається
Администратор запретил публиковать записи гостям.

Драйвер фонарика 23 мая 2019 16:50 #15

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
1. Уменьшил гистерезис.
2. По включению режима стробоскопа. Здесь я вижу только проблемы с самой кнопкой. Места для маневра программным путем нет. Поэтому попробуйте заменить кнопку и/или подключить параллельно ее контактам конденсатор.

Прошивку обновил.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 23 мая 2019 17:16 #16

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
еще чуток уменшить гистерезис?
Україна прокидається
Администратор запретил публиковать записи гостям.

Драйвер фонарика 23 мая 2019 17:24 #17

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
Уменьшил.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 23 мая 2019 17:59 #18

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
КЛАСС!!! Гистерезис как надо! Проблема включения в режимы сигналов осталась. В выключеном состоянии я зажимаю кнопку происходит заданный отсчет времени, включается стробоскоп (видимо на такой же отрезок времени) обходя этот режим переходит в режим SOS. Конденсатором кнопку зашунтировал, кнопка новая с магазина, их несколько штук менял, проблема осталась.
Україна прокидається
Администратор запретил публиковать записи гостям.

Драйвер фонарика 23 мая 2019 19:38 #19

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
Обновил прошивку, проверьте еще.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 23 мая 2019 19:50 #20

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
Супер работает!!! Можно еще на половину уменьшить время затухания сигнализирующего о достижении одного из этих крайних состояний?
Осталось подключить управляемым линейным стабилизаторам тока AMC7135 подключить и проверить как будет работать.
Есть задумка доработать алгоритм переключения в эконом, но это как завладею Attiny85 тогда и начнем.
Україна прокидається
Последнее редактирование: 23 мая 2019 20:18 от zaxtone.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 23 мая 2019 20:31 #21

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
Уменьшил до 0,1 сек.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 24 мая 2019 14:22 #22

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
Есть проблема. Какие ваши предложения?
Україна прокидається
Администратор запретил публиковать записи гостям.

Драйвер фонарика 24 мая 2019 16:15 #23

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
Вряд ли задержка при включении что-то решит. После задержки будет измерено напряжение, оно все равно будет низкое и МК заблокирует работу фонарика.

Какое напряжение питания становится при включении светодиода? Я имею ввиду принудительно, минуя МК?
Если светодиод подключается напрямую, то он по сути работает как стабилитрон. И будет стараться просадить напряжение до своего прямого падения напряжения. Оно, конечно, зависит от протекаемого тока, но характеристика почти такая, как у стабилитрона. Ограничителем (если Вы убрали резистор) остается только внутреннее сопротивление источника напряжения и сопротивление ключей. Если говорить о питании схемы (МК, ключи, светодиод) то чем больше внутреннее сопротивление источника питания, тем ниже будет напряжение питания.

В общем, могу сказать так. Недостаточная мощность источника питания для данной нагрузки. Или можно сформулировать наоборот - слишком мощная нагрузка для этого источника питания.

Варианты решения - уменьшайте нагрузку. Или понизьте порог отключения. Или используйте более мощный источник питания.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 26 мая 2019 22:14 #24

  • zaxtone
  • zaxtone аватар
  • Не в сети
  • I'm here long time
  • Сообщений: 131
И все же попрошу вас сделать блокировку измерения на делителе напряжения во время включения. Или дать еще одну ячейку в EEPROM для этого порта. диапазон до 1сек. Прошивку в отдельноом файле если можно.
Блок питания 3А.
Еще один вариант решения измерения напряжения в этой статье. Там он использовал источник опорного напряжения.
http://cxem.net/mc/mc276.php
Для измерения уровня заряда аккумулятора, используется АЦП микроконтроллера и внешний источник опорного напряжения (далее ИОН) REF3125 с выходным напряжением 2,5В. Внешний ИОН используется не просто так - с его помощью достигается измерение напряжения аккумулятора с минимальными погрешностями, так как точность встроенного в микроконтроллер ИОН'а оставляет желать лучшего.
Как вы считаете, есть смысл в этом?
Україна прокидається
Последнее редактирование: 26 мая 2019 22:24 от zaxtone.
Администратор запретил публиковать записи гостям.

Драйвер фонарика 27 мая 2019 07:20 #25

  • Soir
  • Soir аватар
  • Не в сети
  • Moderator
  • Сообщений: 9435
  • Спасибо получено: 3287
  • Respect Site Sponsor 2019 Author
zaxtone пишет:
И все же попрошу вас сделать блокировку измерения на делителе напряжения во время включения.
Сделал 1 сек.
zaxtone пишет:
Или дать еще одну ячейку в EEPROM для этого порта. диапазон до 1сек.
На это уже недостаточно ресурсов МК.
zaxtone пишет:
Прошивку в отдельноом файле если можно.
Не понял, в каком отдельном файле?
zaxtone пишет:
Блок питания 3А.
Это ни о чем. Ведь отключение срабатывает? Значит напряжение проседает. Возможные причины я описывал выше. Вы сделали измерения?
zaxtone пишет:
Еще один вариант решения измерения напряжения в этой статье.
А в чем у нас проблема с измерением?
zaxtone пишет:
Там он использовал источник опорного напряжения.
...
Как вы считаете, есть смысл в этом?
Если Вы про применение внешнего источника опорного напряжения в той статье - не знаю, статью не читал - она большая, скучная и ее тема мне неинтересна.
Но про нашу разработку скажу - абсолютно никакого смысла не имеет. Кроме, как внешний ИОН будет также что-то потреблять - ничего больше не изменится.

Но хочу заметить. Прежде чем прыгать со стороны в сторону (задержка, ИОН...) нужно понять проблему, ее причину. А тогда уже решать что с этим делать. А для понимания проблемы нужны измерения, тесты и анализ. Пока что измерений нет, тестов нет, анализировать нечего...
Вложения:
Последнее редактирование: 27 мая 2019 07:21 от Soir. Причина: Добавление прошивки.
Администратор запретил публиковать записи гостям.
  • Страница:
  • 1
  • 2
Модераторы: wolf2000, Soir, Vakula, Айнцвайдрайченко