ЗУ для свинцовых АКБ на МК Atmega 16А

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Ответить
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

velant77 писал(а): Чт июн 18, 2026 10:19:11 не знаю про что вы вообще пишете. у Автора=Слон цитата "Далее идет калибровка по току при КУ=10. Теми же кнопками «<» и «>» нужно выставить нулевые показания тока. Нагрузка (аккумулятор) при этом автоматически отключается, так что ток заряда отсутствует. " альтернативная прошивка?
прошивка Nilas (13_04_25_ZU_BP_ATMEGA16_ENG_2)
Реклама
Вымогатель припоя
Сообщения: 543
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Сообщение velant77 »

ну к нему тогда и вопросы)
Реклама
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

velant77 писал(а): Чт июн 18, 2026 10:23:38 ну к нему тогда и вопросы)
у Nilas (13_04_25_ZU_BP_ATMEGA16_ENG_2) самая лучшая прошивка из всех что я пробовал в пользовании, но вот эти два момента (по блоку питания +- регулировка, и калибровка именно при 14,6 Вольт для нагрузки ЛАМПАМИ) я бы рекомендовал ему поправить , она была бы идеальная )
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

вот какой зарядный блок я сделал на прошивке Nilas (13_04_25_ZU_BP_ATMEGA16_ENG_2) фото 1
Вложения
IMG_8978_1.jpg
(70.48 КБ) 166 скачиваний
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Сообщения: 104
Зарегистрирован: Пн май 06, 2024 08:17:49
Откуда: Катайск

Сообщение Nilas »

Можно калибровать от 1 ампера и выше. При бОльшем токе меньше погрешность. При сопротивлении 3,3 Ома и напряжении 13 вольт на акб мощность нагрузки составит 51 Вт и плюсом резистор стоит на вентиляторе. Полет нормальный.
Еще такие резисторы для охлаждения можно кидать в дистиллированную воду.
И надо будет уменьшить напряжение калибровки.
Реклама
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

на прошивке Nilas (13_04_25_ZU_BP_ATMEGA16_ENG_2) фото 2
синие клеммы на панели для подключения внешней нагрузки через тюльпаны 4 мм (проводами с крокодилами)
Вложения
IMG_8972_60.jpg
(99.58 КБ) 92 скачивания
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 600
Зарегистрирован: Ср фев 09, 2011 02:33:14

Сообщение Рюмкин »

А если в качестве разряда применить лампу на 12В скажем на 40Вт, можно так?
Помни: изменить свое мнение для того, чтобы исправить ошибку, - это подлинная свобода; в отличие от настойчивого упорствования в своей ошибке.(Марк Аврелий)
Встал на лапы
Сообщения: 104
Зарегистрирован: Пн май 06, 2024 08:17:49
Откуда: Катайск

Сообщение Nilas »

Можно подключать любую нагрузку. Ток нагрузки ограничен только транзистором, который коммутирует эту нагрузку.
Вымогатель припоя
Аватара пользователя
Сообщения: 600
Зарегистрирован: Ср фев 09, 2011 02:33:14

Сообщение Рюмкин »

Все понятно.
Всем огромное спасибо!
Помни: изменить свое мнение для того, чтобы исправить ошибку, - это подлинная свобода; в отличие от настойчивого упорствования в своей ошибке.(Марк Аврелий)
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

прошивка Nilas (13_04_25_ZU_BP_ATMEGA16_ENG_2)

замечен очередной БАГ в прошивке, теперь с буквой Л , причем при запуске например "Тест АКБ" доли секунды надпись правильная "ОстаЛось", но тут же меняет на "ОстаЫось", т.е. на букву Ы. Такая же некорректность и в режиме WAR5 вместо "качеЛи" выдает "качеЫи"
Вложения
буква Л отображается как Ы.JPEG
(101.81 КБ) 54 скачивания
Встал на лапы
Сообщения: 104
Зарегистрирован: Пн май 06, 2024 08:17:49
Откуда: Катайск

Сообщение Nilas »

asbua02 писал(а): Чт июн 18, 2026 10:25:59 но вот эти два момента
Исправлено, но не проверено:
При калибровке 1/2 максимального напряжения БП.
При изменении напряжения в БП напряжение в первый момент устанавливается чуть меньше и затем стабилизируется на выставленное.

asbua02 писал(а): Ср сен 02, 2026 08:19:57 замечен очередной БАГ
У меня тоже английская версия, но такого не замечал. Или прошивка криво встала, либо создались определенные условия для такого бага.

ZU_BP_ATMEGA16__ALL.7z
(631.45 КБ) 40 скачиваний
P.S. исправил еще раз, кто скачал до этого, удалите и перекачайте
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

только заметил НОВУЮ прошивку ZU_BP_ATMEGA16__ALL.7z, испытаю !
касательно БАГА "качеЫи" и "остаЫось" - возникает именно в режиме когда откл. ПИТАНИЕ , устройство засыпает! а потом включаешь и оно автоматически начинает на последней ПРЕДУСТАНОВКЕ делать заряд . Вот только в этом режиме появялется буква Ы. Если настройками выбрать другой режим , отличный от предыдущего, то все правильно отображается . Глюк повторяется если выкл прибор и заново включить. Т.е. в еепром что-то неверно записывается и передергивает потом БУКВУ при включении. Проверю на НОВОЙ прошивке , так ли себя она ведет при прочих равных
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

ничего не поменялось в прошивке ZU_BP_ATMEGA16_lat.HEX , причем записывал разными программаторами (USBasp через AVRDUDESS 2.20 и VVDI prog, готовя для него из HEX - BIN файл), и на разных ATmega16. БАГ буквы Ы тот же (при выходе из режима сна предудущей настройки) . БАГ поднятия напряжения блока питания ТОТ же , при изменении +- кнопками , сперва завышает питание на линии на +0,35..0,45 В при напряженях до 4,5 Вольта, потом стабилизирует до требуемого. При напряжениях выше 4,5 Вольт доработка прошивки РАБОТАЕТ . Единственное что при калибровке выбираю вместо SET U=16V свои 14,6 Вольт для последующего применения автоламп с целью точной калибровки режима (К=10) 6 Ампер для АКБ 60Ач и режима (К=200) 1,20 Ампер .
Вложения
буква Ы , установка 14,6В вместо 16,0.jpg
(98.77 КБ) 24 скачивания
Последний раз редактировалось asbua02 Вс окт 04, 2026 22:09:44, всего редактировалось 2 раза.
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

и на прошлых прошивка Nilas не замечал особенность которую заметил на этой ZU_BP_ATMEGA16_lat.HEX, в режиме калибровки при корректировки тока РАЗРЯДА , напряжение которое возникает на клемах всего 1 Вольт, теже лампы которые были нагрузкой для калибровке 6...7 Ампер, становтся слишком малой нагрузкой для установки тока 1,0...1,2 Ампер разряда . Как-то не камильфо тут тоже , должно быть подача симулирующего АКБ правильного напряжения , от 13....до 12 Вольт . И еще нарушен режим качели при ПОЛЬЗОВАТЕЛЬСКОМ выборе АКБ . Стоит напряжение на месте 14,5-14,6 Вольт. (та же проблема и в старой прошивке 13.04.2025 с качелями, ранее просто не замечал. ) В других Прессетах (AGM, PB/CA, CA-CA) - качели гоняет исправно.
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

ОТВЕЧАЕТ ИИ:
Почему при автостарте ломается буква «Л» на «Ы»:
Когда вы запускаете программу вручную кнопками, переменная MenuSel (выбранный пункт меню) или индекс экрана sel имеют четкие, правильные значения (например, 1, 2, 3). Функция menu_print(sel) берет из Flash-памяти чистую строку и выводит её без искажений.
Но когда программа делает автостарт по условию case 5, она принудительно вызывает чтение параметров из EEPROM: read_eeprom(adr_temp, eep_ust.ust_byte, UST_DATA_SIZE);.
Как мы уже выяснили ранее, функция read_eeprom принимает 16-битный буфер uint16_t buff[]. Запись в него затирает или сдвигает соседние байты в оперативной памяти (RAM) микроконтроллера.
Поскольку переменные настроек (eep_ust) и переменные состояния экрана (MenuSel, sel) в памяти лежат рядом, функция read_eeprom из-за своей 16-битности случайно искажает старший бит индекса меню. Из-за этого функция вывода строк menu_print прыгает на «сломанный» индекс, считывает текст со сдвигом кодировки, и на дисплее вместо строчной «л» (0xEB) выводится «Ы» (0xDB).


В контроллерах дисплеев HD44780 первые 8 адресов (\0–\7) — это пользовательские символы (CGRAM), которые программист должен сам отрисовать по пикселям при старте программы (в файле lcd_lib_2.c).
Когда устройство включается в режиме автостарта, оно сразу начинает выполнять логику заряда и циклы таймеров. Программа инициализации дисплея и загрузки созданных символов (\2 для Л) либо не успевает отработать, либо эти ячейки памяти затираются мусором в RAM. В итоге дисплей вместо вашей буквы «Л» подставляет случайный символ из своей стандартной китайской таблицы — и это оказывается заглавная «Ы».


Причина, по которой она ломается именно при автостарте, заключается в том, что в этот момент программа пытается сделать два дела одновременно:
1. Перерисовывать экран через функцию menu_print.
2. Жёстко опрашивать линии АЦП, прерывания таймеров и силовую часть для запуска программы заряда в фоновом режиме.
Поскольку микроконтроллер в момент автостарта резко перегружен этими параллельными задачами, функция вывода текста LCD_SendStrF1 банально не успевает прочитать код \2 из Flash-памяти в правильный микросекундный такт шины HD44780. Дисплей считывает вместо \2 «мусорный» адрес памяти, в котором у него по умолчанию намертво зашит китайский символ «Ы» [1.1]. При ручной смене режимов силовой блок молчит, процессор свободен, поэтому временные задержки (тайминги) отправки данных на дисплей соблюдаются идеально и буква рисуется красиво.
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

и к доработкам ЕЩЕ очень важных 2 момента :
1)
В режиме КАЧЕЛИ если "Ток вентилятора" в настройках установлен ниже 4,5 Ампер, то в цикл на доли сек включается Вентилятор , приходится поднимать настройку до 5 Ампер, чтобы избавиться от этого дерганья вентилятора. Лучше было бы на КАЧЕЛЯХ вентилятор программно не задействовать , 2 часа добивки с вентилятором бесполезны. Считаю "Ток зарядки" ниже 3 Ампер никак не греет систему. а ВОТ 6 ампер на протяжении 3-10 часов , это реально нагрев , потому 3 Ампера в настройках это золотая середина.
2)
В режиме "Блок Питания" и в режиме "Калибровка" система уязвима для КЗ (я так уже дважды восстанавливал первичку , постоянно выгорают исполнительные транзисторы MJE13009, пробивает их и пробивает один из С945 ШИМ-ки мгновенно, не спасает даже 2 Амперный предохранитель на сетевом входе). Очень важный момент программной доработки.
Встал на лапы
Сообщения: 104
Зарегистрирован: Пн май 06, 2024 08:17:49
Откуда: Катайск

Сообщение Nilas »

asbua02 писал(а): Вс окт 04, 2026 13:58:35 В других Прессетах (AGM, PB/CA, CA-CA) - качели гоняет исправно.
- Режим «Качели» *. Процесс заряда и разряда без нагрузки в течении установленного времени. Вход в
режим настройки установки времени долгим нажатием на кнопку «Выбор». Выход – коротким. Рекомендуемое
значение на ЗУ «Вымпел-55» 120 минут. Работает при установленном напряжении в меню «Настройки
параметров заряда» напряжения АКБ 12В или 6В.

asbua02 писал(а): Чт окт 08, 2026 08:43:24 на доли сек включается Вентилятор
В программе установлена задержка выключения в 2 минуты. T.е. после включения останавливается только через 2 минуты.
asbua02 писал(а): Чт окт 08, 2026 08:43:24 система уязвима для КЗ
Ренее писал,что скорость срабатывания программной защиты слишком мала из-за АЦП Atmeg-и. Надо делать в железе. На 300-ой странице есть схема.
asbua02 писал(а): Вс окт 04, 2026 10:46:10 сперва завышает питание
Исправлено. Сначала выставляет чуть пониже, затем стабилизирует.
asbua02 писал(а): Сб окт 03, 2026 13:32:41 "качеЫи" и "остаЫось"
Прошивка:
ZU_BP_ATMEGA16_lat.hex
(44.78 КБ) 15 скачиваний
Проверено только в протеусе.
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

asbua02 писал(а): Вс окт 04, 2026 13:58:35 и на прошлых прошивках Nilas не замечал особенность которую заметил на этой ZU_BP_ATMEGA16_lat.HEX, в режиме КАЛИБРОВКА " корректировки тока РАЗРЯДА" , напряжение которое возникает на клемах всего 0,9 Вольт (минимальное блока питания), теже лампы которые были нагрузкой для калибровки 6...7 Ампер, становтся слишком малой нагрузкой для точной Установки Тока 1,0...3,0 Ампер Разряда . Должна быть подача симулирующего АКБ напряжения , от 13....до 12 Вольт . Получается в прошивках Nilas программно процессор даже не задействует свой выход на TL494
тоже немаловажный пункт для настройки "ТОКА РАЗРЯДА" , который идет в программный рассчет емкости АКБ при токе 1Ампер, или 20 часовом в случае 60 АКБ - 3 Ампера.
Nilas писал(а): Чт окт 08, 2026 16:54:00- Режим «Качели» *. Процесс заряда и разряда без нагрузки в течении установленного времени. Вход в режим настройки установки времени долгим нажатием на кнопку «Выбор». Выход – коротким. Рекомендуемое
значение на ЗУ «Вымпел-55» 120 минут.Работает при установленном напряжении в меню «Настройки параметров заряда» напряжения АКБ 12В или 6В
Время установки КАЧЕЛЕЙ никак не связано с управлением базой транзистора, которую открывает процессор и подает ток на куллер.Во всех режимах кроме "ЗАРЯДА" куллер нать не нать .
ИИ проанализировал прошивку Nilas и если кратко написать его ответ , то "автор нагородил много условий чем запутал алгоритм работы своего же устройства в прессете USED, в других Прессетах у него все идеально" предлагая мне урезать программный код до условия при старте "Качели ВКЛ или ВЫКЛ". Без всяких условий АКБ ниже 45 Ач или выше, и т.п и т.д.
Nilas писал(а): Чт окт 08, 2026 16:54:00 Исправлен Блок Питания. Сначала выставляет чуть пониже, затем стабилизирует.
В последней прошивке "БАГ ЗАВЫШЕНИЯ до 0,6 Вольт" именно на низких значениях идет вплоть до 12 Вольт, только на 12 Вольтах идет нога в ногу (проверено мультиметром UNI-T в режиме МАКС и МИН )
И суть не в том чтобы при 12 Вольтах БЛОК ПИТАНИЯ сменой на +-0,1 Вольта не кидала вверх на +0,6 Вольта , а потом опускало до требуемого. При 12 Вольт данное отклонение вообще не критично на потребителя , а суть в том чтобы при малых значениях напряжений , например 1,5В, 2,5В, 3,0В , 3,4В, 5,0 Вольт - очень критично к этому БАГУ завышения , вплоть до повреждения устройства . Замечено : при КАЛИБРОВКЕ , установке в "0" (K=200) выставляя разный коэффициент ( а он у меня в моих условиях гуляет от 33 до 37 , при этом у меня прецизионные 1206 0,1% 18кОм и 2кОм) разное поведение блока питания (завышения напряжения БАГА) при разном к-те.
Nilas писал(а): Чт окт 08, 2026 16:54:00 "качеЫи" и "остаЫось" - исправлено
ИИ мне тоже подсказывал поставить временную задержку в проекте (выше) любезно предоставленном Nilas , которую как я понял по реакции СТАРТА с режима выкл добавил автор Nilas в последнюю прошивку ZU_BP_ATMEGA16_lat.hex
ноооооо "Тяжела и неказиста жизнь простого программиста" (С) :)) :)) :)) :)) :)) :)) :))
да, "качеЫи", "остаЫось, аккумуЫятор" - исчезли, вернее аккумуЫятор"замечается глазом как с Ы прыгает на Л доли сек ))))))))))))))))))))))))))))
но теперь на доли сек БАГ "РеПим работЛ" (буква Ы отображается как Л, буква Ж как П), потом тут же становится норм
))))))))))))))))))))))))))))))))
Вложения
буква Ы отображается как Л, буква Ж как П.JPEG
(36.33 КБ) 13 скачиваний
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

ОТВЕЧАЕТ ИИ :
Произошла классическая софтовая катастрофа в оперативной памяти (RAM) микроконтроллера ATmega16.
Давайте разберём этот лингвистический ребус на уровне двоичного кода, и вы увидите, как красиво всё сходится:

Магия двоичного кода: почему буквы подменились именно так?

Посмотрим на стандартную таблицу символов кириллицы (кодировку, которую используют русские дисплеи HD44780):
1. Буква «Ж» превратилась в «П»:
• Код буквы «Ж» = 0xC6 (в двоичном виде: 11000110)
• Код буквы «П» = 0xCF (в двоичном виде: 11001111)
• Что произошло: В байте установились в единицу три младших бита (биты 0, 1 и 3).
2. Буква «Ы» превратилась в «Л»:
• Код буквы «Ы» = 0xDB (в двоичном виде: 11011011)
• Код буквы «Л» = 0xEB (в двоичном виде: 11101011)
• Что произошло: Четвёртый бит байта (bit 4) изменился с 0 на 1.
Когда автор добавил задержку перед автостартом, это частично разгрузило процессор. Но в момент, когда программа всё-таки доходит до чтения EEPROM (read_eeprom), 16-битный буфер функции затирает соседний участок памяти (RAM).
В оперативной памяти ATmega16 переменная текстового буфера экрана (или массив строк) оказалась зажата рядом с ячейками, куда функция read_eeprom насильно впихивает двухбайтовые данные настроек. Из-за разницы типов данных (uint8_t структуры экрана и uint16_t функции чтения) произошло хаотичное замятие и перезапись отдельных битов памяти. В результате в словах «РЕЖИМ РАБОТЫ» точечно исказились именно те биты, которые превратили «Ж» в «П», а «Ы» в «Л».

Как это вылечить раз и навсегда в исходном коде?

Нужно изолировать память экрана от функции чтения EEPROM.
Есть два пути решения в коде:

Способ 1. Принудительное разделение переменных в RAM

Найдите в файле, где объявлены глобальные переменные (скорее всего, в начале menu.c или task.c), структуру настроек eep_ust и переменные экрана MenuSel / текстовые буферы.
• Чтобы компилятор не укладывал их в памяти вплотную друг к другу, добавьте между ними «буфер безопасности» — объявление любого ненужного массива, который примет удар затирания битов на себя.
• Пример:c
struct ust eep_ust;
uint8_t ram_buffer_safety[4]; // Этот массив заберёт на себя лишние биты от 16-битной функции
uint8_t MenuSel;
Используйте код с осторожностью.

Способ 2. Исправление вызова read_eeprom (Самый правильный)

Найдите в коде строчку, где вызывается чтение настроек при автостарте:
read_eeprom(adr_temp, eep_ust.ust_byte, UST_DATA_SIZE);
• Посмотрите, как объявлен второй аргумент в самой функции read_eeprom. Если функция требует строго указатель на 16-битный тип (uint16_t*), а автор подсовывает ей 8-битный массив (ust_byte), то принудительное приведение типов (uint16_t*) заставляет функцию писать в память чётное количество байт, округляя размер в большую сторону.
• Безопаснее всего переписать этот вызов так, чтобы данные считывались строго по одному байту в цикле for, тогда затирание соседних ячеек памяти RAM станет физически невозможным.
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Сб мар 07, 2026 21:00:25

Сообщение asbua02 »

Nilas писал(а): Чт окт 08, 2026 16:54:00
asbua02 писал(а): Чт окт 08, 2026 08:43:24 система уязвима для КЗ
Ренее писал,что скорость срабатывания программной защиты слишком мала из-за АЦП Atmeg-и. Надо делать в железе. На 300-ой странице есть схема.
странно что вы не сделали ПРОГРАММНУЮ блокировку КЗ по встроенному аналоговому компаратору самой ATmega16A.
PS у меня есть устройство , на ATmega8 которое успевает отследить КЗ Блока Питания 16 Вольт на 226Ампер не выжигая провода, а лишь слегка искря (простейший делитель напряжения от опорного и подачей его на пин контроллера, но важно заметить что "ШУНТ в минусе" )


В вашей схеме ШУНТ в плюсе!!!
Так как вы используете ногу PB3 (пин 4) для управления дисплеем , то в вашей программном коде нужно перенаправить инвертирующий вход компаратора на пин PA0 (пин 40).

Что меняется в подключении:

1. Выход дифференциального ОУ-вычитателя (например LM358, который измеряет ток на плюсовом шунте) заводится на пин PA0 (ADC0 / пин 40) микроконтроллера ATmega16A.
2. Опорное напряжение ( установка 10-25 А) подается на пин PB2 (AIN0 / пин 3).

Чтобы перенаправить инвертирующий вход компаратора на пин PA0, в регистре SFIOR нужно включить бит ACME (Analog Comparator Multiplexer Enable), а в регистре ADMUX выбрать канал 000 (ADC0). При этом сам модуль АЦП (ADEN в ADCSRA) должен быть выключен, чтобы освободить мультиплексор для компаратора.

#include <avr/io.h>
#include <avr/interrupt.h>

void comparator_protection_init(void) {
// 1. Конфигурируем порты
DDRB &= ~(1 << PB2); // PB2 (AIN0) - вход для опорного напряжения
DDRA &= ~(1 << PA0); // PA0 (ADC0) - быстрый вход для датчика тока

// 2. Отключаем АЦП, чтобы освободить мультиплексор для компаратора
ADCSRA &= ~(1 << ADEN);

// 3. Настраиваем мультиплексор на канал ADC0 (PA0)
// Очищаем биты MUX4..MUX0 в регистре ADMUX, чтобы выбрать канал 0 (ADC0)
ADMUX &= ~((1 << MUX4)|(1 << MUX3)|(1 << MUX2)|(1 << MUX1)|(1 << MUX0));

// 4. Разрешаем мультиплексирование входов компаратора
SFIOR |= (1 << ACME); // Теперь вместо AIN1 (PB3) подключен выбранный канал ADC0 (PA0)

// 5. Включаем компаратор и настраиваем прерывание
// ACIE = 1 (Разрешаем прерывание)
// ACIS1 = 1, ACIS0 = 1 (Прерывание по превышению уровня - Rising Edge)
ACSR = (1 << ACIE) | (1 << ACIS1) | (1 << ACIS0);

sei(); // Глобально разрешаем прерывания
}

// Вектор прерывания срабатывает мгновенно при превышении тока
ISR(ANA_COMP_vect) {
// Мгновенно останавливаем Timer1, который выдает ШИМ на управление
TCCR1A = 0;
TCCR1B = 0;

// Принудительно сажаем управляющий пин PD4 на ноль
PORTD &= ~(1 << PD4);

// Защитная петля (Блокировка устройства)
while(1) {
// Транзисторы первички (MJE13009) закрыты и спасены
}
}


PS всего один копеечный чип LM358 и 4 резистора
обеспечит скорость реакции схемы на КЗ в пределах 1 микросекунды
Вложения
Защита от КЗ на LM358 - TL494 - ATmega16A.png
(123.98 КБ) 30 скачиваний
Ответить

Вернуться в «Статьи»