Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Источники питания и свет Актуальные вопросы и ответы по источникам питания, световому оборудованию.

 
Опции темы

Простой четырёхканальный зарядник на микропроцессоре PIC16F876

Непрочитано 13.12.2010, 10:56  
slv61
Частый гость
 
Регистрация: 15.06.2006
Сообщений: 47
Сказал спасибо: 14
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
slv61 на пути к лучшему
По умолчанию Простой четырёхканальный зарядник на микропроцессоре 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.
slv61 вне форума  
Непрочитано 13.12.2010, 12:14  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876

(24/(1,2+3)*1,2=6,91 Действительно ниже. Да и вообще - плохонький он - заряжает повышенным током, а температуру банок не контролирует, ориентируется только на dv/dt, что неприемлемо для батареи... И кипятильник неплохой. Более 50% энергии в тепло... Нормальный современный зарядник должен контролировать и ориентироваться на 4 параметра минимум(для единичных аккумуляторов). Соберите что-нибудь поприличней.
omercury вне форума  
Сказали "Спасибо" omercury
slv61 (13.12.2010)
Непрочитано 13.12.2010, 12:36  
slv61
Частый гость
 
Регистрация: 15.06.2006
Сообщений: 47
Сказал спасибо: 14
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
slv61 на пути к лучшему
По умолчанию Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876

Хочется с этой схемой разобраться...Может кто-то делал...omercury, Вы правы - напряжение 6,39В
Миниатюры:
Нажмите на изображение для увеличения
Название: Выход RA0.GIF
Просмотров: 72
Размер:	35.6 Кб
ID:	15733  
slv61 вне форума  
Непрочитано 13.12.2010, 13:52  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию 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 вне форума  
Сказали "Спасибо" Yurkin2007
slv61 (13.12.2010)
Непрочитано 13.12.2010, 14:35  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию 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 вне форума  
Сказали "Спасибо" Yurkin2007
slv61 (13.12.2010)
Непрочитано 13.12.2010, 15:07  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876

Yurkin2007
Если уж взялись, не посмотрите ли условие окончания заряда?
omercury вне форума  
Непрочитано 13.12.2010, 15:28  
slv61
Частый гость
 
Регистрация: 15.06.2006
Сообщений: 47
Сказал спасибо: 14
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
slv61 на пути к лучшему
По умолчанию Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876

Сообщение от omercury Посмотреть сообщение
Yurkin2007
Если уж взялись, не посмотрите ли условие окончания заряда?
Окончание заряда - это уменьшение напряжения на аккумуляторах. Правильно?
Спасибо большое, Yurkin2007. А светодиод без аккумуляторов не должен светится? Правильно?
Включим зарядку - это подадим "1" на RC0?

Последний раз редактировалось slv61; 13.12.2010 в 15:37.
slv61 вне форума  
Непрочитано 13.12.2010, 15:43  
slv61
Частый гость
 
Регистрация: 15.06.2006
Сообщений: 47
Сказал спасибо: 14
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
slv61 на пути к лучшему
По умолчанию Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876

На рисунке- фрагмент схемы. Хочу уточнить: там есть выделенный фрагмент (общий)? Если есть, то тогда зарядка включится, когда подадим "1" на RC0, но эта единица есть в самом начале (вроде так по программе). А светодиод вначале не светится - нет "1" на RC7. Или не так?
И еще такой вопрос: как в Протеус симулировать аккумулятор, который заряжается?
Миниатюры:
Нажмите на изображение для увеличения
Название: Включить зарядку.GIF
Просмотров: 58
Размер:	59.4 Кб
ID:	15734  

Последний раз редактировалось slv61; 13.12.2010 в 16:38.
slv61 вне форума  
Непрочитано 13.12.2010, 16:06  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию 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 вне форума  
Сказали "Спасибо" Yurkin2007
omercury (13.12.2010)
Непрочитано 13.12.2010, 16:11  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Простой четырёхканальный зарядник на микропроцессоре PIC16F876

Цитата:
Окончание заряда - это уменьшение напряжения на аккумуляторах. Правильно?
Для единичного аккумулятора - правильно. Для батареи аккумуляторов условие неприемлемо! В батарее НИКОГДА не бывает 2х одинаковых банок, соответственно часть банок будет перезаряжена, а часть недозаряжена. Для никель-кадмиевых аккумуляторов dV/dt - 20мв/мин, для никель-метал-гидридных почти в 10 раз меньше. В батарее аккумуляторов прибор просто не определит этот момент потому, что одна банка уже будет заряжена, а остальные будут ещё заряжаться.
Yurkin2007 Спасибо! Хотя бы есть ограничение по времени.

Последний раз редактировалось omercury; 13.12.2010 в 16:14.
omercury вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой зарядник постоянным напряжением korsar 77 Источники питания и свет 10 31.10.2010 13:32


Часовой пояс GMT +4, время: 08:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.