An Induction Balance (IB) metal detector has a transmit and a receive coil. The coils are arranged so that, with no metal present, the coupling cancels out to zero in the receive coil.
For conductive objects, eddy current induced in nonferrous metals repel the AC magnetic field, causing the receiver coil to no longer be nulled. Ferrous objects unbalance by pulling magnetic fields into them.
The phase change is in opposite directions between ferrous and nonferrous metals. In addition, the size and conductivity of a nonferrous object will cause a particular phase change, as long as mass and composition are controlled. So a penny will give a different indication than a quarter, or a nickel. But that particular coin will cause the same phase change every time.
Unfortunately, gold and silver rings give a similar indication to an aluminum pull tab. Fortunately, not many pull tabs around any more!
They are also called VLF metal detectors, as they often run at audio frequencies or just above audio.
The coils may have two wired antiserial on the transmit side, and one receive coil arranged so it is at the null location between them. Sometimes one of the transmit coils is called a "bucking coil" or "feedback coil" and it will have a separate level control to null at the receive coil. Or there is only one transmit coil and the nulling feedback is all electronic. This is sometimes called a Concentric Coil head.
Note how small the detecting area is. Good for pinpointing, but it means a lot of sweeping.
Some Heathkit IB metal detectors formed the transmit coil into sort of a loop within a loop. The problem with this is that the detection area is a small cone where the receive and transmit coil overlap.
Or it may have both the transmit and receive coils squashed into ovals and overlapped just enough to cancel. This is called a "double D coil" because the coils are often shaped like two upper case letter "D" to get the best shape on detecting area. It has become the standard coil for IB discriminating metal detectors.
The Double D coil has a long but narrow detecting area, which means less sweeping, and to pinpoint you just turn it 90 degrees and sweep again.
In general, lower frequencies go deeper but won't be as sensitive to smaller objects like coins and rings, and higher frequencies may not go as deep but are more sensitive to smaller objects. Some DD coil metal detectors work up at 70kHz to detect small grains of gold.
Ideally, I think we'd want to program the Arduino to be able to change frequencies. The coil is NOT tuned.
In older detectors, synchronous rectification is used to extract phase information from the received waveform.
Since the Arduino is controlling the frequency going to the transmit coil, it knows the phase of what is being received by comparing either the peaks or the zero crossings. The ADC could be used for peak detection, or the internal comparator for zero cross detection.
Without discrimination, we could start with just a 555 timer and an LM386 audio amplifier. Then build from there.
Something to determine is how using a square wave vs sine wave affects range and discrimination.
Anyone interested?