Измерение напряжения литий-ионного элемента, используемого для питания Arduino через повышающий модуль

Могу ли я измерить напряжение литий-ионного элемента с помощью АЦП Arduino, который используется для питания того же Arduino через повышающий модуль (XL6009)? Выходное напряжение повышающего модуля составляет 9 вольт.

, 👍1

Обсуждение

Примечание: почему вы повышаете напряжение до 9 В (и, предположительно, используете регулятор напряжения на нано, чтобы вернуть его до 5 В)?, @Gerben

@Gerben Потому что напряжение литий-ионного элемента может находиться в диапазоне 3-4,2 вольт в зависимости от уровня заряда. Поэтому, чтобы аналоговая схема (с использованием LM358) и Arduino nano работала при стабильном напряжении, мне нужно повысить входное напряжение. Кроме того, модуль XL6009 будет поддерживать стабильное выходное напряжение на уровне 9 В независимо от входного напряжения., @Muhammad Saad


2 ответа


0

Вы можете использовать аналоговый вывод для измерения напряжения, если оно не превышает 5 В постоянного тока (при условии, что ваш Arduino работает при 5 В).

Здесь есть обучающее руководство: https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage

void setup() {
  Serial.begin(9600);
}

void loop() {

  // считываем входной сигнал на аналоговом выводе 0:
  int sensorValue = analogRead(A0);

  // Преобразуем аналоговое показание (которое находится в диапазоне от 0 до 1023) в напряжение (0–5 В):
  float voltage = sensorValue * (5.0 / 1023.0);

  Serial.println(voltage);
}
,

Вы можете использовать делитель напряжения, чтобы увеличить диапазон измерения. Например, делитель, сделанный из двух одинаковых резисторов, снизит напряжение ровно на 50% от входного напряжения, так что вы можете измерять напряжение от 0 В до 10 В и не превышать предел в 5 В на входе Arduino (хотя вы теряете точность), @Filip Franik


2

Я автор библиотеки под названием BatterySense, и вы можете использовать ее для достижения своей цели. В файле Readme репозитория вы также найдете схемы электропроводки и примеры использования, но чтобы дать вам общее представление...

  1. Убедитесь, что отрицательный полюс вашей батареи имеет непрерывность с контактом GND вашего Arduino: вам нужно определить, не портит ли модуль повышения напряжения общую землю, но если непрерывность есть, то все в порядке
  2. Добавьте соединение от положительной клеммы аккумулятора к одному из аналоговых контактов Arduino
  3. Используйте библиотеку BatterySense для получения напряжения батареи и процентного уровня
,

Большое спасибо OP и Roberto. Я также хочу измерить LiPo, который питает мой Arduino. Отличная библиотека, я только что проверил ее. Я подозреваю, что у меня случай, когда отрицательный вывод моей батареи не подключен напрямую к GND, как часть конструкции, так что ИС защиты от переразряда может выполнить свою работу. Есть какие-нибудь предложения для этого сценария? Вот схема и печатная плата https://easyeda.com/GreatScott/LiPoChargeProtectBoost_copy-3d9f4c3ddc7347d7861776340b9b90b7, ссылка на который есть в отличном видео GreatScott! на YouTube здесь https://www.youtube.com/watch?v=Fj0XuYiE7HU, @legoblocks

Я считаю, что вы могли бы получить больше внимания, если бы задали правильный вопрос, а не просто оставили комментарий. Возможно, вы имеете в виду этот вопрос и ответ в своем... Я не знаю, как можно обойти проблему с неразделенным заземлением, но мне определенно будут интересны ответы, которые вы получите ;-), @Roberto Lo Giacco

Спасибо, Роберт, это отличное предложение. Я поэкспериментирую с измерением напряжения с защитой от переразряда и без нее, попробую в любом случае, так как подозреваю, что Arduino будет измерять напряжение только тогда, когда он действительно включен, и, следовательно, подключен к земле через MOSFET, который включает и выключает защитная ИС. Если это даст странные результаты / будет какая-то разница в измеренном напряжении батареи, то я опубликую новый вопрос. Еще раз спасибо, отмечу вас / это!, @legoblocks

Крутой парень из библиотеки. +1, @Tim_Stewart