Показать сообщение отдельно
Старый 11.02.2017, 11:20   #67
ВладимирC
Старший Пользователь
 
Регистрация: 20.08.2007
Возраст: 51
Город: Москва
Регион: 77, 97, 99, 177
Машина: Hyunday Grandeur 3.3
Сообщений: 852
ВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of light
По умолчанию

В продолжении темы развязки. Не делал контроль разряда АКБ на ардуино, чтобы не заводить землю.
Благодаря
Цитата:
Сообщение от skanch Посмотреть сообщение
Может кому-то пригодится схема отслеживания напряжения на АКБ в машине для самостоятельного изготовления "умного" блока питания на контроллере 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); // и выключаем контроль "АКБ разряжен"
  
}
 } 
Теперь появилась возможность контролировать разряд развязав земли. Причем можно вообще не задействовать Ардуино, подключив оптрон к управляющему входу DC-DC и тем самым, в случае уменьшения напряжения на АКБ ниже минимального, выключать все полностью.
ВладимирC вне форума   Ответить с цитированием