| Источники питания и свет Актуальные вопросы и ответы по источникам питания, световому оборудованию. |
Простой четырёхканальный зарядник на микропроцессоре PIC16F876
13.12.2010, 10:56
|
|
|
Частый гость
Регистрация: 15.06.2006
Сообщений: 47
Сказал спасибо: 14
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Простой четырёхканальный зарядник на микропроцессоре PIC16F876
https://kazus.run/shemes/showpage/0/835/1.html Помогите разобраться:
1."После включения питания ключ на транзисторе VT1 замкнут. Если аккумуляторы не включены в зарядку, то напряжение подаваемое на вход АЦП через резисторный делитель больше 13,5В. "- откуда при таком делителе будет 13.5В? Почему диод светится-на RC0 в программе нулевой потенциал вначале?
2."Если подключить аккумуляторы, то напряжение на входе делителя упадет ниже 13.5В. Начался процесс зарядки и светодиод начнет мигать с интервалом раз в 2с". Мерцание диода выполнено программно - подача "0" или "1" на RC0. Причем тут падение 13,5 В?
3.Как определяется: подключены аккумуляторы или нет? Что смотрим, что впало напряжение, подаваемое на вход RA0, используя АЦП - в тексте программы я этого не могу найти?
Спасибо!
Последний раз редактировалось slv61; 13.12.2010 в 13:37.
|
|
|
|
13.12.2010, 12:14
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876
(24/(1,2+3)*1,2=6,91 Действительно ниже. Да и вообще - плохонький он - заряжает повышенным током, а температуру банок не контролирует, ориентируется только на dv/dt, что неприемлемо для батареи... И кипятильник неплохой. Более 50% энергии в тепло... Нормальный современный зарядник должен контролировать и ориентироваться на 4 параметра минимум(для единичных аккумуляторов). Соберите что-нибудь поприличней.
|
|
|
|
Сказали "Спасибо" omercury
|
|
|
13.12.2010, 12:36
|
|
|
Частый гость
Регистрация: 15.06.2006
Сообщений: 47
Сказал спасибо: 14
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876
Хочется с этой схемой разобраться...Может кто-то делал...omercury, Вы правы - напряжение 6,39В
|
|
|
|
13.12.2010, 13:52
|
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876
Сообщение от slv61
|
|
Хочется с этой схемой разобраться...Может кто-то делал...omercury, Вы правы - напряжение 6,39В
|
|
Цитата:
|
|
напряжение перед делителем будет больше 13.5В
|
Имеется ввиду перед делителем 3к/1.2к на свободных контактах для батареи при отсутствии оной. Видимо, эта величина 13.5В есть константа в программе, сравнение с которой позволяет определить наличие подключения батареи. После делитеоя эта константа - напряжение на входе АЦП равна 3.86В. Если измерение АЦП больше 3.86 - батарея отсутствует. Причём максимальное измеряемое напряжение есть 5.00В Всё, что выше, будет ограничено защитными диодами на входе МК.
Если Вам не нужно заряжать 8 аккумуляторов за один раз, то есть смысл уменьшить 24В питание до нужного напряжения и соответственно изменить делитель. Например, для 4 аккумов питание 12В, константа 13.5В/2=6.75В, делитель получается 1к/1.2к. То есть заменяете 3к на 1к в делителе и пользуете программу без изменений.
|
|
|
|
Сказали "Спасибо" Yurkin2007
|
|
|
13.12.2010, 14:35
|
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876
Сообщение от slv61
|
Что смотрим, что впало напряжение, подаваемое на вход RA0, используя АЦП - в тексте программы я этого не могу найти?
Спасибо!
|
Сравнение напряжения батареи с константой происходит здесь
|
Цитата:
|
RUN_CHAHD ; ПОДПРОГРАММА ОПРЕДЕЛЕНИЯ СТАРТА И СТОПА ЗАРЯДКИ
BTFSS CHAND,7 ; ПРОВЕРИМ, БЫЛО ЛИ СДЕЛАНО ПЕРВОЕ ИЗМЕРЕНИЕ
RETURN
;********************************
;****** 0-КАНАЛ
MOVLW 3
XORWF CHANEL_0H,0
BTFSS STATUS,Z
GOTO ON_CH0
; СТАРШИЙ БИТ РАЗРЯДА АЦП 3! - НОРМА. ПРОВЕРИМ МЛАДШИЙ РАЗРЯД
MOVLW 10
SUBWF CHANEL_0L,0
BTFSC STATUS,C ; ЕСЛИ РЕЗУЛЬТАТ ОТРИЦАТЕЛЬНЫЙ, ТО ВКЛЮЧИМ ЗАРЯДКУ
GOTO OFF_CH0
|
Сначала проверяется старший байт данных АЦП на наличие 0х03. АЦП 10-разрядный и максимальное значение равно 0х3FF, поэтому если операция XOR СHANEL_0H и 0х03 не даёт нулевого результата, значит старший байт АЦП меньше 0х03, то есть напряжение на входе меньше 768/1024*5.00В=3.75В, значит батарея подключена и включаем зарядку GOTO ON_CH0.
Ежели операция XOR выдала нулевой результат, проверяется младший байт АЦП. Если значение меньше 10, то включаем зарядку. Если равно или больше - выключаем зарядку GOTO OFF_CH0.
Таким образом константа сравнения напряжения АЦП равна 0х030А, что есть 778/1024*5.00В = 3.8В, что примерно совпадает с величиной предыдущего поста.
|
|
|
|
Сказали "Спасибо" Yurkin2007
|
|
|
13.12.2010, 15:07
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876
Yurkin2007
Если уж взялись, не посмотрите ли условие окончания заряда?
|
|
|
|
13.12.2010, 15:28
|
|
|
Частый гость
Регистрация: 15.06.2006
Сообщений: 47
Сказал спасибо: 14
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876
Сообщение от omercury
|
Yurkin2007
Если уж взялись, не посмотрите ли условие окончания заряда?
|
Окончание заряда - это уменьшение напряжения на аккумуляторах. Правильно?
Спасибо большое, Yurkin2007. А светодиод без аккумуляторов не должен светится? Правильно?
Включим зарядку - это подадим "1" на RC0?
Последний раз редактировалось slv61; 13.12.2010 в 15:37.
|
|
|
|
13.12.2010, 15:43
|
|
|
Частый гость
Регистрация: 15.06.2006
Сообщений: 47
Сказал спасибо: 14
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876
На рисунке- фрагмент схемы. Хочу уточнить: там есть выделенный фрагмент (общий)? Если есть, то тогда зарядка включится, когда подадим "1" на RC0, но эта единица есть в самом начале (вроде так по программе). А светодиод вначале не светится - нет "1" на RC7. Или не так?
И еще такой вопрос: как в Протеус симулировать аккумулятор, который заряжается?
Последний раз редактировалось slv61; 13.12.2010 в 16:38.
|
|
|
|
13.12.2010, 16:06
|
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876
Сообщение от omercury
|
Yurkin2007
Если уж взялись, не посмотрите ли условие окончания заряда?
|
Я нашёл 3 места, где проверяются условия окончания зарядки :
|
Цитата:
|
MOVLW TIM
XORWF END_TIMER_0,0 ; СРАВНИМ ЗНАЧЕНИЕ ТАЙМЕРА ОКОНЧАНИЯ ЗАРЯДКИ С КОНСТАНТОЙ
BTFSC STATUS,Z ;
BSF FLAG_END_TIMER,0 ; ЕСЛИ ТАЙМЕРЫ РАВНЫ, ТО ПОСТАВИМ ФЛАГ "ВРЕМЯ ВЫШЛО"
BTFSC STATUS,Z
GOTO OFF_CH_0 ; ЕСЛИ ТАЙМЕРЫ РАВНЫ, ТО ВЫКЛЮЧИМ ЗАРЯДКУ
MOVF CHANEL_0H,0
SUBWF M_CHANEL_0H,0 ; ВЫЧТИМ ИЗ ЗАПОМНЕНОГО ЗНАЧЕНИЯ ТЕКУШЕЕ
BTFSC STATUS,Z ; СРАВНИМ СТАРШИЕ БАЙТЫ
GOTO MIN_L0 ; СТАРШИЕ БАЙТЫ РАВНЫ, ПРОВЕРИМ МЛАДШИЕ
BTFSC STATUS,C ; ЕСЛИ РЕЗУЛЬТАТ ПОЛОЖИТЕЛЕН, ТО УЖЕ ДАВНО ПОРА ВЫКЛЮЧИТЬ ЗАРЯДКУ
GOTO OFF_CH_0
; ВСЕ НОРМАЛЬНО, ЗАРЯДКА ИДЕТ ДАЛЬШЕ
GOTO MEMO_0 ; ОБНОВИМ ЗНАЧЕНИЯ НАПРЯЖЕНИЯ
MIN_L0 MOVF CHANEL_0L,0
SUBWF M_CHANEL_0L,0 ; ВЫЧТИМ ИЗ ЗАПОМНЕНОГО ЗНАЧЕНИЯ ТЕКУШЕЕ
BTFSC STATUS,Z ; СРАВНИМ МЛАДШИЕ БАЙТЫ
GOTO MEMO_0 ; ВСЕ НОРМАЛЬНО, ЗАРЯДКА ИДЕТ ДАЛЬШЕ.ОБНОВИМ ЗНАЧЕНИЯ НАПРЯЖЕНИЯ
BTFSS STATUS,C ; ЕСЛИ РЕЗУЛЬТАТ ОТРИЦАТЕЛЕН ИЛИ РАВНЫ, ТО ЗАРЯДКА ИДЕТ ДАЛЬШЕ
; ПОЛОЖИТЕЛЕН, ТО ПРЕРАТИТЬ ЗАРЯДКУ
GOTO MEMO_0 ; ОБНОВИМ ЗНАЧЕНИЯ НАПРЯЖЕНИЯ
;_________________________________________________ ____________________________________
; В этом месте счетчик падения напряжения на аккумуляторе.
INCF END_CH0,1 ; УВЕЛИЧИМ СЧЕТЧИК НА 1
MOVLW 2
XORWF END_CH0,0 ; СРАВНИМ СЧЕТЧИК С 2
BTFSC STATUS,Z
GOTO OFF_CH_0 ; ЕСЛИ СЧЕТЧИК РАВЕН ДВУМ, ТО ВЫКЛЮЧИМ ЗАРЯДКУ
MOVF CHANEL_0L,0
MOVWF M_CHANEL_0L ; ЗАПОМНИМ ЗНАЧЕНИЕ НАПРЯЖЕНИЯ
MOVF CHANEL_0H,0
MOVWF M_CHANEL_0H ; ЗАПОМНИМ ЗНАЧЕНИЕ НАПРЯЖЕНИЯ
GOTO CH_1
;_________________________________________________ ____________________________________
OFF_CH_0 CLRF END_CH0 ; ОЧИСТИМ СЧЕТЧИК
BSF OFF_CHAND,0 ; ПОСТАВИМ ФЛАГ ОКОНЧАНИЯ ЗАРЯДКИ
BCF CHAND,0 ; УБЕРЕМ ФЛАГ НАЛИЧИЯ ЗАРДКИ
BCF PORTC,0 ; ВЫКЛЮЧИМ ИСТОЧНИК ТОКА.
CLRF TIMER_0 ; ОЧИСТИМ ТАЙМЕР ВРЕМЕНИ
CLRF END_TIMER_0 ; ОЧИСТИМ ТАЙМЕР ОКОНЧАНИЯ ЗАРЯДКИ
|
Все три проверки в обработчике прерывания таймера.
В первом сравнивается 4-минутный счётчик с константой TIM = 150, то есть 10 часов заряда.
Во втором и третьем сравниваются текущее напряжение АЦП и предыдущее измерение. Если напряжение батареи стало уменьшаться, то заряд выключается.
|
|
|
|
Сказали "Спасибо" Yurkin2007
|
|
|
13.12.2010, 16:11
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876
|
Цитата:
|
|
Окончание заряда - это уменьшение напряжения на аккумуляторах. Правильно?
|
Для единичного аккумулятора - правильно. Для батареи аккумуляторов условие неприемлемо! В батарее НИКОГДА не бывает 2х одинаковых банок, соответственно часть банок будет перезаряжена, а часть недозаряжена. Для никель-кадмиевых аккумуляторов dV/dt - 20мв/мин, для никель-метал-гидридных почти в 10 раз меньше. В батарее аккумуляторов прибор просто не определит этот момент потому, что одна банка уже будет заряжена, а остальные будут ещё заряжаться.
Yurkin2007 Спасибо! Хотя бы есть ограничение по времени.
Последний раз редактировалось omercury; 13.12.2010 в 16:14.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:33.
|
|