Bouw een gevoelige metaaldetector met Arduino Nano – DIY Handleiding
Onderdelen en benodigdheden
- Arduino Nano R3 (1×)
- Operationele versterker (Op Amp) + Comparator + Referentie (1×)
- IRF840 Power MOSFET (1×)
- LED (standaard) (6×)
- Weerstanden, condensatoren, diodes (1 set)
- Zoekspool (zelfgemaakt, zie beschrijving)
Benodigde gereedschappen
- Solderbout (standaard)
Apps en online diensten
- Arduino IDE
Over dit project
Dit is een aangepaste versie van de bekende Russische pulsinductie-metaaldetector "PIRAT", nu gemaakt met behulp van een Arduino Nano, wat de productie aanzienlijk vereenvoudigt.
De detector kan een muntstuk op 15 cm afstand en grotere metalen objecten op 40 cm of meer detecteren – een relatief goed resultaat gezien de eenvoud.
Hoe werkt pulsinductie (PI)?
Een PI-metaaldetector gebruikt een enkele spoel als zowel zender als ontvanger. De technologie stuurt krachtige, korte stroompulsen door een draadspoel. Elke puls genereert een kortstondig magnetisch veld. Wanneer de puls eindigt, keert het magnetische veld polariteit om en kollapt plotseling, wat resulteert in een scherpe elektrische piek. Deze piek duurt enkele microseconden en zorgt voor een nieuwe stroom door de spoel, de zogenaamde gereflecteerde puls (ca. 30 µs). Vervolgens wordt een nieuwe puls gestuurd en herhaalt het proces zich.
Komt een metaal voorwerp binnen het bereik van de veldlijnen, dan detecteert de ontvangsspoel een verandering in amplitude en fase van het ontvangen signaal. De mate van verandering geeft aanwijzingen over grootte, afstand en type metaal (ferro-/non-ferro).
Componentenoverzicht
- Arduino Nano microcontroller
- Power MOSFET transistor
- Operationele versterker
- Enkele weerstanden en condensatoren
- Zoekspool (20 cm diameter, 25 windingen geïsoleerde koperdraad 0,3–0,5 mm²)
- LEDs en buzzer voor indicatie
In een eerdere versie gebruikte ik een smartphone als indicator, wat frequente kalibratie vereiste. Deze versie is een zelfstandig apparaat dat zichzelf kalibreert door de Arduino te resetten. Twee Li-ion accu's in serie voeden het apparaat. De bediening is nu veel eenvoudiger dankzij licht- en geluidsindicatie: naarmate je dichter bij het object komt, neemt de frequentie en intensiteit van de LEDs toe.
Code
De Arduino-code (C/C++) is gebaseerd op de originele "PIRAT" firmware, aangepast voor de Nano. De code voert een kalibratiefase uit bij opstart (255 metingen), waarna continu pulsen worden uitgezonden en de gereflecteerde signalen worden vergeleken met de kalibratiewaarden. Afwijkingen sturen de LED-balk aan (via PORTD) en activeren de buzzer bij sterke signalen.
// PI metaaldetector voor Arduino versie_18_min (C) alex --- 1967 2015
int ss0 = 0, ss1 = 0, ss2 = 0;
long c0 = 0, c1 = 0, c2 = 0;
byte i = 0;
int sss0 = 0, sss1 = 0, sss2 = 0;
int s0 = 0, s1 = 0, s2 = 0;
void setup() {
DDRB = 0xFF; // Poort B: alle pinnen output
DDRD = 0xFF; // Poort D: alle pinnen output
for (i = 0; i < 255; i++) { // Kalibratie
PORTB = B11111111; // Spoel aanzetten
delayMicroseconds(200);
PORTB = 0; // Spoel uitschakelen → piek ontstaat
delayMicroseconds(20);
s0 = analogRead(A0);
s1 = analogRead(A0);
s2 = analogRead(A0);
c0 += s0; c1 += s1; c2 += s2;
delay(3);
}
c0 = c0 / 255 - 5;
c1 = c1 / 255 - 5;
c2 = c2 / 255 - 5;
}
void loop() {
PORTB = B11111111;
delayMicroseconds(200);
PORTB = 0;
delayMicroseconds(20);
s0 = analogRead(A0);
s1 = analogRead(A0);
s2 = analogRead(A0);
ss0 = s0 - c0; if (ss0 < 0) sss0 = 1; ss0 /= 16; PORTD = ss0; delay(1);
ss1 = s1 - c1; if (ss1 < 0) sss1 = 1; ss1 /= 16; PORTD = ss1; delay(1);
ss2 = s2 - c2; if (ss2 < 0) sss2 = 1; ss2 /= 16; PORTD = ss2; delay(1);
if (sss0 + sss1 + sss2 > 2) { // Sterke detectie → alle LEDs + buzzer
PORTD = 0xFF; delay(1); sss0 = sss1 = sss2 = 0;
}
}
Schema
Tip: Zorg dat de zoekspool goed afgeschermd is en de draden kort houdt om ruis te minimaliseren. Experimenteer met de pulsbreedte (200 µs) en de versterkingsfactor (/16) voor optimale gevoeligheid.
Productieproces
- DIY Arduino Woordklok – Bouw een Elegant Real-Time Display
- Bouw een 20 kHz Arduino Oscilloscoop op een Nokia 5110 LCD – Eenvoudige DIY Handleiding
- DIY ADXL335 Aardbevingendetector – Laag-vermogen 3-as Versnellingsmeter Project
- Een slimme voltmeter bouwen met Arduino en smartphone – Eenvoudig DIY-project
- Arduino Audio Frequentie Detector – Meet de luidste geluidspieken met hoge gevoeligheid
- Bouw een DIY VR-skateboard met Arduino, Google Cardboard en Bluetooth
- Bouw een eenvoudige rekenmachine met Arduino UNO – Makkelijk project
- Een nauwkeurig meetwieltje bouwen met Arduino Nano en draaiencoder
- Eenvoudige Arduino Stopwatch: Knop-geactiveerde Chronometer
- Bouw een DIY Arduino Radionica EMR Behandelapparaat
- DIY 2D Motion Racing Simulator met Arduino Nano & SG90 Servo's