Запрошуємо, Гість
Ім'я користувача: Пароль: Запам’ятати мене
  • Сторінка:
  • 1
  • 2
  • 3

ТЕМА: Драйвер ліхтарика.

Драйвер ліхтарика. 10 трав. 2019 23:16 #1

  • zaxtone
  • zaxtone аватар
  • Оффлайн
  • habitue
  • Дописи: 185
  • Подякували: 1
Приветствую вас уважаемый 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
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect Author
Не уверен, что все поместится в ATTINY13, но пока вопросы.
Правильно я понимаю, что всего два основных режима: 1 - постоянное свечение; 2 - мигания (стробоскоп, S.O.S. и маячок)?
Переключение между этими режимами - длительность удержания кнопки в состоянии сна контроллера?
В состоянии бодрствования короткое нажатие переводит в сон из любого режима, а длительное нажатие к изменению светового эффекта в пределах выбранного режима?
С какой яркостью работает режим мигания?
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 12 трав. 2019 22:57 #3

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

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

Драйвер ліхтарика. 13 трав. 2019 06:35 #4

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect Author
zaxtone пише:
В состоянии бодрствования короткое нажатие переводит в сон из любого режима
Из любого состояния бодрствования выключает короткое нажатие.
То есть, на мой вопрос - ответ "Да", или я не уловил какой-то нюанс в Вашем ответе?

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

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

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

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

Драйвер ліхтарика. 13 трав. 2019 11:06 #5

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

Драйвер ліхтарика. 13 трав. 2019 12:01 #6

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

Драйвер ліхтарика. 13 трав. 2019 18:45 #7

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect 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 аватар
  • Оффлайн
  • habitue
  • Дописи: 185
  • Подякували: 1
Отредактировал 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
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect Author
zaxtone пише:
Просьба переназначить выводы в соответствии с схемой из первого поста.
Изменение назначения выводов связано с оптимизацией распределения ресурсов МК.
Перенести можно только BATT на один из свободных выводов.
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 22 трав. 2019 17:22 #10

  • zaxtone
  • zaxtone аватар
  • Оффлайн
  • habitue
  • Дописи: 185
  • Подякували: 1
Контроллер реагирует на дребезг кнопки. Говорят что это программно исправимо.
Есть еще одна проблема, см.видео:

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

Драйвер ліхтарика. 22 трав. 2019 18:19 #11

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect Author
Защита от дребезга в программе есть, но усилил.
Гистерезис добавил. Ввести его в настойку возможности нет. Поэтому опробуйте, если что тогда подправлю.
Долучення:
Останнє редагування: 23 трав. 2019 20:31 від Soir. Причина: Обновление прошивки
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 22 трав. 2019 23:33 #12

  • zaxtone
  • zaxtone аватар
  • Оффлайн
  • habitue
  • Дописи: 185
  • Подякували: 1
Гистерезис работает, однако в этой версии есть сбои. Регулировка ШИМ нажатием работает не корректно, иногда работает иногда нет (в первой версии все было хорошо).
При достижении значения ячейки 0х02 отключения не работает (в первой версии работало)
Включение как в первой так и в второй версии, мигающие режимы с выключенного состояния при зажатии кнопки не включается пока её не отпущу, а надо что бы при зажатой кнопке, включение произошло после заданного времени которое я указывал выше. Переключение между мигающими режимами корректно, по отсчету времени даже не отпуская кнопку.
Хотелось бы дополнить ещё : В режиме света при достижении минимального или максимального уровня происходит очень короткое но заметное (импульсом допустим 0,2 сек) затухание сигнализирующее о достижении одного из этих крайних состояний.
Україна прокидається
Останнє редагування: 23 трав. 2019 02:19 від zaxtone.
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 23 трав. 2019 07:10 #13

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect Author
zaxtone пише:
Регулировка ШИМ нажатием работает не корректно, иногда работает иногда нет (в первой версии все было хорошо).
Регулировка ШИМ в прошивке не менялась.
Возможно свое влияние дает гистерезис. То, что видел на видео, показывает, что при увеличении яркости напряжение просаживается. Фонарик переходит в эконом режим, ток уменьшается, напряжение поднимается. Но если без гистерезиса он снова возвращался в основной режим, то сейчас напряжение должно подняться еще выше.
Поэкспериментируйте с этим.

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

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

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

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

Драйвер ліхтарика. 23 трав. 2019 15:19 #14

  • zaxtone
  • zaxtone аватар
  • Оффлайн
  • habitue
  • Дописи: 185
  • Подякували: 1
Україна прокидається
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 23 трав. 2019 16:50 #15

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect Author
1. Уменьшил гистерезис.
2. По включению режима стробоскопа. Здесь я вижу только проблемы с самой кнопкой. Места для маневра программным путем нет. Поэтому попробуйте заменить кнопку и/или подключить параллельно ее контактам конденсатор.

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

Драйвер ліхтарика. 23 трав. 2019 17:16 #16

  • zaxtone
  • zaxtone аватар
  • Оффлайн
  • habitue
  • Дописи: 185
  • Подякували: 1
еще чуток уменшить гистерезис?
Україна прокидається
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 23 трав. 2019 17:24 #17

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect Author
Уменьшил.
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 23 трав. 2019 17:59 #18

  • zaxtone
  • zaxtone аватар
  • Оффлайн
  • habitue
  • Дописи: 185
  • Подякували: 1
КЛАСС!!! Гистерезис как надо! Проблема включения в режимы сигналов осталась. В выключеном состоянии я зажимаю кнопку происходит заданный отсчет времени, включается стробоскоп (видимо на такой же отрезок времени) обходя этот режим переходит в режим SOS. Конденсатором кнопку зашунтировал, кнопка новая с магазина, их несколько штук менял, проблема осталась.
Україна прокидається
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 23 трав. 2019 19:38 #19

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect Author
Обновил прошивку, проверьте еще.
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 23 трав. 2019 19:50 #20

  • zaxtone
  • zaxtone аватар
  • Оффлайн
  • habitue
  • Дописи: 185
  • Подякували: 1
Супер работает!!! Можно еще на половину уменьшить время затухания сигнализирующего о достижении одного из этих крайних состояний?
Осталось подключить управляемым линейным стабилизаторам тока AMC7135 подключить и проверить как будет работать.
Есть задумка доработать алгоритм переключения в эконом, но это как завладею Attiny85 тогда и начнем.
Україна прокидається
Останнє редагування: 23 трав. 2019 20:18 від zaxtone.
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 23 трав. 2019 20:31 #21

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect Author
Уменьшил до 0,1 сек.
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 24 трав. 2019 14:22 #22

  • zaxtone
  • zaxtone аватар
  • Оффлайн
  • habitue
  • Дописи: 185
  • Подякували: 1
Есть проблема. Какие ваши предложения?
Україна прокидається
Адміністратор заборонив доступ на запис.

Драйвер ліхтарика. 24 трав. 2019 16:15 #23

  • Soir
  • Soir аватар
  • Оффлайн
  • Moderator
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect Author
Вряд ли задержка при включении что-то решит. После задержки будет измерено напряжение, оно все равно будет низкое и МК заблокирует работу фонарика.

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

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

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

Драйвер ліхтарика. 26 трав. 2019 22:14 #24

  • zaxtone
  • zaxtone аватар
  • Оффлайн
  • habitue
  • Дописи: 185
  • Подякували: 1
И все же попрошу вас сделать блокировку измерения на делителе напряжения во время включения. Или дать еще одну ячейку в 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
  • Дописи: 13424
  • Подякували: 5103
  • sxem.org 2019,2021 Respect Author
zaxtone пише:
И все же попрошу вас сделать блокировку измерения на делителе напряжения во время включения.
Сделал 1 сек.
zaxtone пише:
Или дать еще одну ячейку в EEPROM для этого порта. диапазон до 1сек.
На это уже недостаточно ресурсов МК.
zaxtone пише:
Прошивку в отдельноом файле если можно.
Не понял, в каком отдельном файле?
zaxtone пише:
Блок питания 3А.
Это ни о чем. Ведь отключение срабатывает? Значит напряжение проседает. Возможные причины я описывал выше. Вы сделали измерения?
zaxtone пише:
Еще один вариант решения измерения напряжения в этой статье.
А в чем у нас проблема с измерением?
zaxtone пише:
Там он использовал источник опорного напряжения.
...
Как вы считаете, есть смысл в этом?
Если Вы про применение внешнего источника опорного напряжения в той статье - не знаю, статью не читал - она большая, скучная и ее тема мне неинтересна.
Но про нашу разработку скажу - абсолютно никакого смысла не имеет. Кроме, как внешний ИОН будет также что-то потреблять - ничего больше не изменится.

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