One of the easiest project that can be achieved with an Arduino and a few resistors it to make an ohm metter. With a well known values of resistance you can measure another one by voltage divider principle.
So far so good, but you are limited by this reference value. You can't measure from 0.1 Ohm to 1 MOhm with a reference of 1 kOhm. First, the ratio from voltage divider will be so small that ADC will read noise or will be near one that means ADC will saturate at maximum value that can read so, it will display wrong value.
Therefore, a simple way to increase the range of measurements is to add different reference resistors and then to switch between them in order to find value of unknown resistor. You don't want to wire and replace references always. Thus, a commanded switch can help for this step. With SN74HC4066 you can switch between 4 values.
Reference resistor are chosen with decade interval: 100 ohm, 1kohm, 10kohm and 100kohm. Datasheet of quad analog switch is found here. Unknown resistor is place between purple wire(in schematic) and ground.
Now, the code for switching and reading is easy. For a detailed description you can visit this post.
The final measurement is displayed by Processing interface which include 4 buttons for switching between the 4 references.
In a nutshell is a easy project in order to understand basic electronic principles.
EXPANDED TECHNICAL DETAILS
Precision Resistance Metering
This project transforms an Arduino into a functional ohmmeter, ideal for laboratory work and component sorting.
- Voltage Divider Logic: The Arduino captures the voltage between a known reference resistor and an unknown test resistor. By applying Ohm's Law ($R_{unknown} = rac{Voltage_{out} imes R_{known}}{Voltage_{ref} - Voltage_{out}}$), the firmware calculates the resistance with high accuracy.
- Auto-Ranging Dashboard: (Advanced version) Simultaneously streams the live resistance values to a Processing 3 script on a PC, which renders a high-resolution graphical gauge and logs the data for component tolerance analysis.
Accuracy
- ADC Calibration Matrix: The code includes an offset adjustment to account for the internal resistance of the Arduino's analog mux, ensuring accuracy across a wide range of resistance values (10Ω to 1MΩ).