Ein Metalldetektor steht auch schon seit Ewigkeiten auf meiner Agenda. Einen sehr einfachen habe ich bereits umgesetzt: https://stoppi-homemade-physics.de/diverse-elektronische-schaltungen/.

Nun möchte ich einen deutlich sensibleren basteln. Mirko Pavleski, ein großartiger und äußerst produktiver Elektronik-Arduino-Youtuber hat einige Modelle umgesetzt. Einen davon möchte ich nachbauen: https://www.youtube.com/watch?v=h0VjLLyEGBc , https://www.hackster.io/mircemk/diy-sensitive-arduino-ib-metal-detector-d5e029.
Vielen Dank für die Veröffentlichung deiner großartigen Projekte, Mirko 🙂


Hier der überschaubare Schaltplan (Anm.: Im Original fehlte eine GND-Verbindung vom „linken“ Schwingkreis!):

Gleich auch noch der Arduino-Code:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
#include <Wire.h> void setup() { pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(8, OUTPUT); pinMode(A4, INPUT); pinMode(A5, OUTPUT); } void loop() { int val1 = 0; int val2 = 0; int val3 = 0; int val4 = 0; int val5 = 0; int val6 = 0; int val7 = 0; int val8 = 0; int val9 = 0; int val10 = 0; int sumval = 0; int impuls = 119; //select the pulse length depending on the frequency int Delay = 0; int base = 0; Delay = analogRead(A4); pinMode(A0, OUTPUT); // Keine Ahnung warum hier der A0-pin auf Output gesetzt wird, da er ja die Signale des LM358 empfängt! digitalWrite(A0, LOW); pinMode(A0, INPUT); digitalWrite(8,HIGH); delayMicroseconds(impuls); digitalWrite(8, LOW); delayMicroseconds(Delay); val1 = analogRead(A0); digitalWrite(8,HIGH); delayMicroseconds(impuls); digitalWrite(8, LOW); delayMicroseconds(Delay); val2 = analogRead(A0); digitalWrite(8,HIGH); delayMicroseconds(impuls); digitalWrite(8, LOW); delayMicroseconds(Delay); val3 = analogRead(A0); digitalWrite(8,HIGH); delayMicroseconds(impuls); digitalWrite(8, LOW); delayMicroseconds(Delay); val4 = analogRead(A0); digitalWrite(8,HIGH); delayMicroseconds(impuls); digitalWrite(8, LOW); delayMicroseconds(Delay); val5 = analogRead(A0); digitalWrite(8,HIGH); delayMicroseconds(impuls); digitalWrite(8, LOW); delayMicroseconds(Delay); val6 = analogRead(A0); digitalWrite(8,HIGH); delayMicroseconds(impuls); digitalWrite(8, LOW); delayMicroseconds(Delay); val7 = analogRead(A0); digitalWrite(8,HIGH); delayMicroseconds(impuls); digitalWrite(8, LOW); delayMicroseconds(Delay); val8 = analogRead(A0); digitalWrite(8,HIGH); delayMicroseconds(impuls); digitalWrite(8, LOW); delayMicroseconds(Delay); val9 = analogRead(A0); digitalWrite(8,HIGH); delayMicroseconds(impuls); digitalWrite(8, LOW); delayMicroseconds(Delay); val10 = analogRead(A0); sumval = val1 + val2 + val3 + val4 + val5 + val6 + val7 + val8 + val9 + val10; sumval = sumval/5; base = analogRead(A1); if (sumval > base) { tone(A5,1000); delay(50); noTone(A5); } else { delay(50); } } |
Die meisten Bauteile hatte ich bereits zuhause. Nur Mosfet (IRF730), Kupferlackdraht (0.35 mm) und Schwingkreiskondensatoren (WIMA MKP10 1µF) musste ich bei Reichelt bestellen:







Die Kondensatoren sind bestimmt „etwas“ überdimensioniert 😉

Für die Schaltung benötigt man noch ein 2-stufiges Verstärkermodul mit dem LM358. Dieses erhält man für um die 5 Euro im Internet:

Achtung: Die Verstärkung erhöht man, indem man die beiden Potentiometer entgegen dem Uhrzeigersinn dreht!

Die fertige Schaltung:



Herzstück eines jeden Metalldektors ist/sind die Detektionsspule(n). Konkret werden für dieses Projekt zwei Spulen aus 0.35 mm Kupferlackdraht mit einem Durchmesser von 150 mm und mit je 60 Windungen benötigt. Zum Glück fand ich in meiner Wohnung etwas mit diesem Durchmesser und zwar meine Kaffeekanne 😉







Damit sich die Spulen nicht auflösen, habe ich sie mit Tixoband reichlich umwickelt:

Mit meinen genialen Komponententester habe ich dann die beiden Spulen und Kondensatoren vermessen:

Die erste Spule besitzt eine Induktivität von L = 1.42 mH…

… und die zweite L = 1.41 mH:

Das passt sehr gut, denn die beiden Spulen sollten möglichst gleich sein!

Die Kapazitäten betrugen C = 1.004 µF bzw. 1.010 µF:

Mit diesen Werten konnte die Frequenz bzw. halbe Periodendauer der beiden Schwingkreise berechnet werden. Ich komme auf einen Wert von τ/2 = 118.5 µs.

Diesen Wert trägt man dann in das Programm bei folgender Zeile ein: int impuls = 119; //select the pulse length depending on the frequency.
Jetzt steht einem ersten Test bzw. dem Abgleichen des Metalldetektors eigentlich nichts mehr im Weg:

Die beiden Spulen sollen eine D-Form besitzen und wiefolgt zueinander angeordnet sein:

Quelle: Mirko Pavleski
Warum sollen sich die beiden Spulen nur teilweise überlappen? Dieses Video (https://www.youtube.com/watch?v=EcuTsifSgBs) erklärt dies sehr schön. Die Magnetfeldlinien der Erregerspule durchdringen die Detektorspule bei nur geringer Überlappung in beide Richtungen:

Wählt man die Überlappung geschickt, so ist der insgesamt die Detektorspule durchsetzende magnetische Fluss Φ insgesamt konstant 0! Dadurch ist auch die Induktionsspannung Uind ≡ dΦ/dt gleich 0. Es wird also bei dieser Konstellation keine elektrische Spannung in der Detektorspule induziert, auch wenn sich das Magnetfeld in der Erregerspule zeitlich ändert.
Befindet sich nun aber ein Metallgegenstand unter den beiden Spulen, so ändert dieser Gegenstand den weiteren Magnetfeldlinienverlauf. So durchdringen jetzt weiter außen quasi im Schatten des Metallgegenstands weniger Feldlinien die Detektorspule:

Dies führt zu einem Ungleichgewicht zwischen nach oben und nach unten gerichteter Feldlinien in der Detektorspule. Der gesamte die Detektorspule durchdringende magnetische Fluss Φ ist jetzt nicht mehr 0! Ändert sich nun der Strom und damit das Magnetfeld in der Erregerspule. so ändert sich auch der magnetische Fluss in der Detektorspule, da nicht mehr immer 0. Es kommt infolgedessen zu einer Induktionsspannung in der Detektorspule, voila…
Meine beiden Spulen muss ich erst mit Kabelbindern in der passenden Form auf einer Grundplatte fixieren:

Das vom Verstärkermodul kommende Signal sollte in etwa so aussehen:

Man erkennt schön die rechteckigen Erregerpulse gefolgt von der angeregten Schwingung. Mit dem delay-Potentiometer, welches an den analogen Pin A4 geht, kann man den Zeitpunkt einstellen, an dem nach Beendigung des Erregerpulses die angeregte Schwingung gemessen wird. Es ist ein delay von 0 bis 1023 µs einstellbar.
Wenn es Neuigkeiten gibt, geht es hier weiter…
