Блоки питания, преобразователи напряжения, UPS'ы - это здесь :)
Ответить

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Вт май 22, 2018 16:15:19

флаги прерываний выставляются ВСЕГДА. но если конкретное прерывание запрещено, оно не вызовется.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Вс июн 17, 2018 20:22:43

Собрал данное устройство .Подключаю АК.батарею и ток отображается 00.6А.Все настройки произвел по описанию.Автор подскажите что не так с lm358.Перем.рез.по току уменьшить не удаётся.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Вс июн 24, 2018 19:05:45

Собрал данное устройство .Подключаю АК.батарею и ток отображается 00.6А.Все настройки произвел по описанию.Автор подскажите что не так с lm358.Перем.рез.по току уменьшить не удаётся.

Проверяй всю цепь измерения тока. При подключенной батарее без начала заряда ток всегда 0.0А, и как не крути подстроечник ничего не измениться, через шунт ток не течёт. А АЦП у тебя меряет какое-то падение на шунте, по сути это заряд не идет, а падение напряжения есть, т.е. вся цепь измерения неисправна. Если плату разводил сам, то может выводы контроллера перепутал. Может тиристор приоткрывается, КЗ (т.е. сопля) где-то между проводниками. Может не работаем преобразование -5В (что скорее всего). Гадать можно долго, проверяй железо.

Добавлено after 50 minutes 23 seconds:
Всем привет.
Пошел маленький дождишко, лодырям отдышка. Вот и у меня появилось время выложить свой вклад в общее дело.
Выкладываю исходник на С. Функционал полностью исходный + небольшие доработки (для себя, а там может кому и понравится).
Аппаратная часть идентична авторской, за одним исключением. У автора LCD 0802 (судя по фото и по исходнику), т.е. на 8 символов в строке, а у меня классический 1602, т.е. 16 символов в строке. Соответственно под него и сделано. У него 2 недостатка: 1-й - нет подсветки, что не сильно критично (поэтому на плате поставил 78l05, вместо 7805, такой мощный не нужен), 2-й - в нет кирилицы, поэтому все сообщения на аглицком. В некоторых словах сознательно сделаны ошибки и выброшены некоторые вспомогательные глаголы. Всё для того, что бы вместить в длину строки LCD.
Если все же кому нужно будет моё творение на LCD 0802 могу допилить.
Теперь о том, что дополнено:
1. У нас частенько выключают свет. Поэтому если такое случилось, после включения ЗУ перейдет в тот же режим в котором оно выключилось. Если был заряд, то с тем током, который был выставлен энкодером.
Если режим хранения, то он продолжится. Если был в режиме какой-либо ошибки, то сообщит что до выключения была ошибка, и будет ждать когда снимут клеммы с батареи.
2. Если подключаемая батарея убита и у неё напряжение меньше 9В, то заряжать не даст, сообщив об этом. Но если все же хочется заряжать такую батарею, то перед включением 220в удерживайте нажатым энкодер до первого сообщения на экране, блокировка будет отключена.
3. Если при какой-либо внештатной ситуации сработает WDT, что при нормальной работе не должно происходить в принципе, высветится сообщение об этом (типа BSOD в windows) и будет ждать когда снимут клеммы с батареи. Я долго думал сообщать или продолжить прерванный режим, не мог решить как поступить, выбрал сообщение.
Если у кого есть кирилица в LCD можете загрузить прошивку для неё.
Для настройки можно временно скомпилить и зашить пока настаивается с разкомментированным определением #define _TUNE_ADC_, это даёт следующее. Значение напряжения и тока выводятся не преобразованными в В и А, а в значениях измеренными АЦП. Так можно точнее настроить. Например: измеряем напряжение мультиметром, допустим 12.26В () и переводим в значение АЦП = ЦЕЛОЕ(12.26 * 100 / 6) = 204. Для тока формула та же. После настройки зашиваем рабочую прошивку. Если измерение тестером до десятых, все это не имеет смысла делать.
Язык сообщений выбираем закомментировано или нет определение #define _RU_
Если разводке платы перепутали ноги энкодера (как я например), можно разрезать дорожки и запаять проводами, а можно скомрилить с разкомментированным определением #define _SWAP_ENCODER_BITS_.

Написано для кварца 8МГц, если ставите другой, то в определении зайте свою частоту кварца #define F_CPU 8000000UL. Все задержки будут пересчитаны под неё.

Ну и для понтов (как же без них), в процессе зарядки выводится прогресс-бар напряжения. Шкала растянутая от 9В до 14.4В.


Исходник на С, и прошивки для EN и RU прилагаю. Компилил в AtmelStudio 7.0, но думаю и в 6 и в 5 скомпилится без ошибок.
Фьюзы те же, как у автора.
Если что не так пишите поправлю или подскажу.
Вложения
z_m8_44780_1602.7z
(21.95 KiB) Скачиваний: 795

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Ср июн 27, 2018 07:53:58

Уважаемый alex_iag у Вас актуальные доработки, у нас в гаражах отключают свет с 23:00 до 5:00, и делаю на индикаторе 0802 и хотелось что-бы вы допилили для него. И вы делали на плате от автора или на своей.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Ср июн 27, 2018 09:02:50

Спасибо за оценку.
Плату разводил сам для себя. У меня контакты индикатора в один ряд снизу (типа такого https://ru.aliexpress.com/item/1PCS-LCD ... autifyAB=0), контроллер в корпусе DIP28, поэтому разъём программирования не ставил, мс 7660 тоже в корпусе DIP (такую привезли под заказ). Реле вынес на плату с маломощным трансом, не люблю, когда на плате, которую берешь свободно руками присутствует 220В (брр от ударов шерсть дыбом). Если есть желание, могу выложить.
Хорошо, допилю на 0802, но необходимо немного времени. По готовности выложу.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Ср июн 27, 2018 09:44:22

Уважаемый alex_iag! Платой поделитесь? Думаю многие присоединятся к просьбе... Спасибо!

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Ср июн 27, 2018 14:06:57

alex_iag исходя из вашей ссылки на индикатор расположение выводов сверху. Присоединяюсь к просьбе vvoleg выложите пожалуйста свои платы. Ну а индикатор можно и поменять, если будут какие нибудь доработки можно попробовать перевести в I2C, освободятся контакты МК (возможно для дополнительных кнопок) хотя мне зарядное понравилось из-за своей простоты. Есть собранное зарядное и БП от ока275, но иногда надо попроще.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Ср июн 27, 2018 21:44:34

Я честно не особо присматривался к картинке которую привел. Он похож. У меня контакты расположены подобным образом, только вдоль нижнего края с левой стороны если смотреть на лицевую сторону. Вернусь домой плату выложу.

Добавлено after 6 hours 16 minutes 5 seconds:
Прилагаю свою плату, вернее набор плат. Все платы заточены под элементы, которые у меня нашлись (на платах UPSов, принтеров, мониторов и прочего) или привез магазин по заказу, то и поставил.
Шунт сделал из 10 резисторов 1Вт, увы других не было, и smd тоже. Т.к. подсветки в LCD нет, то установлен 78l05.
Плата с микроконтроллером нарисована исходя из того, что верхним принят слой где smd элементы, а слой с микроконтроллером, энкодером, LCD и прочим назначен нижним.
Это 2-й вариант платы с учетом ошибок, которые я сделал делаю своё зарядное. В ней исправлены все допущенные ошибки.

По мимо этого дополнены следующие элементы:
1. Параллельно С8 установлен конденсатор на 0,1мкф
2. на ноги энкодера А,В,2 также добавлены конденсаторы на 0,06 - 0,1мкф для уменьшения дребезга контактов.
Выполнено в SprintLayout 6.0, 5-й его на прочтет, а 6-й в 5-й не сохраняет. Для этого прилагаю viwer для SL6, он свободный. Сам SL6 здесь выкладывать не буду, сочтут как распространителя пиратского ПО. Поэтому либо скачайте на просторах интернета либо выложу куда скажите.
Вложения
фоточки.7z
Фотки платы
(529.92 KiB) Скачиваний: 998
Sprint-Layout60_Viewer.7z
(891.26 KiB) Скачиваний: 723
Зарядное_m8_44780.7z
Сама плата
(71.31 KiB) Скачиваний: 1063

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Чт июн 28, 2018 10:34:49

alex_iag спасибо за платы и фотографии, у меня пару штук 0802 валяются без дела поэтому и сделать хочу на них.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Пт июн 29, 2018 19:30:25

Вот и закончены доработки для 0802. Прилагаю к этому посту следующие прошивки:
1 - Zaryadnoe_m8_44780_en1602.hex и Zaryadnoe_m8_44780_en0802.hex для сообщений на аглицком
2 - Zaryadnoe_m8_44780_ru1602.hex и Zaryadnoe_m8_44780_ru0802.hex для сообщений на русском.
Соответственно выбирайте 1602 или 0802.
Сообщения на русском выводятся согласно следующей кодировке (вреде бы она основная для русифицированных LCD):
Изображение

Теперь немного ещё о плате. На ней есть такое место
Изображение
это если D10 не получится найти в smd корпусе, то можно впаять в стеклянном, для этого и предусмотрены отверстия с контактами.
Перемычка на индуктивности создана только для тестирования связей в SprintLayout, в железе она не нужна.

С русской кодировкой не проверял в железе, только в отладчике, по причине отсутствия такого LCD у меня.
Вложения
Zaryadnoe_m8_44780_ru0802.hex
(12.84 KiB) Скачиваний: 697
Zaryadnoe_m8_44780_ru1602.hex
(13.12 KiB) Скачиваний: 733
Zaryadnoe_m8_44780_en0802.hex
(12.49 KiB) Скачиваний: 641
Zaryadnoe_m8_44780_en1602.hex
(12.9 KiB) Скачиваний: 494

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сб июн 30, 2018 17:32:51

Сотоварищи. При доработке на 0802 я допустил ошибку в логику вывода сообщений и при тестировании не заметил. При выключении зарядки (задав ток =0) зарядка оканчивалась, но не выводилось сообщение.
Ошибку исправил. Исправленные прошивки прилагаю.
В качестве бонуса также прилагаю прошивки для эмуляции русских букв на LCD в котором русского шрифта нет. У меня такой и сообщения на аглицком меня малость не удовлетворяли. Вот и запилил.
Из минусов такой эмуляции:
1 - на экране не более 8 символов для эмуляции не совпадающих по виду а аглицкими, ели больше, то вместо буквы выводится *
2 - только заглавные буквы
3 - от прогресс-бара в 1602 пришлось отказаться (он также эмулируется, а места в LCD нет)
Прошивки в архивах по группам на 1602 и 0802
Вложения
1602.7z
(9.02 KiB) Скачиваний: 594
0802.7z
(8.74 KiB) Скачиваний: 452

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Сб июн 30, 2018 18:50:53

alex_iag писал(а):на экране не более 8 символов для эмуляции не совпадающих по виду а аглицкими, ели больше, то вместо буквы выводится *
нужно перед каждым выводом заново записывать в графическую память нужные буквы.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Вс июл 01, 2018 12:35:32

Да так-то и делается. После очистки буфер эмуляции очищается. При выводе, если не совпадает по начертанию с латиницей, то заносим в буфер эмуляции. Но беда в том, что в общем эмулировать нужно 19 букв, а буфер максимум 8. Вот поэтому, если на экране нужно отобразить одновременно белее 8 эмулированных букв, то они выводятся *. Благо среди них много не часто используемых, типа ПЮЪЬ.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Вс июл 01, 2018 13:22:38

я же сказал: перед выводом заново записывать буквы в графическую память.
а по очереди можно записать хоть 100500 букв, а не только 19...
записал нужные - вывел. записал следующие нужные - опять вывел. и так сколько угодно букв выведешь.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Вс июл 01, 2018 15:23:38

Неправда Ваша.
Провел эксперимент, ещё раз скурил datasheet. Мои утверждения подтвердились. И в протеусе и в железе.
Код символа выводимого на экран хранится в DDRAM, а то как он выглядит хранится в CGROM и это эти данные нельзя изменить. Для нас доступны только 8 ячеек CGRAM. Содержимое экрана динамически обновляется. Как только мы заменим данные о виде символа в CGRAM он сразу изменит своё начертание на экране.
Поэтому нельзя отобразить ОДНОВРЕМЕННО более 8 своих символов. Очистил экран, отображай другие, которые актуальны для нового сообщения.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Вс июл 01, 2018 15:39:19

твоя неправда.
твои 8 символов хранятся в CGRAM. и к CGROM они никакого отношения не имеют.
и в CGRAM ты эти 8 символов можешь записывать сколько угодно раз.
более того, даже не обязательно использовать все 8 записываемых символов в CGRAM. вполне достаточно ОДНОГО программируемого символа.
и никто не мешает при динамическом обновлении экрана сначала записать ОДИН символ в CGRAM, потом его вывести, потом записать следующий, опять его вывести, и так до бесконечности...

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Вс июл 01, 2018 16:21:34

Возможно мы друг друга не понимаем, ходим вокруг одного дома, но каждый со своей стороны.
Давай так.
1 - Для кода символа 0 заполняем CGRAM (как он будет выглядеть, допустим' Б'). Выводим в позицию 0,0 код символ с кодом 0.
2 - Символ 'Б' на экране видим. ОК
3 - Для кода символа 0 заново заполняем CGRAM с кодом символа 'Г'. Ничего на экран не выводим, но что видим?
По твоему в позиции 0,0 будет отображена 'Б', а по моему 'Г'. Отображаемый символ поменялся, а мы ничего на экран не выводили.
Запись в ячейку для символа 8, заменяет данные для символа 0 и т.д.
Все это проверено в железе. Можешь проверить или поверь на слово.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Вс июл 01, 2018 18:56:09

alex_iag писал(а):3 - Для кода символа 0 заново заполняем CGRAM с кодом символа 'Г'. Ничего на экран не выводим, но что видим?
если ничего не выводим, то на экране остается "Б".
операция вывода перемещает коды символа из CGRAM в DDRAM. а без вывода символа "Г" в DDRAM остался символ "Б".
сам поверь или проверь...

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Вс июл 01, 2018 19:56:32

Только я прежде чем написать предыдущий пост набросал код и проверил его в железе. Результат проверки я там изложил. А там хочешь верь, а хочешь считай по своему.
Но мне кажется, что Вы неверно понимаете как отображаются символы на экране. В DDRAM только коды символов, а в CGRAM и CGROM то, как они выглядят на экране. Из CGRAM в DDRAM НИЧЕГО НЕ ПЕРЕНОСИТСЯ. CGRAM это просто знакогенератор, описание внешнего облика символа для соответствующего кода символа находящегося в DDRAM.
Если бы было так просто, то зачем выпускать с разными кодировками. Загнал свою и пользуйся. Ан нет, только то, что производитель залил, то и есть. Ну для утешения маленькая лазейка для своих нужд.

Ну чтож пусть каждый останется при своём мнении.

Re: ЗУ для автомобильных аккумуляторов на Atmega8

Пн июл 02, 2018 06:58:46

согласен, я был не прав. давно с этим экраном не работал. забыл, что в DDRAM хранятся только номера символов, а не их полные коды.
прошу извинения.
но все равно все 19 русских букв одновременно не нужны. поэтому в другом состоянии экрана (устройства) можно сначала запрограммировать другие 8 букв, а потом их вывести.
я не знаю всех состояний экрана в твоем устройстве, поэтому я не знаю, сколько таких русских букв нужно тебе одновременно...
Ответить