Электротранспорт
Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск    

Реклама:

 Контроллер литиевого аккумулятора детского авто на attiny13

Страницы: 1Вниз

Автор Тема: Контроллер литиевого аккумулятора детского авто на attiny13  (Прочитано 421 раз)

0 Пользователи и 1 Гость просматривают эту тему.

ILYANOV

  • Неравнодушный
  • **
  • Репутация: 5
  • Сообщений: 197
  • Россия, Самара
  • Ездю на батарейках!
  • Оффлайн Оффлайн
    • Награды
Здравствуйте.
Выкладываю свою разработку  для своего детского авто.

ВНИМАНИЕ это не полноценный контроллер который смотрит за состоянием всех банок и занимается зарядом и контролирует разряд и прочее.
Это простой контроллер который позволит вам не разряжать аккумулятор до критического состояния, смотреть примерно процент заряда и отрубать нагрузку при низком напряжении.
Сразу предупреждаю не надо писать что так не правильно и прочее.
Это устройство для тех кто понимает для чего это, как оно работает, и понимает все преимущества и недостатки этой схемы.


И так легенда такова. Повторюсь. делаем батарею из б/у аккумуляторов, отсортировали с саморазрядом и замерили ёмкость, скомпоновали по ёмкости например я делаю 5S18P

Делаем контрольный разряд, смотрим разбаланс, и ищем самую слабую - на неё то мы и будем ориентироваться.

Схема

Схема работает так:
Когда включаем двойной тумблер, на стабилитроне появляется напряжение 12 вольт которое открывает силовой транзистор. И на нагрузке появляется напряжение.
При включении также на АЦП микроконтроллера появляется напряжение с нашей "слабой" банки которую нужно обязательно поставить вниз.
Микроконтроллер измеряет напряжение.
При 4,2 вольта считаем за 100 процентов заряда. 3,0 вольта за 0 процентов
Отключение нагрузки при 2,8 вольта -  сразу отвечаю почему такое низкое напряжение. Уже при тесте на лампочках я заметил особенность что при достижении 3,00 вольт на банке. При отключении нагрузки напряжение сразу поднимается, аккумулятор как бы само восстанавливается. и не рационально отключать при 3.00 вольт.
По этому я решил что пусть отключение под нагрузкой будет при 2,8
Кто захочет другое напряжение может поставить в программе любое.
Транзистор IRFB7437PBF N-канал 40В 195А 2.0мОм, [TO-220AB] на токе 40 ампер будет выделять 3,2 ватта.
Когда срабатывает защита, транзистор BC547 замыкает стабилитрон на минус. На затворе силового транзистора появляется 0 и он закрывается отключая нагрузку от батареи.
Вентилятор поставил на всякий случай, вдруг при зарядке или езде будет греться.

Всё сделано навесным монтажом, некогда мне травить платы и красоту наводить, Главное всё работает и я приготовился к сезону
И напомню какая получилась батарея - 18,5 вольт 33Ач  где то 600ватчас, вес 4,6кг
специально ставил не самые хорошие банки(хорошие куда нибудь применю ещё), а ставил среднячки
Внимание если кто будет повторять. То сначала снимаем фьюз CKdiV8(делитель частоты на 8 )потом программируем и проверяем что всё работает и напряжение показывает. ТОЛЬКО после этого отключаем Ресет и делаем эту ногу портом PB5. После этого микроконтроллер не возможно будет перепрограммировать. Только высоковольтным программатором или фьюздоктором.
Дисплей любой с общим катодом. 4 разрядами и 12 ногами.
распиновка обычно вот такая

например вот такой модуль подойдет CA56-21EWA 4х7сегм. красный ОА 6.4мКд 14,2мм  http://www.voltmaster-samara.ru/products/ca56-21ewa-4h7segm-krasnyj-oa-64mkd-142mm
Схема(плата) модуля с индикатором
тут стоят два сдвиговых регистра 74HC595D https://www.chipdip.ru/product/74hc595d стоят по 10 рублей корпус SO16

Прошивка плата схема и проект в Atmel Studio 6.1 https://cloud.mail.ru/public/MHeh/omLotLNkH
Всё - можно ругать :-D :-D :-D
« Последнее редактирование: 30 Июн 2018 в 00:18 от ILYANOV »

Сообщение понравилось: kor, Серик

Alex_mac

  • Старожил
  • *****
  • Репутация: 2
  • Сообщений: 1042
  • Пока Москва
  • Ездю на батарейках!
  • Оффлайн Оффлайн
    • Награды
отключение нагрузки термоконтактом не оч подходит. по идее ограничить бы мощность при 60-70 град, а при 80-90 тогда рубить напругу. и напряжением моргать при достижении критических параметров.
ну и не стоит на одном замерять напругу- при разном внутреннем сопротивлении ячейки ведут себя непредсказуемо. лучше бы скопировать систему замера напряжения с аймакса например.

ILYANOV

  • Неравнодушный
  • **
  • Репутация: 5
  • Сообщений: 197
  • Россия, Самара
  • Ездю на батарейках!
  • Оффлайн Оффлайн
    • Награды
отключение нагрузки термоконтактом не оч подходит. по идее ограничить бы мощность при 60-70 град, а при 80-90 тогда рубить напругу. и напряжением моргать при достижении критических параметров.
ну и не стоит на одном замерять напругу- при разном внутреннем сопротивлении ячейки ведут себя непредсказуемо. лучше бы скопировать систему замера напряжения с аймакса например.
1. Опыт показал - батарея совсем не греется, я ни разу не обнаруживал что она теплее окружающей среды
2. путь измерения на напряжения на самой слабой банке правильный (для меня) ( я её специально сделал чуть слабее остальных) сборки идут ноздря в ноздрю что называется
меня такая точность ВПОЛНЕ устраивает. До минимума разряжал только на тесте с лампочками.
3. Я ни разу не разряжал ниже 60% (не получалось), просто за одно гулянье 1-2 часа  мы тратим в среднем около 15%. И я заряжал просто по привычке.
За день (даже за два) искатать всю батарею для нас не реально.

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

Авто у меня получилось экономичное.
Легкое, колёса слики, задняя ось не заблокирована. Водитель лёгкий.
по этому и расход низкий

Alex_mac

  • Старожил
  • *****
  • Репутация: 2
  • Сообщений: 1042
  • Пока Москва
  • Ездю на батарейках!
  • Оффлайн Оффлайн
    • Награды
технически проще сделать два уровня по температуре- не будет обрубания питания резкого.
плюс батареи все же имеют деградацию- меняют параметры. но это заметно после второй тысячи элементов. а на БУ иногда быстрее.
плюс сортировать их надо с учетом вн сопротивления.  есть такой друг у меня. лень было перемерять каждый элемент. загорелись они в квартире. жена с тещей все ему припомнили.
нагрузка в 10 ампер для новых то элементов достаточно большая, когда это может во что то вылиться - неизвестно. иногда требования надежности диктуют свои правила.
ну в общем то нас учили хорошо по советским наукам и неземным правилам. вас видимо эффективные менеджеры.

kor

  • Наш человек
  • ***
  • Репутация: 4
  • Сообщений: 350
  • г. Ижевск
  • Электросамокат Xiaomi mijia m365
  • Оффлайн Оффлайн
    • Награды
Оригинальное решение - внизу поставить сборку аккумуляторов самую слабую и контролировать только ее напряжение. Схема здорово упрощается. Мне понравилась. Можно еще платок балансирных с али купить за недорого и подцепить на все элементы батареи.

ILYANOV

  • Неравнодушный
  • **
  • Репутация: 5
  • Сообщений: 197
  • Россия, Самара
  • Ездю на батарейках!
  • Оффлайн Оффлайн
    • Награды
Оригинальное решение - внизу поставить сборку аккумуляторов самую слабую и контролировать только ее напряжение. Схема здорово упрощается. Мне понравилась. Можно еще платок балансирных с али купить за недорого и подцепить на все элементы батареи.
Спасибо.
Можно и балансиры поставить, но лично у меня нет необходимости в этом - я заряжаю вот такой зарядкой.
 Контроллер литиевого аккумулятора детского авто на attiny13
Она мне показывает напряжение на банках и общий заряд залитый в батарею. Самое большее 15Ач заливал
мне удобно и зарядка 6 ампер

i

  • Администратор
  • Старожил
  • *
  • Репутация: 267
  • Сообщений: 3679
  • Иваново
  • Оффлайн Оффлайн
    • Награды
отключаем Ресет и делаем эту ногу портом PB5. После этого микроконтроллер не возможно будет перепрограммировать.
Если в прошивке есть ошибки (а они там есть) или появиться новая идея, то апгрейд заменой тиньки -  не очень хорошая идея.
Этого можно избежать:
1. использовать Reset для переключения режимов, есть возможно узнать в проге, что именно вызвало сброс, вкл питания или нажатие кнопки "режим", тем более, что она уже подключена туда.
2. использовать пин1 как ADC0, для измерения напряжения ячейки, главное чтобы это напряжение не опускалось ниже Vcc/2.

ILYANOV

  • Неравнодушный
  • **
  • Репутация: 5
  • Сообщений: 197
  • Россия, Самара
  • Ездю на батарейках!
  • Оффлайн Оффлайн
    • Награды
Если в прошивке есть ошибки (а они там есть)Какие ошибки? или появиться новая идея, то апгрейд заменой тиньки -  не очень хорошая идея.
Если появится новая идея то для этого применяют фузебит доктор. И вообще то сначала тестируют на макете а в готовое устройство заливают уже оттестированную прошивку.
Этого можно избежать:
1. использовать Reset для переключения режимов, есть возможно узнать в проге, что именно вызвало сброс, вкл питания или нажатие кнопки "режим", тем более, что она уже подключена туда. У меня никаких сбросов не происходит
2. использовать пин1 как ADC0, для измерения напряжения ячейки, главное чтобы это напряжение не опускалось ниже Vcc/2.
а вот это плохое предложение - которое чревато неожиданными сюрпризами в любой самый неподходящий момент
Эта программа нужна была очень срочно - написана за вечер , потому что собирал батарею и нужно уже было кататься, сами понимаете
Сделал по быстрому, конечно решение сделать ресет входом не самое лучшее решение - но переходить на более жирный контроллер мне не хотелось.
По сути эта кнопка не нужна, смотреть напряжение в вольтах нужно только во время настройки, а потом обычно на проценты смотрю.
Самое правильное решение это посадить эту кнопку на 2 ногу. А в программе указать что если на АЦП ноль то показываем вольты из памяти, а не проценты.
И тогда 1 нога освободится.
Всё сразу не предусмотришь

i

  • Администратор
  • Старожил
  • *
  • Репутация: 267
  • Сообщений: 3679
  • Иваново
  • Оффлайн Оффлайн
    • Награды
Эта программа нужна была очень срочно - написана за вечер
Какие ошибки?
Разве этого не достаточно? Не знаю как Вы, а я всегда "портачу" в первых версиях, то тут забыл, то это работает не так как я думал... да мало ли.
для этого применяют фузебит доктор
У меня нет этой штуки, потому что нет необходимости (видел в инете, да поленился делать). У Вас он видимо есть, поэтому Вы так и сделали... Ваше право.
Возможно я ошибаюсь, но вроде для "доктора" чип должен быть свободен от внешних цепей, то есть его нужно изымать из платы.

У меня фузы шьются прямо из листинга, например так:
\ ==================== фузы и локи ===================================================
 FUSE{ CKDIV8 }=1    \ RC  8МГц
 FUSE{ bodlevel0 EESAVE }=0 \ запрограммировать 1v8 напряжение сброса, защита EEPROM от стирания

 lock{ lb1 lb2 }=0  \ чип будет залочен
\ lock{ lb1 lb2 }=1  \ чип будет разлочен

Сделал так специально, что бы не путаться в них при прошивке десятков чипов. При заливке программатор сравнивает фузы чипа с требуемыми и, либо их изменяет в нужном ключе, либо нет.  Получается очень удобно.
Я могу так делать потому, что использую самописный программатор и компилятор. Еще у меня в запасе есть бутлоадер, тоже самопал.

Вы имеете полное право не прислушиваться к моим советам и поступать так, как считаете нужным.
Удачи!

ILYANOV

  • Неравнодушный
  • **
  • Репутация: 5
  • Сообщений: 197
  • Россия, Самара
  • Ездю на батарейках!
  • Оффлайн Оффлайн
    • Награды
Разве этого не достаточно? Не знаю как Вы, а я всегда "портачу" в первых версиях, то тут забыл, то это работает не так как я думал... да мало ли.
Я обычно отлаживаю одну часть программы которая без нажатия на кнопку.
Потом отлаживаю вторую часть программы которая должна быть с нажатой кнопкой которая на ресете висит. (но внутри делаю маркер какую часть программы показывать.
а потом делаю этот марке зависимым от кнопки и отключаю ресет.
И - вуаля обе части программы отлажены


У меня нет этой штуки, потому что нет необходимости (видел в инете, да поленился делать). У Вас он видимо есть, поэтому Вы так и сделали... Ваше право.
фузебит доктор экономит деньги, когда накопилось значительное количество неработающих контроллеров -сделал и вернул их к жизни
и должен быть у каждого разработчика, потому что заблокировать можно не только переводя ресет в пин

Возможно я ошибаюсь, но вроде для "доктора" чип должен быть свободен от внешних цепей, то есть его нужно изымать из платы.
да, контроллер у меня на панельке
У меня фузы шьются прямо из листинга, например так:
\ ==================== фузы и локи ===================================================
 FUSE{ CKDIV8 }=1    \ RC  8МГц
 FUSE{ bodlevel0 EESAVE }=0 \ запрограммировать 1v8 напряжение сброса, защита EEPROM от стирания

 lock{ lb1 lb2 }=0  \ чип будет залочен
\ lock{ lb1 lb2 }=1  \ чип будет разлочен

Сделал так специально, что бы не путаться в них при прошивке десятков чипов. При заливке программатор сравнивает фузы чипа с требуемыми и, либо их изменяет в нужном ключе, либо нет.  Получается очень удобно.
Я могу так делать потому, что использую самописный программатор и компилятор. Еще у меня в запасе есть бутлоадер, тоже самопал.
Ну мне пока далеко до самопальных программаторов  :-)
Вы имеете полное право не прислушиваться к моим советам и поступать так, как считаете нужным.
Удачи!
Спасибо. на самом деле там памяти в притык ещё - занято 95% по этому особо не разгуляешься объединением ног
Это устройство из разряда - сделал - работает и забыл
Но может быть когда нибудь потребуется это устройство, то освобожу ресет  :kidding:

Страницы: 1Вверх
 

Помощь форуму | Отказ от ответственности | Новая версия форума
©, Форум электротранспорта, electrotransport.ru, 2007—2018.
Копирование материалов возможно только с согласия правообладателя.

Размер занимаемой памяти: 6 мегабайт.
Страница сгенерирована за 0.182 секунд. Запросов: 77.