Проблема с плавающей точкой analogRead

Для университетского лабораторного курса я должен реализовать ИБП с внутренней ЛиПо-батареей . Блок использует как заряжатель батареи конвертер самеца оленя

У меня есть только проблема с зарядным устройством (buck converter). За несколько недель до этого я проверил код, и он работает без проблем. Теперь я могу заметить, что аналоговое значение, которое я читаю, слишком сильно плавает, и это представляет собой проблему для фаз постоянного тока (CC) и постоянного напряжения (CV) процесса зарядки батареи.

Я обнаружил, что эта проблема возникает, когда я подключаю arduino после запуска ПК, в то время как она не возникает, когда я подключаю USB-кабель arduino и затем запускаю КОМПЬЮТЕР. Похоже, это проблема с землей arduino.

схема схемы следующая:

и вот что я получаю:

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

резистор 10 Ом помещается в понижающий преобразователь только для измерения зарядного тока, который я вычисляю следующим образом:

charging_current=(analogRead(A1)-analogRead(A2))*5.00/1023.00

Аккумулятор должен заряжаться постоянным током, равным 50 мА, до тех пор, пока напряжение батареи не станет равным 4,10 В, после этого значения аккумулятор должен заряжаться постоянным током, равным 4,20 В, до тех пор, пока зарядный ток не станет меньше 10/5 мА.

Обратите внимание, что я также стараюсь делать больше измерений для каждого напряжения: я сделал 8 измерений, а затем вычислил среднее значение, но результат не меняется.

, 👍1

Обсуждение

Пожалуйста, добавьте информацию о том, какие измерения являются плавающими и каковы фактические и ожидаемые диапазоны., @PMF

Измерения, которые прерываются, - это напряжение, которое я замаскировал в сети, на батарее и на резисторе... Таким образом, все данные, которые я прочитал с аналогового вывода Arduino...напряжение сети должно составлять около 6 В, в то время как напряжение резистора и напряжение батареи должны расти во время зарядки аккумулятора... Начинайте с 3,40 В, а напряжение должно достигать примерно 4,20 В, @Marco Toni

Я не могу разобраться ни в голове, ни в хвосте этой дурацкой штуки. Пожалуйста, предоставьте *правильную* схему, которой мы можем следовать., @Majenko

Я стараюсь дать вам более подробную информацию о проблеме и публикую схему зарядного устройства. Другие компоненты в порядке, поэтому я могу сосредоточиться на преобразователе доллара, @Marco Toni

Я бы ожидал некоторого колебания, основанного на том, где в цикле ШИМ вы выполняете измерение. То есть, в зависимости от того, включен МОП-транзистор или нет., @Gerben

есть такие же колебания, но иногда они очень маленькие, например, 40 мВ, в другое время они очень большие, например, 100/150 мВ. Еще одна вещь, которую я отмечаю прямо сейчас,когда я тестировал схему, заключается в том, что при перемещении usb-кабеля напряжение, считываемое с 3-контактного разъема (A0, A1 e A2), сильно меняется, например, на 1 В.... это связано с тем, что кабель, который я использую, не является кабелем хорошего качества?, @Marco Toni

У вас есть осциллограф для измерения сигналов? Тогда сделай это, пожалуйста. И вы, возможно, захотите использовать выход вашего Aduino, чтобы отмечать время считывания аналоговых входов. Проследи и это тоже., @the busybee

у меня нет осциллографа...., @Marco Toni

поместите колпачки параллельно резисторам делителя напряжения, начиная примерно с 100u. Кроме того, вы можете ожидать несколько уровней шума на встроенном АЦП, несмотря ни на что. Используйте внешний АЦП для более точных + точных показаний., @dandavis