How-to: Accurate Voltage Measurements with Arduino

  Рет қаралды 42,351

Elektor TV

Elektor TV

Күн бұрын

Пікірлер: 59
@edinfific2576
@edinfific2576 Жыл бұрын
This is the clearest and shortest explanation about Arduino ADC. Subscribed!
@ElektorTV
@ElektorTV Жыл бұрын
Glad it was helpful!
@ww07ff
@ww07ff 28 күн бұрын
ATTENTION: 4:29 In case of car's alternator failure (of its internal voltage regulator circuit) the "V bat" could increase up to 22V (or maybe more), proportional to engine RPM. To avoid a burnt arduino, it's safer to assume maybe 25V to "V bat" at voltage divider circuit calculation. Many thanks for this lesson, I was searching exactly for this topic! Regards from Brazil!
@edinfific2576
@edinfific2576 Жыл бұрын
I would add that the reason why we divide by 1023 instead of 1024 is because the 0 (zero) is included as one of the values, so we still have 1024 values but zero is one of them; in other words, we're counting from 0 instead of counting from 1, so that's why it ends at 1023.
@ElektorTV
@ElektorTV Жыл бұрын
We don't divide by 1023, because the datasheet says that you must divide by 1024 (section "ADC Conversion Result"). 1023 equals to Vref minus one LSB. So, if Vref=5V, then 1024 = 0x400 = 5V; 1023 = 0x3ff = 4.995V. Unfortunately, 1024 doesn't fit in 12 bits.
@Murmuz077
@Murmuz077 10 ай бұрын
highly appreciated. logical progressive and methodical teaching. 👌
@ElektorTV
@ElektorTV 10 ай бұрын
Glad it was helpful!
@f3l1p3Pratic
@f3l1p3Pratic 8 ай бұрын
perfect! I didn't know about the resolution of the ADC, and I also hadn't thought about the reference voltage. Thank you very much! The video was very useful.
@ElektorTV
@ElektorTV 8 ай бұрын
Glad it was helpful!
@emilalmberg1096
@emilalmberg1096 2 жыл бұрын
Excellent start! As a continuation, you can show how to amplify a weaker signal, and how to adapt a voltage of maybe 2-4V to use all the bits in the AD converter.
@Guishan_Lingyou
@Guishan_Lingyou 11 ай бұрын
Very helpful. Clear and, as far as can tell, all the relevant information needed to get the job done. Also happy to see the comment below that filtering the external voltage supply will improve stability.
@ElektorTV
@ElektorTV 11 ай бұрын
Glad you enjoyed it!
@R_W_G
@R_W_G 4 ай бұрын
Thank you for a very good and technically convincing explanation of the connections between the knife and an Arduino and the special features. That was a great help to me!
@HL65536
@HL65536 Жыл бұрын
external interference performance can be improved by adding a capacitor between ground and the analog input (as close to the ADC pin as possible). 1nF should be a good compromise between speed and filtering quality. Less accurate power supplies can be used if a large value low ESR capacitor is used across the 5V rail and the 1.1V reference is selected.
@orveahava
@orveahava Жыл бұрын
Very good video. Thank you for your work.❤
@ElektorTV
@ElektorTV Жыл бұрын
Our pleasure!
@unglaubichuberlieber8048
@unglaubichuberlieber8048 11 ай бұрын
thanks for your detailed demo+explanation, now i know what to do with these current sense, again thanks
@UserName-cb6jz
@UserName-cb6jz Жыл бұрын
At 7:25 you measured ONE value (4.834V) but inputted a slightly different value in the sketch (4.863V).
@keen2461
@keen2461 7 ай бұрын
The bandgap reference on the Atmega328 can vary a bit from unit to unit. In order to have the highest accuracy, you can measure such value and make your calculations with the real value, not the one mentioned on the datasheet. I got great results doing that.
@mirjalol.bahodirov
@mirjalol.bahodirov 7 ай бұрын
Thanks for the detailed explanation 🙏
@ElektorTV
@ElektorTV 7 ай бұрын
Glad it was helpful!
@mixme8655
@mixme8655 7 ай бұрын
New subscriber always watching your videos very interesting❤
@ElektorTV
@ElektorTV 7 ай бұрын
Awesome! Thank you!
@ElectricWorksStudio
@ElectricWorksStudio 3 ай бұрын
Thanks for the information. Can you please advice how to accurately measure mains voltage.
@RogerTannous
@RogerTannous 2 жыл бұрын
@2:49 additionally to floating-point calculation, isn't it more appropriate to multiply by 5 first, then do the dividing by 1024 as the last step ? Or does the compiler already do this optimization automatically ?
@ElektorTV
@ElektorTV 2 жыл бұрын
The compiler does not do calculation quality optimizations, only code optimizations. Multiplying by 5 works for integer maths but it remains integer so the output will be between 0 and 4. Floating point has enough precision that multiplying by 5 first doesn't improve much. larger factors like 100 or 1000, yes.
@BugCrush3r
@BugCrush3r Жыл бұрын
Very informative, Now how can we measure voltage and current and the phase angle (power factor) with an Arduino?
@ElektorTV
@ElektorTV Жыл бұрын
Search the internet, e.g. solarduino.com/how-to-measure-power-factor-and-phase-angle-with-arduino/
@sporniket
@sporniket 2 жыл бұрын
Since the max value of the ADC is 1023, I would divide by 1023 instead of 1024.
@sporniket
@sporniket 2 жыл бұрын
other than that, very interesting video
@ElektorTV
@ElektorTV 2 жыл бұрын
Yes, but no. The ADC's maximum theoretical value is 1024. 1024/1024=1. But 1024 = 0x400 which requires 13 bits whereas the registers are only 12 bit. Therefore, the maximum *register* value is 0x3ff, which is 1023. So the maximum value in practice is 1023/1024 = 0.999. See also the MCU's datasheet.
@sporniket
@sporniket 2 жыл бұрын
​@@ElektorTV Indeed, there is a catch... from the datasheet : "and the maximum value represents the voltage on the AREF pin minus 1 LSB."
@heikoindenbirken819
@heikoindenbirken819 Жыл бұрын
@@ElektorTV Yes, the MCU is not able to measure 5V. Now it depends on you how to overcome this problem. You can use 1024 to show the error only on 5V or use 1023 to spread out the error over the full range.
@heikoindenbirken819
@heikoindenbirken819 Жыл бұрын
@@ElektorTV PS.: The real problem is not the question 1023/1024, it is the multiplication with 5. It should be the 5-1 LSB instead.
@hbuzdbuzdh9723
@hbuzdbuzdh9723 4 ай бұрын
National Instruments says a high speed ADC can be more accurate than a high resolution one. You take 4 or more samples and mediate them ! High resolution ADC measures, with precision !, spikes !
@3D_Printing
@3D_Printing 2 жыл бұрын
What about a higher voltage inputs 0 to 500 volts maybe
@ElektorTV
@ElektorTV 2 жыл бұрын
The same principles apply, but the voltage divider needs more attention to support high voltages (use several resistors in series for instance).
@programmer1111x
@programmer1111x Жыл бұрын
I did it up to 600v. No problem. You will have a step of about 0.6v with the 1024 bit of th arduino uno.
@3D_Printing
@3D_Printing Жыл бұрын
@@programmer1111x great
@xuzm
@xuzm Жыл бұрын
is there possible to read data from 20 batteries/cells from 1 adruino ?
@aflahalhajri4613
@aflahalhajri4613 5 ай бұрын
amazing
@y2ksw1
@y2ksw1 Жыл бұрын
Very nice!
@kalajulesraymond4968
@kalajulesraymond4968 Жыл бұрын
Can you please help me connect the following sensor to arduino: SUI-101a
@0124akash
@0124akash Жыл бұрын
Sir I will try to make dc volt meter using ESP32 and I2C 16*2 LCD. Am facing some critical condition Actual voltage 12.7V LCD display 12.7V But Actual voltage 7.4V LCD display 6.9V This problem only for ESP32, Arduino UNO is perfect work in range. How to solve this problem sir ?
@ultralaggerREV1
@ultralaggerREV1 7 ай бұрын
I need to make an arduino voltmeter to read from -20V to 20V
@mdmostafashahid948
@mdmostafashahid948 Жыл бұрын
can you make Ac voltage meter 0-400v with 0-20mA output or Rs485 Modbus RTU
@ElektorTV
@ElektorTV Жыл бұрын
Of course, you can. Just be careful with the high voltages.
@N.g.Chanal
@N.g.Chanal Жыл бұрын
can use esp32 12bit mcu is more prisesion?
@ElektorTV
@ElektorTV Жыл бұрын
In theory, yes, but keep in mind that more bits doesn't always mean more precision. The input circuitry must be up to the job too.
@incxxxx
@incxxxx Жыл бұрын
Why you divide by 1024 when you have between 0 and 1023 only 1023 intervals of length 1.
@ElektorTV
@ElektorTV Жыл бұрын
Because there are 1024 intervals. Please refer to the section entitled "ADC Conversion Result" of the ATmega328 datasheet. 1023 corresponds to VCC minus one LSB.
@incxxxx
@incxxxx Жыл бұрын
Good job, but 1.1/16 = (R1+R2)/R1 is never true.
@ElektorTV
@ElektorTV Жыл бұрын
You are right, well spotted. It should read 1.1/16 = R1/(R1+R2). Sorry for any confusion caused.
@0124akash
@0124akash 4 ай бұрын
You have no answer of my question ❓
Measure DC Voltage and Current with Arduino
37:29
DroneBot Workshop
Рет қаралды 204 М.
Arduino Uno R4 WiFi LESSON 12: Read Analog Voltages on the Arduino
41:09
When u fight over the armrest
00:41
Adam W
Рет қаралды 28 МЛН
ТВОИ РОДИТЕЛИ И ЧЕЛОВЕК ПАУК 😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 4,8 МЛН
Power For Your Electronics Projects - Voltage Regulators and Converters
37:26
DroneBot Workshop
Рет қаралды 1,2 МЛН
Practical guide on how to use transistor in simple DIY
14:07
Stargate System
Рет қаралды 2,8 М.
Different Ways for Measuring Current With Arduino
13:32
Electronoobs
Рет қаралды 79 М.
TUTORIAL: How to Measure / Read Voltages Into Arduino - (Part 1/3 Voltages Less than 5v)
17:35
Antony Cartwright (Electronics & Code)
Рет қаралды 52 М.
How to Control a 12V Motor with Arduino: Easy Wiring & Code Examples
44:13
Why build an entire computer on breadboards?
28:43
Ben Eater
Рет қаралды 3,1 МЛН
Op-Amps  - Using Operational Amplifiers
44:21
DroneBot Workshop
Рет қаралды 296 М.
Read small Voltages with Arduino
12:18
Tabletop Robotics
Рет қаралды 3,8 М.
When u fight over the armrest
00:41
Adam W
Рет қаралды 28 МЛН