A metal detector is a device which responds to metal that may not be readily apparent.
The simplest form of a metal detector consists of an oscillator producing an alternating current that passes through a coil producing an alternating magnetic field. If a piece of electrically conductive metal is close to the coil, eddy currents will be induced in the metal, and this produces an alternating magnetic field of its own. If another coil is used to measure the magnetic field (acting as a magnetometer), the change in the magnetic field due to the metallic object can be detected.
metal-detector Video Clip
metal-detector circuit schematic
Metal-detector source code
The simplest form of a metal detector consists of an oscillator producing an alternating current that passes through a coil producing an alternating magnetic field. If a piece of electrically conductive metal is close to the coil, eddy currents will be induced in the metal, and this produces an alternating magnetic field of its own. If another coil is used to measure the magnetic field (acting as a magnetometer), the change in the magnetic field due to the metallic object can be detected.
metal-detector Video Clip
metal-detector circuit schematic
Metal-detector source code
/*
********************************************************************
* picoDetector : an ultra simple and cheap metal detector
********************************************************************
*
* Author : Bruno Gavand, april 2009
* see more details on http://www.micro-examples.com/
*
* source code for mikroC PRO compiler V1.65
* feel free to use this code at your own risks
*
* target : PIC12, oscillator in HS mode, watchdog enabled
*
* PIC PIN Assignemnt :
*
* GP0 : detect LED indicator
* GP1 : calibrate LED indicator
* GP2 : NC
* GP3 : NC
* GP4, GP5 : inductor
*
*******************************************************************************
*/
#define MAXTRY 15 // number of watchdog restart to calibrate loop counter
unsigned char ctr ; // number of loops between two watchdog resets
unsigned char previous ; // previous value of ctr
unsigned char calibr ; // calibration value when oscillator runs free
unsigned char restarts ; // number of watchdog restarts
unsigned char en ; // enable flag, allows detection
/*
* main loop
*/
void main()
{
unsigned char i ;
/*
* configure GPIO as digital port
*/
CMCON0 = 7 ;
ANSEL = 0 ;
TRISIO = 0 ;
GPIO = 0 ;
/*
* power up ?
*/
if(STATUS.NOT_TO)
{
/*
* yes, init variables
*/
restarts = 0 ;
calibr = 1 ;
}
/*
* watchdog reset counter
*/
if(restarts < 255) restarts++ ;
/*
* if counter differs too much from calibration value
*/
if((previous ^ ctr) > calibr)
{
/*
* turn detect LED on
*/
GPIO.F0 = en ;
/*
* if not on power up
*/
if(STATUS.NOT_TO == 0)
{
/*
* while in calibration mode
*/
if(restarts < MAXTRY)
{
/*
* shift calibration value
* and wait a little bit
*/
calibr <<= 1 ;
Delay_ms(5) ;
}
}
else
{
/*
* turn detect LED off
*/
GPIO.F0 = 0 ;
}
}
/*
* save last counter
*/
previous = ctr ;
/*
* is calibration over ?
*/
if(restarts > MAXTRY)
{
/*
* yes, turn calibrate LED off
* and set enable flag
*/
GPIO.F1 = 0 ;
en = 1 ;
}
else
{
/*
* no, turn calibrate LED on
* and clear enable flag
*/
GPIO.F1 = 1 ;
en = 0 ;
}
/*
* set watchdog prescaler
*/
OPTION_REG = 0b11111001 ;
/*
* start counter, to be interrupted by watchdog
*/
ctr = 0 ;
for(;;)
{
ctr++ ;
}
}
Borgata Hotel Casino & Spa to host music at Lake of
ReplyDeleteThe music 원주 출장마사지 at Borgata Hotel Casino & Spa will be 경상북도 출장샵 on March 26th and will be available 여주 출장마사지 in 7 문경 출장안마 locations starting at $49.99 each. 서울특별 출장샵