Измерение напряжение показывает ерунду

isprite
Offline
Зарегистрирован: 23.04.2018

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

Ардуина на 3.3 вольта

Питание макетной платы 3.3 и 5.2 вольта

5.2 вольта идут на мосфет с мосфета на резистивный делитель, с делителя в аналоговый порт.

Снимаю информацию 20 раз с нахождением среднего:

setup
  pinMode(5, OUTPUT);//мосфет
  pinMode(A1, INPUT);//измерение

loop
  digitalWrite(5, HIGH);//включаем мосфет
  //Измерение
  float j = 0;
  for (int i = 0; i<20; i++ ) {
    j += analogRead(A1);
    delay(10);
  }
  digitalWrite(5, LOW);//выключаем мосфет
  //Вывод
  j /=20;
  Serial.println(j);

 

Первый луп информация снимается корректная, каждый последующий значение падает, пока не доходит до 300 и далее всегда 300 (плюс-минус)

Мультиметр показывает, что на порту 2.6 вольт стабильно (когда мосфет включен).

Что не так?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Давайте схему и нормальный скетч (который компилируется и может исполняться).

isprite
Offline
Зарегистрирован: 23.04.2018

Вот скетч и схема (на схеме справа у меня ещё TTL, я не нашёл как его нарисовать в этом редакторе)

void setup() {
  analogReference(INTERNAL);
  Serial.begin(9600); // для отладки
  pinMode(5, OUTPUT);//мосфет
  pinMode(A1, INPUT);//измерение
}

void loop()
{
  digitalWrite(5, HIGH);
  float j = 0;
  for (int i = 0; i<20; i++ ) {
    j += analogRead(A1);
    delay(10);
  }
  j /=20;
  digitalWrite(5, LOW);
  Serial.println(j);//255
  delay(1000);
}

 

b707
Offline
Зарегистрирован: 26.05.2017

isprite. во первых это не схема, а черт знает что. Какой у вас мосфет, какие из его выводов черные, какие красные????

Мосфеты на схеме показываются так:

А то, что вы привели как схему - это красивая картинка для детей 8-12 лет.

 

Ладно, проехали. Для упрощения тестирования предлагаю мосфет из схемы удалить вовсе, а а делитель напряжения поставить просто между VCC GND. Для этого два "черных" проводника мосфета на вашей схеме - нужно соединить, а красный провод мосфета - отсоелинить от ардуино.

isprite
Offline
Зарегистрирован: 23.04.2018

Убрал из схемы мосфет.

Вот результат работы из терминала:

1023.00
997.85
867.75
756.00
661.20
575.65
512.40
465.10
428.20
403.00
382.20
368.95
357.65
371.40
346.20
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

isprite пишет:

Т.е. Вы сигнал подключили к нулевому ADC, а в скетче читаете с первого. Правильно я понял?

И, кстати, строка 5 в скетче абсолютно лишняя. Не уверен, мешает ли, но то, что не помогает - точно.

isprite
Offline
Зарегистрирован: 23.04.2018

Спасибо за наводку. Исправил A1 на A0. Но теперь чтение всегда выводит 1023.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

isprite, и должно быть 1023. У вас референсное напряжение (1.1v) меньше входного (2.6v)на АЦП, а это грубая ошибка.

isprite
Offline
Зарегистрирован: 23.04.2018

Заработало!

analogReference(DEFAULT);

Сейчас мосфет верну и ещё раз проверю.

Правда не понятно с опорным напряжением - у меня 2,6 вольт, значение 801, 801/1023=0.78, 0.78*3.3=2.58.

Почему-то везде советуют напряжение на 1.1 умножать, а у меня практически 1 к 1 выходит.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Это Вы спрашивайте у тех, кто советует.