Electromagnetic Wave Sensor (w/ Hall Effect & JFET

Okay, so I'm a noobie. I've had my arduino duemilanove for like 2 years now and I still dont know how to use it... :-[


I have 2 transistors, a Hall Effect Sensor (US5881) and a JFET (MPF102). Technically, one will measure H-field strength and the other E-field strength. I want to export the analog output of both these devices to a txt file through the serial, so I can graph the output variations to give me visual on the magnetic wave and electric wave at any given moment.

PURPOSE: I want to figure out how much power exists in the EM wave(s)/radiation in the vicinity of these devices. So that's P = (1/2)EH.

ANY IDEAS? ::slight_smile:


Used a A1301 Hall Effect sensor in this sketch

Download the US5881 datasheet from
and you will see it's output cannot be used to measure the strength of the magnetic field. This sensor will switch OUT state at two threshold values.

No experience with the MPF102

Okay, so I basically want to use the arduino as a dynamic voltage recording device.

Mr. Crowley, to answer your questions... yes, i need help with all of those. Actually I have a head start with the last question. I have a mac and using the following syntax in the terminal to write serial data to a txt file:

cat /dev/cu.usbserial-A6008t0M 9600 >> MyTextLog.txt

I've used this successfully, but may need some clarification on what would happen with 2 analog ports exporting data at the same time. What does the serial data look like. Haven't done that yet.

robtillaart, I checked the Melexis data sheet and I don't get it. Are you saying I cannot extrapolate the magnetic field strength from the numerical results? the datasheet clearly states the range of output voltage. can't this voltage reading be used with reference to the hysterisis chart to determine the H-field strength at that voltage?

I'm lost what do you think guys?

I want to figure out how much power exists in the EM wave(s)/radiation in the vicinity of these devices.

I don't think you can do this. The variations in an EM wave will be so fast that all you will get is an average which will be zero.
What frequency of wave were you thinking about?

low frequencies. but now that i think of it, you're right. I should take that into account beforehand. tell me, doesn't the baud rate determine how fast the values are coming in and at what frequency the EM wave is that will be probed?

Okay, if feel like the question may have too much baggage. I just want to clarify what I want to do, simply.

OBJECTIVE: I want to calibrate, then record output variations from (1) a Hall Effect Sensor and (2) an FET and record them both onto a txt file.

Lets start with (1): Has anyone had experience with this specific melexis hall effect sensor US5881? I read the following thread:


It helped a bit to understand, but it never reached a conclusion. Right now I have pin 1 of the sensor to 5V, pin 2 to gnd, and pin 3 to analog 0. Here's my code and pictures.

int inPin = 0; // select the input pin for the Hall Effect Sensor
int val = 0; // variable to store the value coming from the sensor

void setup() {
Serial.begin(300); // connect to the serial port

void loop() {
val = analogRead(inPin); // read the Hall Effect Sensor

RESULT: Outputs 0-10 depending on whether I have my hand or ceramic magnetic in the vicinity.

ALT 1: putting 10k pullup from output to 5v brings the serial out to a constant 0.

ALT 2: i put a 100nF ceramic cap between out and ground. it varies around 3-4 and when i take it out suddenly, the value goes high and starts decreasing back to 0-10.

ALT 3: i put the capacitor between 5v and gnd ... it goes high and then saturates low.

NOTE: i put my hand near the device (a ceramic magnet is useless) and then pull it away, the value goes up to around 30! if i wave my hand, the output varies. maybe the sensor is dependent on the frequency of the magnetic field?

Any ideas?

I'd suggest that you need to start with a good soldering iron and some decent solder. You are not making good connections between the headers and protoshield.

doesn't the baud rate determine how fast the values are coming in and at what frequency the EM wave is that will be probed?

You are fundamentally limited by two factors, the speed of response of the hall effect device and the speed of the A/D converter. From the latter you can only expect to be able to cope with frequencies of about 20KHz and that is very very low for an EM wave. It is down in the atmospheric whoopers range and is nothing you would generate, not even if you want to communicate with submarines.

So, i re-soldered the pins. I think thats better, but not perfect.

Grumpy_Mike, is the speed response determined from the rise time and fall time of the device? if so, how do I determine the feasibility of interfacing the hall effect with the atmega328 on my duemilanove?

Btw, I am looking to measure waves <20kHz anyway. Seeing as you know a bit about EM waves (maybe antennas), I would like to measure variations in atmospheric power produced naturally by the earth (i.e. at schumann frequencies). I know it is really REALLy small, but the hall effect sensor and JFET are sensitive enough to detect both the magnetic field of the earth and vertical electric field (i.e. from ionosphere to earth).

What do you think?

You will not be able to measure the magnetic part of an EM wave from a none localised source because it will be too weak to measure, especially with a hall effect sensor that can't measure such small fields.
I am not sure why you would want to measure this anyway as all the information is in the electric component which is mush easier to measure.
At those sorts of field strengths you need a magnetometer to get a reading.

Grumpy_Mike, in another thread you mention that a Hall Effect sensor can be used to measure the Earth's 'large' magnetic field (they're used in digital compasses):


Lets just say, for the moment, I want to do just that--measure the magnetic field strength of the earth. What sensor would you suggest, because clearly the US5881 is for the mT range and not uT. allegro? honeywell?


Yes these are good but not cheap.

It seems a little pricey, as u said. :-[ i'm looking at the HMC1001 ($22). Its a single axis magnetoresistive sensor with a range of +/-2 gauss and a resolution of 27uGauss.


That's sensitive enough to measure the Earth's magnetic field strength, right? Aren't there cheaper sensors out there with uGuass resolution?