STM32 Pulse Indiction Metal Detector
This time I will show you how to make a STM32 Pulse Indiction Metal Detector which is based on ARM STM32 microcontroller, which has significantly better features than Arduino and is also cheaper. It can detect metal coih at distance of 30cm, and big metal object at distance of more than 80 cm.
The positive thing is that you can install an Arduino bootloader on it, after that you can use it as a regular Arduino. This is my first project with this microcontroller and the experiences are very positive, and actually after flashing the bootloader there is no difference between STM and Arduino.
This time I will focus more on the project itself, and for how to install bootloader and sketch on STM32 you can find many tutorials and instructions, *** and I specifically used the tutorial from:
https://www.instructables.com/Using-a-STM32-Like-an-Arduino-Tutorial-STM32F103C8/
The project is taken from the cxem.net site, in that there is a small error in the given schematic, and instead of the B9 pin, B8 should be used. I have corrected that in the Schemаtic diagram given below. Also, the original project uses STM32F103C8, but the metal detector works quite regularly with STM32F103C6, which is a cheap clone version of the original.
So the device is relatively simple to make and consists of the following components:
– STM32F103C8T6 microcontroller
– TL072 Operational amplifier IC
– three Transistors BC847 or similar
– power mosfet IRF740
– 7805 Regulator
– Rotary encoder
– Buzzer
– WS2812 led strip with 8 leds
– resistors and capacitors
I made this device for testing purposes on a universal PCB, but If you want to make a custom PCB for this project, or for any other electronic project, PCBway (www.pcbway.com) is a great choice for you. PCBway is one of the most experienced PCB manufacturing company in China in field of PCB prototype and fabrication. They provide completed PCB assembly service with worldwide free shipping , and ISO9001 quality control system. Also, on their site there is an online gerber viewer where you can upload your gerber and drill files to render your board.
As a power source, I use three Li-Ion cells connected in series (about 12V) , and 7805 Regulator for powering Microcontroller.
The indication is made on a WS2812B module of eight LEDs and a buzzer. The control is carried out using the rotary encoder. When the power is turned on, the search coil must be moved away from metal objects, as the sensitivity is automatically adjusted.
Further, the sensitivity of the metal detector is adjusted manually by rotating the encoder knob. There is also a menu mode. The first press on the encoder knob enters the LED brightness adjustment mode. Second press, buzzer on/off mode. Second press, buzzer on/off mode. The fourth press, we enter the adjustment mode for large or small objects. The fifth press, exit the menu mode and auto-adjust the sensitivity.
The coil is wound with wire 0.7 mm, with a 20 cm diameter, and consist of 25 turns, but as you can see, during the testing I used a sensor consisting of two serially connected coils with a diameter of 12 and 23 cm, each containing 20 windings.
It is very important to mention that when the device is switched on, it is automatically calibrated, so there must not be any metal objects near the coil at that time. On the video you can see how the device works in real conditions in the air, and a brief description of the method of manufacturing the metal detector.
Files
Schematic FINAL.jpgSchematic diagram JPEG Image – 177.31 kB – 05/05/2023 at 12:22 |
|
|
metalloiskatel_2.zipArduino Code x-zip-compressed – 6.52 kB – 05/05/2023 at 12:22 |
|
Components
Quantity | Component name | |
1 | × | STM32F103C8 microcontroller board |
1 | × | WS2812 Addressable LED Strip |
3 | × | BC847 transistors |
1 | × | TL072 OPAmp |
1 | × | IRF740 Mosfet |
1 | × | Linear Regulator (7805) |
1 | × | Speaker: 0.25W, 8 ohms |
1 | × | Rotary Encoder with Push-Button |
1 | × | Search coil |
1 | × | Resistors, capacitors |