[EN] Arduino: Ohm’s Law

This article is about Ohm’s Law, which is a fundamental subject related to electrical circuits that arise from the relationship between the current in amps, the voltage (Volt) and the resistance of the conductor or load is measured in Ohm, or the equation V=IR, where V is voltage, I is current, and R is the resistance of the conductor.

Ohm’s law states that the current flowing through a conductor can be formed as follows:

  • V = IR means that
    • Voltage increases as current increases or resistance decreases.
    • Voltage decreases when current decreases or resistance increases.
  • I = V/R หมายความว่า
    • Current will increase as voltage increases or resistance decreases.
    • Current decreases as voltage decreases or resistance increases.
  • R = V/I หมายความว่า
    • Resistance will increase when pressure increase or the current decreases.
    • Resistance decreases as voltage decreases or current increases.

Example 1

If a power supply can drive 5 volts of DC and provide 1 amp of current, what is the resistance of the conductors or the load of the circuit?

from the equation
    R   = V/I
    V   = 5V
    I   = 1A
    R   = 5/1
        = 5 Ohm
The load or conductor must withstand a current of at least 1 amp in order not to be damage.

Example 2

The ATMEGA328P’s GPIO (General Purpose I/O) pin can deliver up to 5 V DC and drive 40 milliamperes (mA). How much resistance is required?

from equation
    R   = V/I
    V   = 5V
    I   = 40mA 
        = 40/1000 A 
        = 0.04 A 
    R   = 5/0.04
        = 125 ohms

Example 3

The 3.3V or 3V3 DC voltage pin of the Arduino Uno board can drive 50mA. How much resistance can be applied to a load?

from equation
    R   = V/I
    V   = 3.3V
    I   = 50mA 
        = 50/1000 A
        = 0.05 A 
    R   = 3.3/0.05
        = 65.9999...9
        = 66 โอมห์ 

Example 4

One LCD graphic display driver board requires 3.3V DC voltage and 300mA current to operate. When used with an Arduino Uno that can drive 3.3V with 50mA current, will it be compatible?

A: No, but this can be done by adding a separate power supply to the LCD graphic display driver board. By connecting the ground pin of the Arduino Uno board to the LCD graphics display driver board together. Because the electrical circuits that work together must have a ground wire connected. The thing to be concerned about is the demands of the LCD graphics board's input signal, how much current needs, because the ATMEGA328P can drive 40mA if the current is enough to meet the needs of the LCD graphic display driver board, but when it is working, the display has an error such as a flashing screen because of insufficient voltage or not enough current, etc., you must consider the length of the connecting wires because the connecting wires have resistance as well. Longer wires give higher resistance than shorter wires.


According to Ohm’s law, it is important to apply circuits in microcontroller systems as it is the fundamental knowledge for circuit design and programming to operate. However, if the programmer does not consider the current, voltage and resistance, for example, in example 4, even if the written program is correctly the operation may not work, etc. Therefore, when an error occurs, it is the duty of the programmer to consider carefully what part causes the error. If it is caused by the fault of the insufficient voltage because the connection cable is long, causing the voltage value is not high enough but looking for errors in the program will make it impossible to solve the problem. For this reason, before writing a program, be sure to check the correctness of the circuit to make sure that it is correct according to Ohm’s law to ensure that the current and voltage are correct. enough pressure to operate the hardware (Importantly, don’t forget to connect the ground wires together.) programmers can be confident that the program they write has errors and takes time to modify the program.

(C) 2020-2021, By Jarut Busarathid and Danai Jedsadathitikul
Updated 2021-09-20