This DIY EMF detector works by utilizing the principle of electromagnetic induction. The exposed wire acts as an antenna, picking up electromagnetic signals present in the surrounding environment. These signals induce a small current in the wire, which is then measured by the Arduino through analog pin A5. The 1 ohm resistor helps to limit the current flow and protect the Arduino
⚠️ Disclaimer: This project is shared for educational and DIY purposes only. Please use caution when working with electronics. I can’t be held responsible for any damage, injury, or issues that may result from attempting to build this EMF detector. Build at your own risk
Curious about how this project works or want to try it yourself? Below you’ll find a list of all the parts and tools I used to build my EMF detector—each linked so you can grab them easily. If you’re a DIYer, this makes it simple to get everything you need in one place.
And if you’d like to see the detector in action before diving in, scroll down for a video walkthrough where I test it live and explain how it all comes together.
In the provided image, the LEDs are arranged sequentially, starting with the red LED connected to Pin 2 and ending with the LED at Pin 11. This sequential arrangement allows for easy visualization of the EMF data, with each LED representing a specific range of values.
To create the antenna for the EMF detector, begin with a 20 cm single-core wire. Strip off approximately 1 cm of insulation from one end, exposing the wire.
On the other end of the wire, strip off about 7 cm of insulation to expose the central portion. This exposed section acts as the central pickup for detecting EMF signals in the surrounding environment. By placing this portion strategically, you can capture electromagnetic fluctuations and variations, providing valuable data for the EMF detector's operation.
Connect this exposed end to the analog pin five (A5) on the Arduino board, which serves as the input for sensing electromagnetic field (EMF) data.
Additionally, a 1 ohm resistor is connected from the antenna wire to ground (GND), completing the circuit. The resistor helps limit the current flow and protects the Arduino board while ensuring accurate EMF measurements. Together, the antenna and resistor form a crucial part of the EMF detector, enabling the visualization of electromagnetic phenomena.
Arduino code below with detailed comments explaining each part to someone who's new to programming
💡 Want to see how it’s wired?
I’ve shared my full Tinkercad simulation so you can follow the exact wiring and layout I used. Just repeat the setup and you’ll have your very own working EMF detector.
Now, let's go through each part:
Setup:
Defines constants and variables:
NUMREADINGS: Sets the number of readings used for data smoothing.
senseLimit: Specifies the maximum sensor reading value, adjusting sensitivity.
probePin: Assigns the analog pin for sensor input.
val: Initializes a variable for storing sensor readings.
LED1 to LED10: Assigns pins for the 10-segment LED bar graph.
Smoothing Setup:
Declares variables for data smoothing:
readings: An array to store recent sensor readings.
index: Tracks the current index in the readings array.
total: Keeps a running total of recent sensor readings.
average: Stores the smoothed average of sensor readings.
Setup Function (setup()):
Configures LED pins as output.
Initiates serial communication for debugging.
Initializes all elements of the readings array to zero.
Main Loop (loop()):
Reads the sensor value from probePin.
If the sensor reading is above a threshold:
Constrain the reading within the specified range.
Map the reading to a new range for consistent comparison.
Update the rolling average by adding the new reading and removing the oldest.
Calculate the new smoothed average.
Illuminate LEDs based on the smoothed average, with each LED representing a range of values.
Output the raw sensor reading to the serial monitor for calibration and debugging.
LED Display:
The code iterates through the LEDs, turning them on or off based on the smoothed average. Each LED represents a specific range of average sensor readings.
In summary, this code reads sensor data, smooths it using a rolling average, and visually represents it using a 10-segment LED bar graph. The LEDs illuminate based on the intensity of the EMF field detected by the antenna sensor, allowing users to observe fluctuations and patterns in electromagnetic activity in their environment.
Donate
If you've enjoyed exploring my Arduino projects and want to see more amazing creations, your support can make a big difference! By contributing, you're helping me continue to innovate and bring even more exciting projects to life. Together, we can explore the endless possibilities of DIY electronics! Don't forget to like, subscribe, and follow for updates on the latest developments. Thank you for being a part of this journey!
Click here to make a difference with your donation today!
Disclaimer: These are Amazon affiliate links. If you make a purchase through them, I may earn a small commission at no extra cost to you. Your support helps me continue sharing stories and content about local history and community projects.