Змінюй хід війни! Допомагай ЗСУ!

Проблема з похибкою в найпростішого вольтметра на STM32

🟠 22:07 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада

KHTRE

Привіт!
Статус: Offline
Реєстрація: 19.06.2024
Повідом.: 3
Адреса: Київ
  • 🟠 22:07 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #1
Всім привіт.
Я початківець в плані електроніки.
Тож вирішив почати з простого.
Етап світлодіодів пройшов, підключення всяких готових модулів також.
Дійшло діло до АЦП.
І тут виникли проблеми.
Я почитав як зробити простий вольтметр і дочитався до того, що треба просто розподільник напруги підключити до АЦП.
Наче все просто.
І наче все працює, але похибка якась дивна, нестабільна...

Тож все по порядку....

Як я вираховував розподільник.
Максимальна напруга на АЦП - 3.3В.
Я хочу вимірювати напругу до 20В.
Тож підібрав резистори 5,2 КОм і 1 КОм
Максимальна напруга виходить 3,22 (наче все добре).

Програма під STM дуже проста.
C:
while (1)
  {

      HAL_ADC_Start(&hadc1);
      HAL_ADC_PollForConversion(&hadc1, 100);
      result = HAL_ADC_GetValue(&hadc1);
      HAL_ADC_Stop(&hadc1);

      V = ((float)result / (float)4096)*3.3;

      inputVoltage = V * (5.20 + 1.0) / 1.0 * 1.042;

      measurement++;


      HAL_Delay(500);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

І наче все працює, але нерівномірно.
При вимірюванні батарейки 1,5В показує 2В
При вимірюванні 3В показує 4В
При вимірюванні 5В показує 4,7В
При вимірюванні 12,6В показує 12,1В

Я розумію, що схема найпростіша і похибка буде.
І те, що я отримую в останніх 2х випадках можна підправити коефіцієнтом.
Але коли вимірювана напруга близька чи нижча за 3,3В мінкроконтролера, то похибка стає зовсім нелінійною.

Отож питання:
Може я десь щось не так підключив?
Може резистори надто великі/малі (може треба було не КОм,а просто Ом)?
Коротше, що я роблю не так і як можна покращити результат?
 

Вкладення

  • Screenshot_9.png
    Screenshot_9.png
    16.3 КБ · Перегляди: 15
  • 🟠 22:07 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #2
Всім привіт.
Я початківець в плані електроніки.
Тож вирішив почати з простого.
Етап світлодіодів пройшов, підключення всяких готових модулів також.
Дійшло діло до АЦП.
І тут виникли проблеми.
Я почитав як зробити простий вольтметр і дочитався до того, що треба просто розподільник напруги підключити до АЦП.
Наче все просто.
І наче все працює, але похибка якась дивна, нестабільна...

Тож все по порядку....

Як я вираховував розподільник.
Максимальна напруга на АЦП - 3.3В.
Я хочу вимірювати напругу до 20В.
Тож підібрав резистори 5,2 КОм і 1 КОм
Максимальна напруга виходить 3,22 (наче все добре).

Програма під STM дуже проста.
C:
while (1)
  {

      HAL_ADC_Start(&hadc1);
      HAL_ADC_PollForConversion(&hadc1, 100);
      result = HAL_ADC_GetValue(&hadc1);
      HAL_ADC_Stop(&hadc1);

      V = ((float)result / (float)4096)*3.3;

      inputVoltage = V * (5.20 + 1.0) / 1.0 * 1.042;

      measurement++;


      HAL_Delay(500);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

І наче все працює, але нерівномірно.
При вимірюванні батарейки 1,5В показує 2В
При вимірюванні 3В показує 4В
При вимірюванні 5В показує 4,7В
При вимірюванні 12,6В показує 12,1В

Я розумію, що схема найпростіша і похибка буде.
І те, що я отримую в останніх 2х випадках можна підправити коефіцієнтом.
Але коли вимірювана напруга близька чи нижча за 3,3В мінкроконтролера, то похибка стає зовсім нелінійною.

Отож питання:
Може я десь щось не так підключив?
Може резистори надто великі/малі (може треба було не КОм,а просто Ом)?
Коротше, що я роблю не так і як можна покращити результат?
Ты документацию на АЦП читал, насколько я помню в кубе, там где документы есть 3 или 4 статьи на тему точности измерений
 
  • 🟠 22:07 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #3
Єдині документи, що я знайшов в Кубі відносяться саме до користування Кубом.
 
  • 🟠 22:07 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #4
Не факт, що опорна напруга АЦП саме 3.3 В. Потрібно її заміряти. Для цього на одному з каналів АЦП підключена внутрішня напруга, наприклад, 1.1 В. Міряєш її, отримуєш код, який збільшуєш у 3 рази (3.3 В / 1.1 В = 3), отримане значення використовуєш замість 4096. А ще перед кожним включенням, потрібно проводити автокалібровку. Як — залежить від мікроконтролера, читай мануал.
 
  • 🟠 22:07 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #5
Дякую, буду розбиратись.
 
  • 🟠 22:07 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
  • #6
Назад
Зверху Знизу