- Популярные видео
- Авто
- Видео-блоги
- ДТП, аварии
- Для маленьких
- Еда, напитки
- Животные
- Закон и право
- Знаменитости
- Игры
- Искусство
- Комедии
- Красота, мода
- Кулинария, рецепты
- Люди
- Мото
- Музыка
- Мультфильмы
- Наука, технологии
- Новости
- Образование
- Политика
- Праздники
- Приколы
- Природа
- Происшествия
- Путешествия
- Развлечения
- Ржач
- Семья
- Сериалы
- Спорт
- Стиль жизни
- ТВ передачи
- Танцы
- Технологии
- Товары
- Ужасы
- Фильмы
- Шоу-бизнес
- Юмор
Lesson: 15 - How to Improve Arduino ADC Accuracy with the Internal 1.1V Reference
Lesson: 15 - How to Improve Arduino ADC Accuracy with the Internal 1.1V Reference
Hello and welcome to Electro Nerds Academy, In this tutorial, we explore how to improve Arduino ADC accuracy by using the built-in 1.1V internal voltage reference—without relying on external modules. Previously, we used the LM4040 reference, but this time we’ll unlock a hidden feature already inside the Arduino.
What you will learn in this video,
✅ We’ll start by looking at the Arduino ADC block diagram
✅ We''ll discuss its registers like, ADMUX, ADCSRA, ADCH and ADCL
✅ How the ADC selects input channels and reference voltages
✅ Why you should be careful with the AREF pin.
✅ How to use the internal 1.1V reference for calibration
✅ How to fix voltage measurement errors in your projects
✅ Why calibrated ADC values stay accurate even if the supply voltage changes
This is a must-watch if you want precise analog measurements in Arduino projects!
Code used in this video:
int adc_value;
float uncalibrated_voltage, calibrated_voltage, supply_voltage;
long result;
void setup()
{
Serial.begin(115200);
pinMode(A0, INPUT);
}
void loop()
{
// Read normal Arduino value (assuming 5V supply)
adc_value = analogRead(A0);
uncalibrated_voltage = adc_value * 5.0 / 1023.0;
Serial.print("Uncalibrated voltage: ");
Serial.print(uncalibrated_voltage);
// Measure actual supply voltage using internal 1.1V reference
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
delay(2); // wait for reference to settle
ADCSRA |= _BV(ADSC); // start conversion
while (bit_is_set(ADCSRA, ADSC));
result = ADCL;
result = ADCH ‹‹ 8; // change it into two less than signs
// Calculate supply voltage (in volts)
supply_voltage = (1.1 * 1023.0) / result;
// Now compute the calibrated voltage
calibrated_voltage = (supply_voltage * adc_value) / 1023.0;
Serial.print(", Calibrated voltage: ");
Serial.println(calibrated_voltage);
delay(500);
}
👉 Finally, don’t forget to like, share, and subscribe to Electro Nerds Academy for more Arduino tutorials and electronics deep-dives.
#ArduinoProjects #ElectronicsDIY #arduino #arduinotutorials #embeddedsystems #electronicsforbeginners #electronerdsacademy #arduinoprogramming #circuitbuilding #analog #voltagemeasurement #voltage #ADMUX #ADCSRA #ADCH #ADCL #adcblockdiagram #adc #accuracy #voltagereference #1.1VvoltageReference
Видео Lesson: 15 - How to Improve Arduino ADC Accuracy with the Internal 1.1V Reference канала Electro Nerds Academy
Hello and welcome to Electro Nerds Academy, In this tutorial, we explore how to improve Arduino ADC accuracy by using the built-in 1.1V internal voltage reference—without relying on external modules. Previously, we used the LM4040 reference, but this time we’ll unlock a hidden feature already inside the Arduino.
What you will learn in this video,
✅ We’ll start by looking at the Arduino ADC block diagram
✅ We''ll discuss its registers like, ADMUX, ADCSRA, ADCH and ADCL
✅ How the ADC selects input channels and reference voltages
✅ Why you should be careful with the AREF pin.
✅ How to use the internal 1.1V reference for calibration
✅ How to fix voltage measurement errors in your projects
✅ Why calibrated ADC values stay accurate even if the supply voltage changes
This is a must-watch if you want precise analog measurements in Arduino projects!
Code used in this video:
int adc_value;
float uncalibrated_voltage, calibrated_voltage, supply_voltage;
long result;
void setup()
{
Serial.begin(115200);
pinMode(A0, INPUT);
}
void loop()
{
// Read normal Arduino value (assuming 5V supply)
adc_value = analogRead(A0);
uncalibrated_voltage = adc_value * 5.0 / 1023.0;
Serial.print("Uncalibrated voltage: ");
Serial.print(uncalibrated_voltage);
// Measure actual supply voltage using internal 1.1V reference
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
delay(2); // wait for reference to settle
ADCSRA |= _BV(ADSC); // start conversion
while (bit_is_set(ADCSRA, ADSC));
result = ADCL;
result = ADCH ‹‹ 8; // change it into two less than signs
// Calculate supply voltage (in volts)
supply_voltage = (1.1 * 1023.0) / result;
// Now compute the calibrated voltage
calibrated_voltage = (supply_voltage * adc_value) / 1023.0;
Serial.print(", Calibrated voltage: ");
Serial.println(calibrated_voltage);
delay(500);
}
👉 Finally, don’t forget to like, share, and subscribe to Electro Nerds Academy for more Arduino tutorials and electronics deep-dives.
#ArduinoProjects #ElectronicsDIY #arduino #arduinotutorials #embeddedsystems #electronicsforbeginners #electronerdsacademy #arduinoprogramming #circuitbuilding #analog #voltagemeasurement #voltage #ADMUX #ADCSRA #ADCH #ADCL #adcblockdiagram #adc #accuracy #voltagereference #1.1VvoltageReference
Видео Lesson: 15 - How to Improve Arduino ADC Accuracy with the Internal 1.1V Reference канала Electro Nerds Academy
arduino adc accuracy arduino internal reference arduino 1.1v reference arduino adc tutorial arduino voltage measurement arduino adc calibration arduino voltage reference arduino accurate voltage readings arduino adc errors fix arduino voltage reference tutorial arduino internal 1.1v reference arduino adc hack arduino analog read accuracy arduino adc block diagram arduino admux register arduino adcsra explained arduino register level programming
Комментарии отсутствуют
Информация о видео
29 сентября 2025 г. 2:10:26
00:10:19
Другие видео канала


![Lesson-5 : Master Conditional Logic [ if, else if, AND(&&), OR(||), NOT(!) Explained! ]](https://i.ytimg.com/vi/xSPRBO0VzU8/default.jpg)









![Lesson:1 - What is an Arduino? [ A Beginner's Friendly Introduction ]](https://i.ytimg.com/vi/ishxa5BSiss/default.jpg)







