контроль разряда аккумуляторов по простому

leks
Offline
Зарегистрирован: 22.10.2017

Модернизирую квадропода, при эксплуатации-экспериментировании редко и неожиданно одна из конечностей начинает заворачиваться на "слом". Причина в разрядке аккумуляторов. Есть замысел контролировать напряжение на Vin с помощью вывода А2 через делитель резисторный. При определённом, экспериментально полученном значении блокировать работу квадропода и подавать световой или звуковой сигнал через самодельные модули. Правильно я мыслю про делитель?  

bwn
Offline
Зарегистрирован: 25.08.2014

А что смущает?

leks
Offline
Зарегистрирован: 22.10.2017

bwn пишет:

А что смущает?

Смущает программная часть. Как рационально выбрать порог сигнала - ведь возможны?, кратковременные скачки напряжения вниз с дальнейшим восстановлением - внешне никак не проявляемые. И второе.., смущает кратковременная потеря контакта (во время хождения) между минусом и оттягивающе-подтягивающим резистором из-за штырькового соединения, а паять не хочется и в то же время на А2 подавать 7-7,5 Вольт тоже страшно. 

bwn
Offline
Зарегистрирован: 25.08.2014

Первое, усреднение или несколько низких значений подряд. Второе, сделать нормальный контакт, хоть и не хочется. ИМХО.)))))

P/S с другой стороны, если граунд исчез, так хоть киловольт подавай.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

leks пишет:

Смущает программная часть.

Тогда в вопросе следует приводить скетч.

Цитата:

Как рационально выбрать порог сигнала - ведь возможны?, кратковременные скачки напряжения вниз с дальнейшим восстановлением - внешне никак не проявляемые.

Думаю, отслеживать нужно как раз не среднее напряжение, а напряжение при его просаживании. 

Т.е. именно "кратковременные скачки напряжения вниз". Как только такой будет обнаружен, включать индикацию разряда батареи и отключать всю прочую нагрузку.

Цитата:

И второе.., смущает кратковременная потеря контакта (во время хождения) между минусом и оттягивающе-подтягивающим резистором из-за штырькового соединения, а паять не хочется и в то же время на А2 подавать 7-7,5 Вольт тоже страшно. 

А этого я вообще не понял.

leks
Offline
Зарегистрирован: 22.10.2017

Вот так я предполагал... Скетч счас сброшу, но он самописный-против правил.

leks
Offline
Зарегистрирован: 22.10.2017
//////////////////////////    скетч для управления 8 сервоприводами квадропода   /////////////////
#include <Servo.h> //используем библиотеку

Servo myservoK3 ;  //указываем сервопривод заднего левого колена
Servo myservoB4;  //указываем сервопривод  заднего левого бедра
Servo myservoK5 ;  //указываем сервопривод переднего левого колена
Servo myservoB6;  //указываем сервопривод  переднего левого бедра
Servo myservoK7 ;  //указываем сервопривод заднего правого колена
Servo myservoB8;  //указываем сервопривод  заднего правого бедра
Servo myservoK9 ;  //указываем сервопривод переднего правого колена
Servo myservoB10;  //указываем сервопривод переднего правого бедра

int n=15;//единица временного интервала
int a03=110;int a04=75;int a05=55;int a06=97;int a07=80;int a08=75;int a09=73;int a010=85;//переменные для углов начального положения конечностей
int da=10;//переменная амплитуды изменения угла в градусах для колен
int db=12;//переменная амплитуды изменения угла в градусах для бёдер
int i;
int a3=a03;int a4=a04;int a5=a05;int a6=a06;int a7=a07;int a8=a08;int a9=a09;int a10=a010;// переменные для хранения значений текущих углов
//////при увеличении значения угла сервоприводы движут лапы :B4,B6-вперёд B8,B10-назад K3,K9-вниз K5,K7-вверх ////////
////////////////////////////////
String inputString;// строки данных
byte K=2;//счётчик выбора  команд для движений
boolean f=true;//переменная для флага
byte r=0;// счётчик для пауз в мигании подсветки при остановке квадропода
////////////////////////////////
const int echoPin=11; //ВЫВОДЫ ПОД УЗ ДАТЧИК
const int trigPin=12;
unsigned int x,x1;// ПЕРЕМЕННЫЕ ДЛЯ РАБОТЫ С УЗ ДАТЧИКОМ
////////////////////////////////
 int u = 0;//переменная смены нот,длительностей и пауз
 int h = 20;//переменная смены темпа мелодии
long Y=0;long Y1=0;long Y2=0;
int tabl [189] ={ 532,6,3,  532,6,3,  440,6,3,
                         523,12,3,  440,6,3,  523,12,3,
                         440,6,3,  494,12,6,  494,6,3,
                         494,6,3,  415,6,3,  494,12,3,
                         415,6,3,  494,12,3,  415,6,3,
                         440,12,6,  659,6,3,  659,6,3,
                         554,6,3,  659,12,3,  554,6,3,
                         659,12,3,  554,6,3,  587,12,6,
                         698,6,3,  587,6,3,  494,6,3,
                         523,12,3,  440,6,3,  415,6,3,
                         370,6,3,   415,6,3,  440,12,24,
                         523,4,2,   523,4,2,  494,4,2,
                         440,4,2,  494,4,2,  523,4,2,
                         587,8,2,   523,4,2,  587,12,2,
                         587,8,2,   523,4,2,  587,12,2,
                         523,8,2,    494,4,2,  523,12,2,
                         523,4,2,   523,4,2,  494,4,2,
                         440,4,2,  494,4,2,  523,4,2,
                         587,8,2,   523,4,2,  587,12,2,
                         587,8,2,   523,4,2,  494,4,2,
                          440,4,2,  415,4,2,  440,12,24};  // зашифрованные данные нот, длительности нот и пауз мелодии походной

//////////////////////////////// 
void setup()
{
////////////////////////////////
pinMode(2, OUTPUT);//ВЫВОД ДЛЯ УПРАВЛЕНИЯ ПОДСВЕТКОЙ СВЕТОДИОДНОЙ 
digitalWrite(2,LOW);
//////////////////////////////// 
pinMode(trigPin, OUTPUT); 
pinMode(echoPin, INPUT);
digitalWrite(trigPin, LOW); 
Serial.begin(9600);
////////////////////////////////////////////
 pinMode(14, OUTPUT);//"вывод на котором играет мелодия"
 digitalWrite(14, LOW);
 pinMode(15, OUTPUT);//управляющий вывод (1-мелодия звучит, 0-нет)
 digitalWrite(15, HIGH);
////////////////////////////////////////////
myservoK3.attach(3);//выводы  для подключения 1-8 сервоприводов
myservoB4.attach(4);
myservoK5.attach(5); 
myservoB6.attach(6); 
myservoK7.attach(7);
myservoB8.attach(8);
myservoK9.attach(9); 
myservoB10.attach(10); 

myservoK3.write(a03); delay(n);// начальная установка-настройка углов поворота валов серв
myservoB4.write(a04); delay(n);
myservoK5.write(a05); delay(n);
myservoB6.write(a06); delay(n);
myservoK7.write(a07); delay(n);
myservoB8.write(a08); delay(n);
myservoK9.write(a09); delay(n);
myservoB10.write(a010); delay(n);


delay(250*n);
}

void loop()
{
  CheckSerial();//ЖДЁМ ПОСТУПЛЕНИЯ КОМАНДЫ НА ИЗМЕНЕНИЕ ВЫПОЛНЕНИЯ ДВИЖЕНИЙ 
 if (K!=2) {if (f==true){digitalWrite(2,HIGH );}else {digitalWrite(2, LOW);}}// ПЕРЕКЛЮЧЕНИЕ ПОДСВЕТКИ СВЕТОДИОДНОЙ
 if (K==1){F1();}//ШАГ ВПЕРЁД
 if (K==2){delay(n);noTone(14);r++;if(r>25){r=0;}if(f==true&&r>20){r=0;digitalWrite(2,!digitalRead (2));}}//ОСТАНОВКА И МИГАНИЕ ПОДСВЕТКОЙ КОГДА ОНА ВКЛЮЧЕНА
 if (K==3){F2();}//ШАГ НАЗАД
 if (K==4){F4();}//ПОВОРОТ ВПРАВО
 if (K==5){F3();}//ПОВОРОТ ВЛЕВО
 ///////////////////ДВИЖЕНИЕ В АВТОНОМНОМ РЕЖИМЕ ПО УЗ ДАТЧИКУ///////////////////////////
 if (K==6){F1(); digitalWrite(trigPin, HIGH);//излучение звука в течении 15 микросекунд 
  delayMicroseconds(15); 
  digitalWrite(trigPin, LOW); 
  x = pulseIn(echoPin, HIGH,4000);//подсчёт длительности отражённого сигнала с ограничением в 4 мс 
  x1 = x / 58;//дистанция до преграды в сантиметрах
  if(x1>10&&x1<30){byte i1=random(0,2);if(i1==1){F2();F2();F3();F3();F3();F3();}
  else {F2();F2();F4();F4();F4();F4();}}//условие псевдослучайного направления поворота на 4-несколько шагов с отходом назад на 2 шага
  }
  ///////////////////////////////////////////////////////////////////////////////////////
  //F1();//шаг вперёд
  //F2();//шаг назад
  //F3();//шаг-разворот влево
  //F4();//шаг-разворот вправо
}

void F1()
{
  
  /////////////////////////////////////////////  ПРЯМОХОЖДЕНИЕ  /////////////////////////////////////////////
  ///////////// K5,K7 вверх///////////
   for(i = 0 ; i<=da; i++)
  {myservoK5.write(a5+i);
  myservoK7.write(a7+i);
  delay_(n);}
  ///////////// B6,B8- вперёд B4,B10- назад ////////
   for(i = 0 ; i<=db; i++)
  {myservoB6.write(a6+i);
  myservoB8.write(a8-i);
  myservoB4.write(a4-i);
  myservoB10.write(a10+i);
  delay_(n);}
  /////////////K5,K7 вниз /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK5.write(a5-i);
  myservoK7.write(a7-i);
  delay_(n);}
  ////////////K3,K9 вверх /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK3.write(a3-i);
   myservoK9.write(a9-i);
  delay_(n);}
  ///////////// B6,B8- назад B4,B10- вперёд ////////
  for(i = 0 ; i<=db; i++)
  {myservoB6.write(a6-i);
  myservoB8.write(a8+i);
  myservoB4.write(a4+i);
  myservoB10.write(a10-i);
  delay_(n);}
  //////////////K3,K9 вниз /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK3.write(a3+i);
   myservoK9.write(a9+i);
  delay_(n);}
  /////////////////////////////////////////////////////////////////////////////////////////
  
  
 }
void F2()
{
  
  /////////////////////////////////////////////  ДВИЖЕНИЕ НАЗАД  /////////////////////////////////////////////
  ////////////K3,K9 вверх /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK3.write(a3-i);
   myservoK9.write(a9-i);
  delay_(n);}
  
  ///////////// B6,B8- вперёд B4,B10- назад ////////
   for(i = 0 ; i<=db; i++)
  {myservoB6.write(a6+i);
  myservoB8.write(a8-i);
  myservoB4.write(a4-i);
  myservoB10.write(a10+i);
  delay_(n);}
   //////////////K3,K9 вниз /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK3.write(a3+i);
   myservoK9.write(a9+i);
  delay_(n);}
  
   ///////////// K5,K7 вверх///////////
   for(i = 0 ; i<=da; i++)
  {myservoK5.write(a5+i);
  myservoK7.write(a7+i);
  delay_(n);}
  
  ///////////// B6,B8- назад B4,B10- вперёд ////////
  for(i = 0 ; i<=db; i++)
  {myservoB6.write(a6-i);
  myservoB8.write(a8+i);
  myservoB4.write(a4+i);
  myservoB10.write(a10-i);
  delay_(n);}
 /////////////K5,K7 вниз /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK5.write(a5-i);
  myservoK7.write(a7-i);
  delay_(n);}
  /////////////////////////////////////////////////////////////////////////////////////////
  
  
 }

void F3()
{
  
  /////////////////////////////////////////////  РАЗВОРОТ ВЛЕВО  /////////////////////////////////////////////
  ////////////K3,K9 вверх /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK3.write(a3-i);
   myservoK9.write(a9-i);
  delay_(n);}
  
  ///////////// B6,B10- вперёд B4,B8- назад ////////
   for(i = 0 ; i<=db; i++)
  {myservoB6.write(a6+i);
  myservoB8.write(a8+i);
  myservoB4.write(a4-i);
  myservoB10.write(a10-i);
  delay_(n);}
   //////////////K3,K9 вниз /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK3.write(a3+i);
   myservoK9.write(a9+i);
  delay_(n);}
  
   ///////////// K5,K7 вверх///////////
   for(i = 0 ; i<=da; i++)
  {myservoK5.write(a5+i);
  myservoK7.write(a7+i);
  delay_(n);}
  
  ///////////// B6,B10- назад B4,B8- вперёд ////////
  for(i = 0 ; i<=db; i++)
  {myservoB6.write(a6-i);
  myservoB8.write(a8-i);
  myservoB4.write(a4+i);
  myservoB10.write(a10+i);
  delay_(n);}
 /////////////K5,K7 вниз /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK5.write(a5-i);
  myservoK7.write(a7-i);
  delay_(n);}
  /////////////////////////////////////////////////////////////////////////////////////////
  
  
 }

void F4()
{
  
  /////////////////////////////////////////////  РАЗВОРОТ ВПРАВО  /////////////////////////////////////////////
  ///////////// K5,K7 вверх///////////
   for(i = 0 ; i<=da; i++)
  {myservoK5.write(a5+i);
  myservoK7.write(a7+i);
  delay_(n);}
  ///////////// B6,B10- вперёд B4,B8- назад ////////
   for(i = 0 ; i<=db; i++)
  {myservoB6.write(a6+i);
  myservoB8.write(a8+i);
  myservoB4.write(a4-i);
  myservoB10.write(a10-i);
  delay_(n);}
  /////////////K5,K7 вниз /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK5.write(a5-i);
  myservoK7.write(a7-i);
  delay_(n);}
  ////////////K3,K9 вверх /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK3.write(a3-i);
   myservoK9.write(a9-i);
  delay_(n);}
  ///////////// B6,B10- назад B4,B8- вперёд ////////
  for(i = 0 ; i<=db; i++)
  {myservoB6.write(a6-i);
  myservoB8.write(a8-i);
  myservoB4.write(a4+i);
  myservoB10.write(a10+i);
  delay_(n);}
  //////////////K3,K9 вниз /////////////
   for(i = 0 ; i<=da; i++)
  {myservoK3.write(a3+i);
   myservoK9.write(a9+i);
  delay_(n);}
  /////////////////////////////////////////////////////////////////////////////////////////
  
  
 }
  /////////////////////////////////////////////////////////////////////////////////////////////////
//ФУНКЦИИ ПРИЁМА И ОБРАБОТКИ ДАННЫХ
void CheckSerial()
{
//////////////////////////////////////////////////////////////////////////////
  while (Serial.available())//считываем строку данных пока они поступают
  {
    char inChar = (char)Serial.read();
    if (inChar == '\n')     //если окончание строки
    {
      MakeCmd();//обрабатываем её данной функцией
      break;
    }
    else inputString += inChar;// иначе удлиняем строку на один символ
  }
}
/////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
void MakeCmd()
{
    int y=inputString.length();// присваиваем переменной у число символов в строке
    if (y<1||y>1)return;//если их меньше 1 или больше, выходим из функции
    String cmd=inputString;// передаём строку другой переменной
    inputString = "";//"обнуляем переменную" 
 if (cmd=="1"){K=1;}//ШАГ ВПЕРЁД
 if (cmd=="2"){K=2;}//ОСТАНОВКА 
 if (cmd=="3"){K=3;}//ШАГ НАЗАД
 if (cmd=="4"){K=4;}//ПОВОРОТ ВПРАВО
 if (cmd=="5"){K=5;}//ПОВОРОТ ВЛЕВО
 if (cmd=="6"){n=10;}//ДВИГАЕМСЯ БЫСТРО
 if (cmd=="7"){n=25;}//ДВИГАЕМСЯ МЕДЛЕННО
 if (cmd=="0"){n=15;db=12;}//ВОССТАНАВЛИВАЕМ ИСХОДНЫЕ ПАРАМЕТРЫ ДВИЖЕНИЯ
 if (cmd=="8"){db=20;}//ДВИГАЕМСЯ ШИРОКИМ ШАГОМ
 if (cmd=="9"){db=8;}//ДВИГАЕМСЯ МЕЛКИМ ШАГОМ
 if (cmd=="A"){K=6;}//ДВИГАЕМСЯ В АВТОНОМНОМ РЕЖИМЕ ПО УЗ ДАТЧИКУ
 if (cmd=="S"){f=!f;}//МЕНЯЕМ СОСТОЯНИЕ ФЛАГА НА ПРОТИВОПОЛОЖНОЕ (ВКЛЮЧАЕМ-ВЫКЛЮЧАЕМ СВЕТОДИОДНУЮ ПОДСВЕТКУ)
 if (cmd=="M"){digitalWrite(15,!digitalRead (15));}//ПЕРЕКЛЮЧАЕМ СОСТОЯНИЕ УПРАВЛЯЮЩЕГО МЕЛОДИЕЙ ВЫВОДА НА ПРОТИВОПОЛОЖНОЕ
 }
 
///////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////
////  ФУНКЦИИ ОПИСАНИЕ // вместо задержки времени через delay и в ожидании смены играемых нот мелодии ////////////////////////////////////////////////////////////////// 
void delay_(int T1)
{
 Y2=millis();metka:Y1=millis();if(Y1-Y2>=T1){} 
 else { 
  if(millis()-Y>h*(tabl[u+1]+tabl[u+2]))
  {Y=millis();u=u+3;if(u>=189){u=0;h=h+10;}
   if(h>40){h=20;}
   // tabl[u]; нота-частота звука
   //tabl[u+1]; условная длительность звучания
   //tabl[u+2]; условная длительность паузы
  tone (14,tabl[u],h*tabl[u+1]);} 
 goto metka;}
}
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Дывлюся я на схему и думку гадаю, чому я не Клапауций и чому не посылаю. Кто вас надоумил вешать кренку на аккумулоры литиевые. Сейчас так не "носят", не модно.

leks
Offline
Зарегистрирован: 22.10.2017

qwone пишет:

Дывлюся я на схему и думку гадаю, чому я не Клапауций и чому не посылаю. Кто вас надоумил вешать кренку на аккумулоры литиевые. Сейчас так не "носят", не модно.

Это про потерянные 2,5 Вольта? В импортном аналоге (в скобках - по схеме всего 2)...Ну и аккумуляторы давно в ноутбуке уже отработали - не жалко. А что посоветуете наперёд из модулей доступных в цене с кпд 93-97 процентов (неужели такое бывает?).

П.С. Из извратства по безопасному замеру напряжения чего то кроме измерения на одном аккумуляторе ничего не видится :( выключатель надо тогда переставлять.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
leks
Offline
Зарегистрирован: 22.10.2017

https://ru.aliexpress.com/item/Free-Shipping-1PCS-XM1584-Ultra-small-siz...

Вот, вместо стабилизатора - прямо так и пишут "супер 92 процента".

ВН
Offline
Зарегистрирован: 25.02.2016

это не то, для "92 процента" с батареи должен быть синхронны выпрямитель

SLKH
Offline
Зарегистрирован: 17.08.2015

leks пишет:

Вот так я предполагал... Скетч счас сброшу, но он самописный-против правил.

1. Зачеркивание убери.

На вход  (параллельно 4к7) повесь конденсатор, 0.1 - 1 нф.

и добавь программную фильтрацию. Например, замеряешь напряжение 3 раза подряд и крайние результаты игнорируешь. Или же находишь в интернетах (в том числе на этом форуме) более приличные методы - их куча.

 

2. Ты уверен, что напряжение свежего аккумулятора не будет превышать 7,5в?  Не увеличить ли номинал верхнего резистора?

 

 

leks
Offline
Зарегистрирован: 22.10.2017

SLKH пишет:

leks пишет:

Вот так я предполагал... Скетч счас сброшу, но он самописный-против правил.

1. Зачеркивание убери.

На вход  (параллельно 4к7) повесь конденсатор, 0.1 - 1 нф.

и добавь программную фильтрацию. Например, замеряешь напряжение 3 раза подряд и крайние результаты игнорируешь. Или же находишь в интернетах (в том числе на этом форуме) более приличные методы - их куча.

 

2. Ты уверен, что напряжение свежего аккумулятора не будет превышать 7,5в?  Не увеличить ли номинал верхнего резистора?

 

 

Да, про номинал согласен, надо увеличить и кондёр добавить. Про зачёркивание-обрыв контакта считаю, что если он потеряется кратковременно то аналоговый вход накроется тазом.

Другие методы, думаю не проще..,потому как замышляю не только отключение ходилок квадропода при снижении напряжения, но и передачу информации о событии на смартфон (как пульт управления использую). 

leks
Offline
Зарегистрирован: 22.10.2017
void setup() 
{
  Serial.begin(9600);
 
}

void loop() 
{
  
  delay(2000); 
  Serial.println("BOB");
  delay(2000); 
  Serial.println("ADA");
}

Пробую-тестирую связь через блютуз модуль кстати, создавая приложение в "мит апп инвенторе". Кто нибудь может помочь?, в таком вопросе: слова-команды высвечивает на экране смартфона т.е. связь установлена, но сравнить значение переменной в которой меняются команды "боб" и "ада" с значениями "BOB" '"ADA" не получается...

Картинку блока могу приложить.

Гриша
Offline
Зарегистрирован: 27.04.2014

leks пишет:

Да, про номинал согласен, надо увеличить и кондёр добавить. Про зачёркивание-обрыв контакта считаю, что если он потеряется кратковременно то аналоговый вход накроется тазом.

если поднять номинал в верхнем плече, то не накроется. По входу стоит защита из быстродейстыующих диодов и если ток не великий они его высадят на себя. вообще в таких моментах я ставлю быстродействующие диоды со входа на питание МК... первое, что попалось в гугле

Если помеха слишком сильна, надо защищать сами диоды. 
С этой целью параллельно внутренним кремниевым подключают внешние диоды Шоттки V1 и V2 (Рис.2). 
Так как падение напряжения у них меньше, внутренние диоды отключены. 
Это уже достаточно бронебойная схема.
 Для защиты аналоговых цепей применяют диоды с низким током утечки.

http://perviydoc.ru/v4785/%D0%BD%D0%B5%D0%B8%D0%B7%D0%B2%D0%B5%D1%81%D1%82%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D1%80._%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0_%D0%B2%D1%85%D0%BE%D0%B4%D0%BE%D0%B2_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_%D0%B8%D1%81

 

leks
Offline
Зарегистрирован: 22.10.2017

Гриша пишет:

leks пишет:

Да, про номинал согласен, надо увеличить и кондёр добавить. Про зачёркивание-обрыв контакта считаю, что если он потеряется кратковременно то аналоговый вход накроется тазом.

если поднять номинал в верхнем плече, то не накроется. По входу стоит защита из быстродейстыующих диодов и если ток не великий они его высадят на себя. вообще в таких моментах я ставлю быстродействующие диоды со входа на питание МК... первое, что попалось в гугле

Если помеха слишком сильна, надо защищать сами диоды. 
С этой целью параллельно внутренним кремниевым подключают внешние диоды Шоттки V1 и V2 (Рис.2). 
Так как падение напряжения у них меньше, внутренние диоды отключены. 
Это уже достаточно бронебойная схема.
 Для защиты аналоговых цепей применяют диоды с низким током утечки.

http://perviydoc.ru/v4785/%D0%BD%D0%B5%D0%B8%D0%B7%D0%B2%D0%B5%D1%81%D1%82%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D1%80._%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0_%D0%B2%D1%85%D0%BE%D0%B4%D0%BE%D0%B2_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_%D0%B8%D1%81

 

Ну тогда рационально поставить пару одинаковых резисторов по 47 кОм-100 кОм, чтоб отслеживать напряжение как бы на одном аккумуляторе. Какой номинал конденсатора взять к резистору в нижнем плече чтобы сгладить пульсации максимально и в то же время оперативно получать достоверные значения примерно через 1-5 секунд?

SLKH
Offline
Зарегистрирован: 17.08.2015

leks пишет:

Гриша пишет:

leks пишет:

Да, про номинал согласен, надо увеличить и кондёр добавить. Про зачёркивание-обрыв контакта считаю, что если он потеряется кратковременно то аналоговый вход накроется тазом.

если поднять номинал в верхнем плече, то не накроется. По входу стоит защита из быстродейстыующих диодов и если ток не великий они его высадят на себя. вообще в таких моментах я ставлю быстродействующие диоды со входа на питание МК... первое, что попалось в гугле

Если помеха слишком сильна, надо защищать сами диоды. 
С этой целью параллельно внутренним кремниевым подключают внешние диоды Шоттки V1 и V2 (Рис.2). 
Так как падение напряжения у них меньше, внутренние диоды отключены. 
Это уже достаточно бронебойная схема.
 Для защиты аналоговых цепей применяют диоды с низким током утечки.

http://perviydoc.ru/v4785/%D0%BD%D0%B5%D0%B8%D0%B7%D0%B2%D0%B5%D1%81%D1%82%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D1%80._%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0_%D0%B2%D1%85%D0%BE%D0%B4%D0%BE%D0%B2_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_%D0%B8%D1%81

 

Ну тогда рационально поставить пару одинаковых резисторов по 47 кОм-100 кОм, 

А datasheet'ы  кто читать будет? А.С. Пушкин - человек и аэропорт?

leks
Offline
Зарегистрирован: 22.10.2017

SLKH пишет:

leks пишет:

Гриша пишет:

leks пишет:

Да, про номинал согласен, надо увеличить и кондёр добавить. Про зачёркивание-обрыв контакта считаю, что если он потеряется кратковременно то аналоговый вход накроется тазом.

если поднять номинал в верхнем плече, то не накроется. По входу стоит защита из быстродейстыующих диодов и если ток не великий они его высадят на себя. вообще в таких моментах я ставлю быстродействующие диоды со входа на питание МК... первое, что попалось в гугле

Если помеха слишком сильна, надо защищать сами диоды. 
С этой целью параллельно внутренним кремниевым подключают внешние диоды Шоттки V1 и V2 (Рис.2). 
Так как падение напряжения у них меньше, внутренние диоды отключены. 
Это уже достаточно бронебойная схема.
 Для защиты аналоговых цепей применяют диоды с низким током утечки.

http://perviydoc.ru/v4785/%D0%BD%D0%B5%D0%B8%D0%B7%D0%B2%D0%B5%D1%81%D1%82%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D1%80._%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0_%D0%B2%D1%85%D0%BE%D0%B4%D0%BE%D0%B2_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_%D0%B8%D1%81

 

Ну тогда рационально поставить пару одинаковых резисторов по 47 кОм-100 кОм, 

А datasheet'ы  кто читать будет? А.С. Пушкин - человек и аэропорт?

Да отпугивает Англицкий, на русском не всегда верно трактуешь прочитанное, а с переводом мне полный нихт ферштейн.

SLKH
Offline
Зарегистрирован: 17.08.2015

leks пишет:

 

Да отпугивает Англицкий, на русском не всегда верно трактуешь прочитанное, а с переводом мне полный нихт ферштейн.

Цитата:
The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less. 
Переведи чем-нибудь выделенный текст.
leks
Offline
Зарегистрирован: 22.10.2017

SLKH пишет:

leks пишет:

 

Да отпугивает Англицкий, на русском не всегда верно трактуешь прочитанное, а с переводом мне полный нихт ферштейн.

Цитата:
The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less. 
Переведи чем-нибудь выделенный текст.

Перевёл.., но я уже поставил по 56 кОм, подключился к акуумуляторам, врубил все ходилки-пищалки-моргалки и вход А2 Ардуино на смартфоне показал 751 из 1023 возможных при 5 В.