- 🟠 22:07 Загроза ударних БпЛА Загроза БпЛА типу «Шахед»#м_Харків_та_Харківська_територіальна_громада
- #1
Всім привіт.
Я початківець в плані електроніки.
Тож вирішив почати з простого.
Етап світлодіодів пройшов, підключення всяких готових модулів також.
Дійшло діло до АЦП.
І тут виникли проблеми.
Я почитав як зробити простий вольтметр і дочитався до того, що треба просто розподільник напруги підключити до АЦП.
Наче все просто.
І наче все працює, але похибка якась дивна, нестабільна...
Тож все по порядку....
Як я вираховував розподільник.
Максимальна напруга на АЦП - 3.3В.
Я хочу вимірювати напругу до 20В.
Тож підібрав резистори 5,2 КОм і 1 КОм
Максимальна напруга виходить 3,22 (наче все добре).
Програма під STM дуже проста.
І наче все працює, але нерівномірно.
При вимірюванні батарейки 1,5В показує 2В
При вимірюванні 3В показує 4В
При вимірюванні 5В показує 4,7В
При вимірюванні 12,6В показує 12,1В
Я розумію, що схема найпростіша і похибка буде.
І те, що я отримую в останніх 2х випадках можна підправити коефіцієнтом.
Але коли вимірювана напруга близька чи нижча за 3,3В мінкроконтролера, то похибка стає зовсім нелінійною.
Отож питання:
Може я десь щось не так підключив?
Може резистори надто великі/малі (може треба було не КОм,а просто Ом)?
Коротше, що я роблю не так і як можна покращити результат?
Я початківець в плані електроніки.
Тож вирішив почати з простого.
Етап світлодіодів пройшов, підключення всяких готових модулів також.
Дійшло діло до АЦП.
І тут виникли проблеми.
Я почитав як зробити простий вольтметр і дочитався до того, що треба просто розподільник напруги підключити до АЦП.
Наче все просто.
І наче все працює, але похибка якась дивна, нестабільна...
Тож все по порядку....
Як я вираховував розподільник.
Максимальна напруга на АЦП - 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В мінкроконтролера, то похибка стає зовсім нелінійною.
Отож питання:
Може я десь щось не так підключив?
Може резистори надто великі/малі (може треба було не КОм,а просто Ом)?
Коротше, що я роблю не так і як можна покращити результат?