Показать сообщение отдельно
Старый 10.02.2017, 21:40   #1
skanch
Модератор
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 58
Город: Санкт-Петербург
Регион: 78, 98
Сообщений: 2,607
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию Отслеживание напряжения на АКБ

Может кому-то пригодится схема отслеживания напряжения на АКБ в машине для самостоятельного изготовления "умного" блока питания на контроллере Arduino . Я (как и многие) отслеживаю состояние АКБ через делитель напряжения и аналоговый вход на Arduino. Как это делается можно почитать здесь. Но есть альтернативный способ сделать это. Использовать регулируемый стабилитрон TL431.

Работает схема следующим образом:если потенциал на Ref меньше 2,5В, стабилитрон TL431 заперт и через него проходит мизерный ток - 0,4 мА. Оптрон тоже заперт и на выходе уровень "LOW"(чтобы оптрон гарантированно был заперт при токе в 0.4 мА параллельно ставим резистор на 220 Ом ) .
Величина напряжения Uз при котором открывается оптрон , определяется делителем напряжения R1 и R2. Его можно рассчитать по формуле:

R2 = 2,5 х R1/(Uз — 2,5)

Я поставил R2 на 20К, что соответствует примерно 15В. И последовательно с R2 поставил подстроечник R7 на 10К, что в итоге дало возможность плавной регулировки порога срабатывания стабилитрона в интервале напряжения от 10.4 В до 14.6 В. Стабилитрон реагирует на изменение напряжения с точностью в 0.01 В.

Когда на контакте Ref больше 2,5 В, стабилитрон TL431 откроется и оптрон тоже, что даст на выходе уровень "HIGH". Это дает возможность отследить средствами Arduino напряжение на АКБ и что-то сделать по событию: если на выходе оптрона уровень "LOW" (АКБ просел), то выключаем что-то или все по алгоритму установленной программы, если на выходе оптрона уровень "HIGH"(АКБ в норме)- программа отрабатывает по алгоритму и ждет когда АКБ "обсохнет" и на выходе оптрона снова окажется "LOW". Если использовать две такие схемы, то можно одновременно отслеживать и "просадку", и максимально высокое напряжение на АКБ. Как-то так...
Схема мною была опробована на одном из моих распределителей питания и как мне показалось - работала более стабильно, нежели с отслеживанием через аналоговые входы Arduino.
На мой взгляд этот метод гораздо проще и заслуживает внимания...
Но это мое мнение...

Небольшой простенький код :

PHP код:
 int inPin 5// контакт, к которому подключен выход стабилитрона
 
int outPin 13//контрольный светодиод "АКБ в норме"
 
int outPin1 8//контрольный светодиод "АКБ разряжен"

void setup() 

  {
  
pinMode(inPinINPUT);// Устанавливаем контакт, как "Вход"
  
pinMode(13OUTPUT); // Устанавливаем контакт, как "Выход" (просто для контроля работы):
  
pinMode(8OUTPUT); // Устанавливаем контакт, как "Выход" (просто для контроля работы):
  
}

void loop()
 
  {

 if (
digitalRead(inPin) == LOW)//если АКБ разряжен, то
  
{
  
digitalWrite (13LOW);// выключаем контроль "АКБ в норме"
  
digitalWrite (8HIGH); // и включаем контроль "АКБ разряжен"
  
}

 else    
// иначе
 
  
{
  
digitalWrite (13HIGH); // включаем контроль "АКБ в норме"
  
digitalWrite (8LOW); // и выключаем контроль "АКБ разряжен"
  
}
 } 

Добавил вариант схемы блока питания с использованием вышеуказанного стабилитрона (на схеме Q1, Q2, Q3 - сборки на стабилитроне TL431 для отслеживания напряжения на АКБ).
Миниатюры
Нажмите на изображение для увеличения
Название: V01.7-16.JPG
Просмотров: 1034
Размер:	211.8 Кб
ID:	46724   Нажмите на изображение для увеличения
Название: Отслеживание напр.JPG
Просмотров: 818
Размер:	97.0 Кб
ID:	46731  

Последний раз редактировалось admin; 20.03.2017 в 02:50.
skanch вне форума   Ответить с цитированием