Урок 15 - Как повысить точность АЦП Arduino с помощью внутреннего опорного напряжения 1,1 В
Автор: Electro Nerds Academy
Загружено: 2025-09-28
Просмотров: 688
Описание:
Урок 15 — Как повысить точность АЦП Arduino с помощью встроенного опорного напряжения 1,1 В
Здравствуйте и добро пожаловать в Академию Electro Nerds! В этом уроке мы рассмотрим, как повысить точность АЦП Arduino, используя встроенный опорный источник напряжения 1,1 В — без использования внешних модулей. Ранее мы использовали опорное напряжение LM4040, но на этот раз мы откроем скрытую функцию, уже встроенную в Arduino.
Что вы узнаете из этого видео:
✅ Мы начнем с рассмотрения блок-схемы АЦП Arduino
✅ Мы обсудим его регистры, такие как ADMUX, ADCSRA, ADCH и ADCL
✅ Как АЦП выбирает входные каналы и опорные напряжения
✅ Почему следует быть осторожным с выводом AREF.
✅ Как использовать внутренний опорный сигнал 1,1 В для калибровки
✅ Как исправить ошибки измерения напряжения в ваших проектах
✅ Почему откалиброванные значения АЦП остаются точными даже при изменении напряжения питания
Это видео обязательно к просмотру, если вам нужны точные аналоговые измерения в проектах на Arduino!
Код, использованный в этом видео:
int adc_value;
float uncalibrated_voltage, calibrated_voltage, supply_voltage;
long result;
void setup()
{
Serial.begin(115200);
pinMode(A0, INPUT);
}
void loop()
{
// Считывание обычного значения Arduino (при условии питания 5 В)
adc_value = analogRead(A0);
uncalibrated_voltage = adc_value * 5.0 / 1023.0;
Serial.print("Некалиброванное напряжение: ");
Serial.print(uncalibrated_voltage);
// Измерение фактического напряжения питания с использованием внутреннего опорного напряжения 1,1 В
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
delay(2); // ожидание стабилизации опорного напряжения
ADCSRA |= _BV(ADSC); // начало преобразования
while (bit_is_set(ADCSRA, ADSC));
result = ADCL;
result = ADCH ‹‹ 8; // преобразование в два знака меньше
// Расчет напряжения питания (в вольтах)
supply_voltage = (1,1 * 1023,0) / result;
// Теперь вычисление калиброванного напряжения
calibrated_voltage = (supply_voltage * adc_value) / 1023,0;
Serial.print(", "Калиброванное напряжение: ");
Serial.println(calibrated_voltage);
delay(500);
}
👉 Наконец, не забудьте поставить лайк, поделиться и подписаться на Electro Nerds Academy, чтобы получать больше уроков по Arduino и углубленных знаний по электронике.
#ArduinoProjects #ElectronicsDIY #arduino #arduinotutorials #embeddedsystems #electronicsforbeginners #electronerdsacademy #arduinoprogramming #circuitbuilding #analog #voltagemeasurement #voltage #ADMUX #ADCSRA #ADCH #ADCL #adcblockdiagram #adc #accuracy #voltagereference #1.1VvoltageReference
Повторяем попытку...
Доступные форматы для скачивания:
Скачать видео
-
Информация по загрузке: