Калибровка разряда осуществляется для малых токов (до 2А) при Кус=200. разряд идет на внутренний резистор 10 Ом.asbua02 писал(а): Вс окт 04, 2026 13:58:35 в режиме калибровки при корректировки тока РАЗРЯДА ... теже лампы которые были нагрузкой для калибровке 6...7 Ампер, становтся слишком малой нагрузкой для установки тока 1,0...1,2 Ампер разряда .
Спойлер
if(MenSel==I_K200_RAZR) //ток разряда при Кус=200{
pwm_off(); //выключаем БП
razr_flag_on=1;
i_razryad (8); //разряд на внутренний резистор 0,8А
ADC_i(200);
LCD_Goto(10,1);
LCD_SendDat(((float)(adc_i))/400, 2,4,adc_k_us);
LCD_WriteData('A');
return;
}
Параметры напряжений для режима "Качели" зашиты в программе, т.к. для других акб (LiIon, LiFePO4 и др.) это не надо. Это своего рода защита от ...Nilas писал(а): Чт окт 08, 2026 16:54:00 Работает при установленном напряжении в меню «Настройки
параметров заряда» напряжения АКБ 12В или 6В.
Спойлер
if (eep_nas.kacheli==2 && (eep_ust.ust_u_akb==120 || eep_ust.ust_u_akb==60)) //если вкл качели и Uакб уставка == 12В или (6В)case 6: //качели 16,2-13,8Vv 14,4-13,6v 14,7-13,6v
// фаза разряда качелей
Никакие временные задержки я не ставил. Нашел переменную которую забыл обнулить после инициализации.
Коэффициенты рассчитываются примерно как "Параметр регулировки =(255 *Шаг)+ Коэффициент" . Т.е. если Полное напряжение =20В, разделить на 255 шагов регулировки, то получится 0,078 вольта на 1 шаг. При нулевом коэффициенте это значение подставляем в ШИМ или выводим на экран. Т.к. АЦП не идеальное, приходится корректировать Коэффициентом. Поэтому получается разное поведение .asbua02 писал(а): Чт окт 08, 2026 18:37:45 выставляя разный коэффициент ... разное поведение блока питания
При смене надписей на экране с разными дополнительными шрифтами, сначала идет загрузка кода нужной буквы. При этом на экране после загрузки кода, те буквы, которые были заменены другим кодом, тоже меняются до момента следующей отрисовки экрана.
Схема не моя и досталась от автора с ником "Слон". И программу делал так, чтобы не переделывать схему.
А как же тогда считывать данные без АЦП и ...asbua02 писал(а): Пт окт 09, 2026 13:27:58 ...не сделали ПРОГРАММНУЮ блокировку КЗ по встроенному аналоговому компаратору
...При этом сам модуль АЦП (ADEN в ADCSRA) должен быть выключен ..... Отключаем АЦП, чтобы освободить мультиплексор для компаратора
... если переключать между АЦП и компаратором, то все равно получается какое-то время на переключения и измерение, да и приоритет прерываний низкий. Пока те же прерывания таймеров отработают, пройдет куча времени, пока дойдет очередь до компаратора.asbua02 писал(а): Пт окт 09, 2026 13:27:58 // Вектор прерывания срабатывает мгновенно при превышении тока
ISR(ANA_COMP_vect) {
Тогда лучше уже использовать прерывания по INT2 (PB2), у которой и приоритет прерываний высокий. Надо в дополнение усилителя напряжения шунта на LM358 на её второй половине сделать компаратор и выход с него завести на свободную ногу - РВ2 (INT2) ( третья нога ).
Но опять же все эти изменения упираются в недостаток памяти. Да и в железе защита надежней, чем программное: может всякий глюк возникнуть
А раз Вы владеете программированием, то можете переделать код под все свои хотелки, тем более он в свободном доступе.


