Авторизация
Регистрация

Напомнить пароль

Самодельный вольтметр для батареек

  1. Цена: $2.35 + доставка
  2. Перейти в магазин
В сегодняшнем занятии мы рассмотрим вариант изготовления самодельного цифрового вольтметра для измерения напряжения на одиночном элементе питания. Пределы измерения напряжения 1-4.5 Вольт. Внешнее дополнительное питание, кроме измеряемого, не требуется.


25 лет назад у меня был кассетный плеер. Питал я его Ni-Cd аккумуляторами НКГЦ-0.45 ёмкостью 450мА/ч. Чтобы в дороге определять какие аккумуляторы уже сели, а какие ещё поработают было сделано простое устройство.

Батарейно-аккумуляторный диагностическо-измерительный комплекс.

Он собран по схеме преобразователя напряжения на двух транзисторах. На выход включен светодиод. Параллельно входу, подключаемому к аккумулятору включен резистор, намотанный из нихрома. Таким образом, если аккумулятор способен отдавать около 200мА, то светодиод загорается.

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

Итак, схема проектируемого устройства.


Используемые детали:
1. OLED дисплей с диагональю 0.91 дюйм и разрешением 128x32 (около $3)
2. Микроконтроллер ATtiny85 в корпусе SOIC (около $1)
3. Boost DC/DC Converter LT1308 от компании Linear Technology. ($2.74 за 5 штук) LT1308 manual
4. Конденсаторы керамические, выпаяны из неисправной видеокарты.
5. Индуктивность COILTRONICS CTX5-1 или COILCRAFT DO3316-472.
6. Диод Шоттки, я использовал MBR0520 (0.5A, 20V)

Преобразователь напряжения LT1308

Характеристики из описания LT1308:

Обещают 300мА 3.3В с одного элемента NiCd, нам подходит. Выходное напряжение устанавливается делителем, резисторы 330кОм и 120кОм, при указанных номиналах выходное напряжение преобразователя получается около 4.5В. Выходное напряжение выбиралось достаточным для питания контроллера и дисплея, чуть выше максимального измеряемого напряжения на литиевом аккумуляторе.

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

Прекрасно, идём дальше.

Особенности измерения напряжения микроконтроллером

Микроконтроллер ATtiny85 имеет АЦП разрядностью 10 бит. Поэтому считываемый уровень лежит в диапазоне 0-1023 (2^10 ). Для перевода в напряжение используется код:
float Vcc = 5.0; 
int value = analogRead(4); / читаем показания с А2
float volt = (value / 1023.0) * Vcc;

Т.е. предполагается, что напряжение питания строго 5В. Если напряжение питания микроконтроллера изменится, то измеренное напряжение тоже изменится. Поэтому нам нужно узнать точное значение напряжения питания!
Многие чипы AVR включая серию ATmega и ATtiny обеспечивают средства для измерения внутреннего опорного напряжения. Путем измерения внутреннего опорного напряжения, мы можем определить значение Vcc. Вот как:
  • Установить источник опорного напряжения analogReference(INTERNAL).
  • Снять показания АЦП для внутреннего источника 1.1 В.
  • Расчитать значение Vcc основываясь на измерении 1.1 В по формуле:
Vcc * (Показания АЦП) / 1023 = 1.1 В

Из чего следует:
Vcc = 1.1 В * 1023 / (Показания АЦП)

На просторах интернета была найдена функция для измерения напряжения питания контроллера:
Функция readVcc()
long readVcc() {
  // Read 1.1V reference against AVcc
  // set the reference to Vcc and the measurement to the internal 1.1V reference
  #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
    ADMUX = _BV(MUX5) | _BV(MUX0);
  #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
    ADMUX = _BV(MUX3) | _BV(MUX2);
  #else
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #endif  

  delay(75); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Start conversion
  while (bit_is_set(ADCSRA,ADSC)); // measuring

  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  
  uint8_t high = ADCH; // unlocks both

  long result = (high<<8) | low;

  result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
  return result; // Vcc in millivolts
}


Для вывода на экран используется библиотека Tiny4kOLED с включенным шрифтом 16х32. Из шрифта, для уменьшения размера библиотеки, удалены 2 не используемых символа (, и -) и нарисована отсутствующая буква «В». Код библиотеки соответственно изменен.
Так-же для стабилизации выводимых измерений использована функция с форума ардуино, спасибо автору dimax, работает хорошо.

Код я отлаживал на платке Digispark в среде arduino IDE. После чего ATtiny85 была выпаяна и припаяна на макетку. Собираем макетную плату, подстроечным резистором выставляем напряжение на выходе преобразователя (сначала я выставлял на выходе 5В, при этом ток на входе преобразователя был под 170мА, уменьшил напряжение до 4.5В, ток снизился до 100мА). Когда ATtiny85 припаяна на макетку код приходится заливать с помощью программатора, у меня обычный USBash ISP.

Код программы
// НАСТРОЙКА
/* 
 * Ставим #define NASTROYKA 1
 * Компилируем, заливаем код, запускаем, запоминаем значение на дисплее, например 5741
 * Измеряем мультиметром реальное напряжение на выходе преобразователя, например 4979 (это в мВ)
 * Считаем (4979/5741)*1.1=0.953997
 * Считаем 0.953997*1023*1000 = 975939
 * Записываем результат в строку 100 в виде result = 975939L
 * Ставим #define NASTROYKA 0
 * Компилируем, заливаем код, запускаем, готово.
 */
#define NASTROYKA 0


#include <Tiny4kOLED.h>
#include <TinyWireM.h>

long Vcc;
float Vbat;

// тонкая настройка алгоритма сглаживания  shumodav()
#define ts 5 // *table size* количество строк массива для хранения данных , для девиации ± 2 отсчёта оптимально 4 строки и одна в запас.
#define ns 25 //  *number samples*, от 10..до 50 максимальное количество выборок для анализа 1й части алгоритма
#define ain A2 // какой аналоговый вход читать  (А2 это P4)
#define mw 50 // *max wait* от 15..до 200 ms ожидать повтора отсчёта для 2 части алгоритма

unsigned int myArray[ts][2], aread, firstsample, oldfirstsample, numbersamples, rezult;
unsigned long prevmillis = 0;
boolean waitbegin = false; //флаг включённого счётчика ожидания повтора отсчёта

void setup() {
  oled.begin();
  oled.clear();
  oled.on();
  oled.setFont(FONT16X32_sega);
}

void loop() {
  for (byte i = 0; i < 5; i++) {
    Vcc += readVcc();
  }
  Vcc /= 5;

  shumodav();

  Vbat = ((rezult / 1023.0) * Vcc) / 1000;

  if (Vbat >= 0.95) {
    oled.setCursor(16, 0);#if NASTROYKA
    oled.print(rezult);
#else
    oled.print(Vbat, 2);
    oled.print("/");
#endif

}
  Vcc = 0;
}


long readVcc() {    // чтение реального напряжения питания
  // Read 1.1V reference against AVcc
  // set the reference to Vcc and the measurement to the internal 1.1V reference
#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
  ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
#elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
  ADMUX = _BV(MUX5) | _BV(MUX0);
#elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
  ADMUX = _BV(MUX3) | _BV(MUX2);
#else
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
#endif

  delay(75); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Start conversion
  while (bit_is_set(ADCSRA, ADSC)); // measuring

  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH
  uint8_t high = ADCH; // unlocks both

  long result = (high << 8) | low;

  //  result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000

  // индикатор показывал 4990, вольтметр 4576мВ (4576/4990)*1.1=1.008737
  result = 1031938L / result; // Calculate Vcc (in mV); 1031938 = 1.008737*1023*1000

  return result; // Vcc in millivolts
}

void shumodav() { // главная функция
  //заполнить таблицу нолями в начале цикла
  for (int s = 0; s < ts; s++ ) {
    for (int e = 0; e < 2; e++) {
      myArray[s][e] = 0;
    }
  }
  // основной цикл накопления данных
  for (numbersamples = 0; numbersamples < ns; numbersamples++) {
    
#if NASTROYKA
    aread = readVcc();
#else
    aread = analogRead(ain);
#endif

    // уходим работать с таблицей////
    tablework();
  }
  // заполнен массив, вычисляем максимально повторяющееся значение
  int max1 = 0; // временная переменная для хранения максимумов
  for (byte n = 0; n < ts ; n++) {
    if (myArray[n][1] > max1) { //перебор 2-х элементов строк
      max1 = myArray[n][1]; // запомним куда больше всего попало
      firstsample = myArray[n][0]; // его 1 элемент = промежуточный результат.
    }
  }

  //*****вторая фаза алгоритма *********/////
  // если старый отсчёт не равен новому,
  //и флага включения счёта времени небыло, то
  if (oldfirstsample != firstsample  && waitbegin == false) {
    prevmillis = millis(); // скидываем счётчик времени на начало
    waitbegin = true;
  } // активируем флаг ожидания
  // если до истечения лимита времени отсчёт сравнялся
  //со старым, то снимаем флаг
  if (waitbegin == true && oldfirstsample == firstsample) {
    waitbegin = false;
    rezult = firstsample;
  }
  // если всё таки отсчёт не сравнялся, а время ожидания вышло
  if (waitbegin == true && millis() - prevmillis >= mw) {
    oldfirstsample = firstsample;
    waitbegin = false;
    rezult = firstsample;
  } //то признаём новый отсчёт конечным результатом функции.
} // конец главной функции

void tablework() { // функция внесения данных в таблицу
  // если в таблице совпадает отсчёт, то инкрименировать
  //его счётчик во втором элементе
  for (byte n = 0; n < ts; n++) {
    if (myArray[n][0] == aread) {
      myArray[n][1] ++;       return;
    }
  }
  // перебираем ячейки что б записать значение aread в таблицу
  for (byte n = 0; n < ts; n++) {
    if (myArray[n][0] == 0)  { //если есть пустая строка
      myArray[n][0] = aread;         return;
    }
  }
  // если вдруг вся таблица заполнена раньше чем кончился цикл,
  numbersamples = ns;
} //  то счётчик циклов на максимум


Как упоминалось выше, в контроллерах есть внутренний источник опорного напряжения 1.1В. Он стабильный, но не точный. Поэтому его реальное напряжение скорее всего отличается от 1.1В. Чтобы узнать, сколько на самом деле, необходимо провести калибровку:

* Ставим #define NASTROYKA 1
* Компилируем, заливаем код, запускаем, запоминаем значение на дисплее, например 5741
* Измеряем мультиметром реальное напряжение на выходе преобразователя, например 4979 (это в мВ)
* Считаем (4979/5741)*1.1=0.953997 — это реальное напряжение источника опорного напряжения
* Считаем 0.953997*1023*1000 = 975939
* Записываем результат в строку 100 в виде result = 975939L;
* Ставим #define NASTROYKA 0
* Компилируем, заливаем код, запускаем, готово.

В программе DipTrace разводим плату, размером с OLED дисплей 37х12мм

Полчаса нелюбимого занятия ЛУТом.

Найдите 10 отличий
Первый раз я облажался и протравил зеркальную плату, причем заметил это только когда начал паять элементы.


Припаиваем. SMD индуктивность 4,7мкГн была мне любезно предоставлена SS_SerG, большое спасибо, Сергей.

Собираем бутерброд из платы и экрана. На концах проводов я припаял небольшие магниты, вольтметр сам прищелкивается к измеряемому аккумулятору. Неодимовые магниты при нагреве выше 80 градусов теряют магнитные свойства, поэтому паять нужно легкоплавким сплавом Вуда или Розе очень быстро. Еще раз проводим калибровку и проверяем точность измерения:



Бонус
Обманул, бонуса нет, простите.
Предвидя комментарии, что устройство с подобным и даже лучшим функционалом можно купить на Али сразу соглашусь без торговли. Вот оно, ищется по названию BT-168D. Стоит около $4.



Код программы, библиотеку OLED дисплея и печатную плату можно скачать ПО ССЫЛКЕ

Спасибо за внимание, всем добра.
Планирую купить +20 Добавить в избранное
+126 +189
свернутьразвернуть
Комментарии (95)
RSS
+
avatar
+44
Вот значит оно какое «из пушки по воробьям»…
+
avatar
+5
Это даже не по воробьям, а по микробам…
+
avatar
+29
Это ж надо так заморочится что бы проверить батарейку.
А за прямые руки +
+
avatar
+2
Красивое, конечно, решение.
Чем не устроил простой вольтметр за 1-1.5 доллара? Цвет цифр на дисплее можно выбрать
+
avatar
+8
Простой вольтметр измеряет от 4х вольт или требует внешнее питание.
+
avatar
0
у меня начинал показывать гдето от 2,5В но в данном случае от этого не легче :)
+
avatar
+1
  • Lvenok
  • 03 июня 2018, 11:47
Ну можно было бы сделать на литиевых таблетках внешнее питание…
+
avatar
0
  • dansar
  • 03 июня 2018, 13:17
Конечно можно. А можно вообще для этих целей использовать мультиметр, он уже с питанием. Тут основной плюс в миниатюрности.
+
avatar
0
  • kopa
  • 03 июня 2018, 15:55
ой ну можно как в обзоре поставить повышалку на питание с 1В до 5В
+
avatar
0
Такой я тоже делал, габариты получаются больше :)
И точность даже на краях измеряемого диапазона разбегается на пару десятых вольта.
+
avatar
+10
За миниатюрность и магнитики однозначно плюс!
А, ну и пожалуйста за индуктивность ))) у меня в закромах всяко найти можно )))
+
avatar
0
  • fokcuk
  • 03 июня 2018, 06:09
кто знает, где миллиампер метр взять за недорого? Мне надо на 4-5 каналов. Аналоговые есть в продаже, но не дешевые
+
avatar
+11
Цена вопроса 3$.
+
avatar
+3
  • SLS159
  • 03 июня 2018, 07:12
Указываете цену — покажите «где?».
+
avatar
+5
+
avatar
-3
  • vovand
  • 03 июня 2018, 09:40
Ссылки битые!
+
avatar
0
  • ailcat
  • 03 июня 2018, 14:47
Не битая — открывается.
Но у меня вылазит еще 2,36 за доставку — а это уже больше 5 баксов…
+
avatar
+7
  • CTAHOK
  • 03 июня 2018, 07:43
2.69$
стрелочный ещё дешевле
+
avatar
+2
Стрелочный из индикатора от магнитофона и лампочкой от фонарика в качестве нагрузки давно делал. Обзор ПЛЮС.
+
avatar
+2
  • iG0Lka
  • 03 июня 2018, 10:35
аналогично.
лет этак 25 назад делал…
только я не лампочку ставил, а резистор. Вернее два один достаточно большой, а второй подключался кнопочкой.
И еще поставил диод — в результате шкала стала не от 0В до 1.5В, а от 0.8В до 1.5В
т.е. стало лучше видно сколько там в батарейке.
Пользуюсь до сих пор.
+
avatar
-1
«Измеритель батареек» вбиваете на али, и сколько угодно их…
+
avatar
+4
— Я правильно интерпретирую семантику вопроса, но полностью игнорирую его суть.
— Не могли бы вы привести пример?
— Мог бы.
Суть в ссылке именно на один единственный лот с той самой ценой, а не на море похожих «вот тоже самое, но по правильной цене сам ищи». Ибо потом начинается «это не то же самое, хоть и похожее», «у этого комплектация другая», «у этого доставка $20» и так далее и тому подобное.
+
avatar
+1
Мой BT-168D через 2 года начал глючить. При напряжении 1,1 В работает нормально, при 1,5 В — генератор случайных чисел, экран бегает цифрами. Где копать?
Кстати ток нагрузки при 1,5 В — 40 мА.

+
avatar
0
Выбросить или разобрать и купить новый. Время на колупание китайского гуано не вернётся. А опыт лучше приобретать в чем-то действительно интересном.
+
avatar
+3
опыт на то и опыт, что бы получать его везде и во всём! когда есть свободное время (или отвлечься от какой то работы лучше всего это заняться какой то безделушкой) самое то поковырять что нибудь особо не нужное, сломается так и фиг с ним
+
avatar
0
  • sir0ta
  • 03 июня 2018, 12:05
опорное напряжение проверить.
+
avatar
0
  • IGeras
  • 19 августа 2018, 16:32
Скорее всего где-то микротрещина, и если она под соплей, то долго будете искать.
+
avatar
0
  • monop
  • 03 июня 2018, 09:14
Спасибо, прибарахлился. Искал раньше как раз с цифровой индикацией
+
avatar
+1
  • sir0ta
  • 03 июня 2018, 12:04
Может стоит купить простейший мультиметр? Толку больше.
+
avatar
+6
  • ailcat
  • 03 июня 2018, 14:52
Толку меньше.
по причине отсутствия нагрузки на батаерйку в процессе измерения.

Ситуация аккурат трехдневной давности, с парой не новых литиевых 3-вольтовых батареек.
Тестером намерили у одной 3,12В, у второй 2,96В. Угадайте, какую в итоге вставили в пульт?
В пульт поставили ту, что на тестере показала себя хуже (2,96В).
потому что при замере тестером батареек на ней остались 2,94 вольта, а якобы хорошая «просела» до 2,1 вольта.
+
avatar
+2
  • sir0ta
  • 03 июня 2018, 17:38
резистор ей в цепь )))
+
avatar
+1
Между прочим, у этой нагрузка тоже весьма тухленькая. Более-менее приличная — в стрелочном варианте.
+
avatar
0
  • wwest
  • 04 июня 2018, 01:14
ЭДС и рабочее напряжение не выучили?
+
avatar
0
  • Serko
  • 05 июля 2018, 10:40
Не пойму, что взяли — чёрный с ЖК цифрами BT-168D? Он нещадно врёт, показания совпадают с реальностью только на 1.5В.
+
avatar
0
  • monop
  • 05 июля 2018, 11:16
Да, взял именно эту поделку — батарейки проверять. Фуфло?
+
avatar
0
  • Serko
  • 05 июля 2018, 12:15
Повторю свой коммент:
Провел замеры на лабораторном БП. Работать начинает примерно на 0.8 вольтах, но показывает при этом 0.6В При понижении напряжения расхождение увеличивается и при 0.3 В на тестере 0. В обратную сторону при повышении напряжения расхождение уменьшается, при 1.5 В совпадает с реальным а затем наоборот начинает завышать.

Как показометр — пойдёт. Точности нет и ниже 0.8в просто не включится.
+
avatar
0
Есть подобная. Не один раз замечал, что показания плывут в зависимости от того, насколько хорош контакт.
+
avatar
0
  • Serko
  • 05 июля 2018, 10:36
Брал такой. Врёт и сверху и снизу, причём в обе стороны, а не просто сдвигает показания.

Провел замеры на лабораторном БП. Работать начинает примерно на 0.8 вольтах, но показывает при этом 0.6В При понижении напряжения расхождение увеличивается и при 0.3 В на тестере 0. В обратную сторону при повышении напряжения расхождение уменьшается, при 1.5 В совпадает с реальным а затем наоборот начинает завышать.
+
avatar
+1
  • RBS
  • 03 июня 2018, 06:43
Я обычно вставляю кратковременно батарейку (или аккум) в OPUS и смотрю напряжение на нем. Да и батарейки используются все реже и реже. Все переходят на аккумуляторы.
+
avatar
+1
  • Bald
  • 03 июня 2018, 06:47
Ну на аккумуляторе тоже мерить надо (причём даже ещё важнее). Переходят на аккумуляторы уже давно, в 97 я купил формата аа в плеер, но в 18 ещё полно батареек. Даже больше чем в 97.
+
avatar
+2
  • iG0Lka
  • 03 июня 2018, 10:41
а вот и нет :)
После статьи Надежина, с тестом самых дешевых батареек из ашана и етс в сравнении с дорогими, я стал покупать в ашане — 4штуки ААА стоят 19рублей.
в пульты и етс самое то.
+
avatar
0
  • sir0ta
  • 03 июня 2018, 12:08
в пульты и етс самое то
Давно в фикспрайсе беру блистеры AA и AAA по 10 батареек. Крайни раз 55 рублей кажется отдавал. Милейшее дело. В пульте от сплита подобные батарейки живут по году. В гиропульте хтатает на 3-4 месяца. При цене в 5.5 рублей за батарейку… сказка )
Знакомый покупает без малого дюраселы, а потом жалится что через 2 года у него пульт умер от того что батарейка потекла )
+
avatar
0
брал, ооочень быстро дохнут, ни в брелок от старлайна, ни в мышь не воткнешь — месяц-полтора в лучшем случаи… как то раз был проездом в одном городе с икеей — вот те батарейки сказка по сравнению с фиксом, на гораздо дольше хватает
+
avatar
0
  • sir0ta
  • 03 июня 2018, 14:07
ни в брелок от старлайна, ни в мышь не воткнешь — месяц-полтора в лучшем случаи…
дешевая соль — дешевая батарейка. На что вы расчитывали?
на гораздо дольше хватает
На сколько? Икеи рядом нет, но для A91 лучше дюрасела может быть только выдранный OEM Duracel из Microsoft'овских беспроводных комплектов.
+
avatar
+4
В фикспрайсе надо брать алкалиновые. Дёшево и сердито. В автопейджере Pandora работают 2,5 месяца, столько же, как дорогие брендовые.

+
avatar
0
  • sir0ta
  • 03 июня 2018, 17:37
4 за 55 или 10 за 55? А эти так же работают в пультах как и простые.
+
avatar
+1
работают так же, перестают работать с разными последствиями;)

соль очень эффективна в (недолговечных) детских игрушках, особенно C или D))
+
avatar
0
обычно беру что то в районе 30-40 рублей из алкалиновых в ближайшем магазине радиотоваров, хватает на дольше, работают ровно столько же сколько дюрасел (который стоит 50-60 рублей) а т.к. юзаю брелки старалайна уже 7 лет, то опыт смены батарей в них большой))))
+
avatar
0
  • sir0ta
  • 04 июня 2018, 08:51
Хз. Меня ни гп, ни… я что только не пробовал. У самого A91 с… давно короче. Лет 6 точно. Только дюрасел. они более или менее 3 месяца живут стабильно. Остального от силы на 2 месяца хватает. Я даже как-то попробовал аккумы, но они же гады в большинстве своем 1.2В… не прокатило короче ) А на 1.5 аккумы стоили тогда просто не реально.
+
avatar
+1
Не, в фикспрайсе дешевые солевые просто ужас. В нашем советском АОНе с питанием от телефонной сети и дополнительным от батареек (на время разговора и пр.) можно использовать только солевые (типа эффект подзаряда реализован). Так вот батарейки типа Сони работают больше года. А эти 2-3 месяца.
+
avatar
0
  • sir0ta
  • 03 июня 2018, 17:37
можно использовать только солевые
Соль соли рознь )
+
avatar
0
(типа эффект подзаряда реализован)
вот поэтому с большинством правильно рассчитанных батареек рабтать не будет — заканчивается либо цинк, либо электролит, либо оба;)
+
avatar
+7
  • Bald
  • 03 июня 2018, 06:44
Великолепно! Хотя и дороже готового. Но сейчас почти со всеми изобретениями так.
+
avatar
0
  • ailcat
  • 03 июня 2018, 21:02
И именно это правильно. Серийное изделе просто обязано быть дороже штучного.
+
avatar
+7
Купить каждый может, а вот самому сделать…. Вполне может дополнить какой нибудь девайс с питанием от батарейки, а при использовании аккумулятора пользы ещё больше.
+
avatar
0
  • dgin
  • 03 июня 2018, 08:06
Неодимовые магниты покрыты никелем, чтоб его залудить нужно кислотный флюс применять, а будет ли флюс работать при температуре до 80°С?
+
avatar
0
  • ksiman
  • 03 июня 2018, 08:35
Никель и без кислотного флюса прекрасно паяется, а вот неодимовые магниты нагрев при пайке не выдерживают
+
avatar
+6
Прошу прощенния, но я таблетки ниодимовых магнитов сто раз паял (немного поскоблить скальпелем и паяльником сороковаткой с паяльным жиром времен СССР совсем кратковременным касанием припаиваем проводок). Ни один магнит не размагнитился.
Делал тоже так кеммы для зарядки аккумуляторов.
+
avatar
+2
  • ksiman
  • 03 июня 2018, 10:23
но я таблетки ниодимовых магнитов сто раз паял
Видимо мало паяли :)
Он полностью и не размагничивается, но магнитная сила заметно снижается. Чем больше по размеру магнит — тем менее заметно размагничивание.
+
avatar
0
конечно, — та часть объёма, что успела прогреться выше точки Кюри, та и размагнитилась
отсюда совет: не использовать магнитики худенькие & с одной парой полюсов)
+
avatar
0
  • skif31
  • 03 июня 2018, 09:15
Никель паяю ортофосфорной кислотой. Ей всё равно температура, хоть минус.
+
avatar
0
А зачем тогда токопроводный клей, потом лаком. Я так к плоским литиевым аккумуляторам провода приклеил — вывода никак не мог залудить.
+
avatar
+2
  • wwest
  • 04 июня 2018, 01:16
Точно китайские неодимовые магниты до 80 С?
Я вот свои китайские(десятками) паяю ортофосфорной кислотой жалом паяльника разогретого до 300С(быстро 2-3 сек).
Ещё ни один магнит не испортился.Магнитную силу проверял ДО и ПОСЛЕ пайки-никакой разницы НЕ обнаружено.Паял и «худенькие» кругляши ф8мм х1мм.
У нас разный неодим или разные китайцы?
Или очередные мифы вашего городка?
+
avatar
+3
  • trembo
  • 03 июня 2018, 09:08
Нет защиты от переполюсовки…
+
avatar
+1
Кстати да, с этим надо осторожно.
+
avatar
+1
Есть к чему стремиться при следующих модификациях ))
+
avatar
-3
Как это забыть?
+
avatar
0
+
avatar
0
Не, не сравнимо — гиковские штучки вполне приятны. В посте же, как в анекдоте про электриков: один стоит на табуретке и держит лампочку, еще трое подняли эту табуретку и ходят по-кругу, что б её выкрутить.
Просто если уж используешь контроллер, сделай ему и задачу, например измерить внутреннее сопротивление батареи.
+
avatar
0
например измерить внутреннее сопротивление батареи
была такая мысль, но здесь без внеcения доп. деталей единственная серьёзная нагрузка, которой можно манипулировать — oled; хватит ли этого для получения хоть одной значащей цифры^ — не решусь оценить (ну что там у автора уже жрёт «400» мВт?!)
пусть это будет просто красивая учебная задача;)

^ или хотя бы качественной оценки: «у вас отличный аккум aaa или дохлая солевая d»
+
avatar
+1
Я правильно понимаю, что в отличие от «бонус»а данным изделием можно также удобно проверить 18650?
+
avatar
+6
Да, длина проводов и диапазон напряжений рассчитан на литий
+
avatar
0
На проводки можно пружинки гибкие от авторучек надеть (растянуть при необходимости), меньше шансов, что переломятся.
+
avatar
0
Достаточно «мягких силиконовых», которые очень многожильные. Их сложно переломить.
+
avatar
0
  • Kruzo
  • 03 июня 2018, 20:21
Микроконтроллер STM8L151G6U6 в QFN корпусе имеет размеры 4x4мм и имеет лучшую периферию, в данном случае 12бит АЦП.
Я уж не говорю про то, что имеет 26 GPIO в этих 4x4мм, на борту 32КБ флеша, DMA, ЦАП, 3 таймера (2 по 16бит), нормальную отладку и программирование по 4м проводам, изменение настроек на лету, а не через какие то фьюзы и т.д. И стоит… (барабанная дробь)… тот же бакс на али. Не понимаю как при этом можно выбирать атмелы :).
+
avatar
0
  • Kruzo
  • 13 июля 2018, 10:54
А N76E003AT20 стоит вообще 0.3$ на али имея 18Кб флеша, 8 каналов 12бит АЦП, 4шт. 16 бит таймера и т.д. Сейчас китайцы их стали ставить на свои платки вместо STM8.
+
avatar
0
  • konog
  • 03 июня 2018, 20:37
Подскажите, а что поменять в коде чтоб можно было мерять до 20 Вольт?
+
avatar
+1
Чтобы до 20В мерить нужно ещё и аппаратно кое-что добавить, а именно делитель ~ 1/5 перед входом АЦП тиньки.
+
avatar
0
хорошо бы дополнить обзор антикварной схемой
кстати, корпус, — что, сделан из слюдяного конденсатора? класс!

Полчаса нелюбимого занятия ЛУТом.
да лаадно, а шелкография откуда взялась?)

при случае, допишите в сам обзор, какой получился объём прошивки (и каковы планы на v2.0:)

и соглашусь с Kruzo: stm8s стоит (стоило?) заметно меньше $1, в виде готового изделия^ — всё равно придётся их когда-нибудь изучать…

^ только «правой» половины схемы, ессно
+
avatar
+2
Шутите?
Ещё раз посмотрел свои фото, шелкографию рассмотрел только на покупном OLED дисплее.
Корпус — прозрачная термоусадка :)
+
avatar
0
  • Kruzo
  • 13 июля 2018, 11:10
Я чуть выше написал, но повторюсь. Китайцы уже пошли дальше. Вместо stm8s003 ставят N76E003AT20. 0.3$ на али. Совместимы по выводам. Но 18Кб флеша, 8 каналов 12бит АЦП, 4шт. 16 бит таймера, 2 uart и т.д.
+
avatar
+2
  • pastka
  • 04 июня 2018, 04:56
Отличный гаджет, да и обзор =)
+
avatar
0
  • Grey_P
  • 04 июня 2018, 10:01
Увы, бессмысленная приблуда. Нет возможность оценки под нагрузкой.
Обязательно должна быть кнопка, чтобы подключать нагрузку прямо во время измерения, чтобы оценить просадку напряжения. Это — главная характеристика «свежести» батарейки.
+
avatar
0
  • AFCrio
  • 05 июня 2018, 19:33
Если не работает яндекс диск, то скачиваем с гуглдиска
+
avatar
0
  • rx3apf
  • 06 июня 2018, 23:19
Кстати, а где водятся LT1308 по такой цене?
+
avatar
+1
Я покупал у этого продавца. Посмотрел, цена сейчас $4,70
+
avatar
0
  • rx3apf
  • 07 июня 2018, 15:15
Ок, спасибо!
+
avatar
+2
— Алё! Это Болодя?
— Нет, это Бадик!
+
avatar
0
  • sim31r
  • 10 июня 2018, 01:02
Микросхема драйвер очень дорогая, наверное лучше заменить чем-то
+
avatar
0
Посмотрите чуть выше комментарий, цена $4,70 за 5 штук. Одну за 700рэ я бы тоже не стал брать.
+
avatar
0
  • HawkD
  • 17 января 2020, 09:54
Не компилируется, Arduino IDE 1.8.7: Battary_tester_:67:2: error: #else without #if
#else
^~~~
Battary_tester_:70:2: error: #endif without #if
#endif
^~~~~
exit status 1
#else without #if
Подскажите как решить, версию IDE, ссылку на платы для IDE… Заранее спасибо.
+
avatar
0
Извиняюсь, в скетче странным образом склеились две строки, исправил и перезалил на Яндекс-диск.
+
avatar
0
  • HawkD
  • 20 января 2020, 13:42
Спасибо, теперь компилируется, залил в Digispark, как приедет экран соберу.
+
avatar
0
Скажите пожалуйста, можно ли использовать attiny13?
+
avatar
0
Хороший проэт!!! А можно на этой же микросхеме и этом дисплее или чуть побольше, сделать маленький фонарик скажем на 500 люмен? Был бы очень благодарен за ответ.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.