Détecteur de métaux Arduino simple : 8 étapes (avec photos)
Détecteur de métaux Arduino simple : 8 étapes (avec photos)
Anonim

*** Une nouvelle version a été publiée encore plus simple: https://www.instructables.com/Minimal-Arduino-Metal-Detector/ ***

La détection de métaux est un excellent passe-temps qui vous permet de sortir, de découvrir de nouveaux endroits et peut-être de trouver quelque chose d'intéressant. Vérifiez vos réglementations locales sur la façon d'agir en cas de découverte éventuelle, en particulier en cas d'objets dangereux, de reliques archéologiques ou d'objets ayant une valeur économique ou émotionnelle importante.

Les instructions pour les détecteurs de métaux de bricolage sont nombreuses, mais cette recette est particulière dans le sens où elle nécessite très peu de composants en plus d'un microcontrôleur Arduino: un condensateur, une résistance et une diode communs forment le noyau, ainsi qu'une bobine de recherche composée d'environ 20 enroulements de câble électriquement conducteur. Des LED, un haut-parleur et/ou un casque sont ensuite ajoutés pour signaler la présence de métal près de la bobine de recherche. Un avantage supplémentaire est que tous peuvent être alimentés à partir d'une seule alimentation 5V, pour laquelle une alimentation USB commune de 2000mAh est suffisante et durera de nombreuses heures.

Pour interpréter les signaux et comprendre à quels matériaux et formes le détecteur est sensible, cela aide vraiment à comprendre la physique. En règle générale, le détecteur est sensible aux objets à une distance ou à une profondeur allant jusqu'au rayon de la bobine. Il est plus sensible aux objets dans lesquels un courant peut circuler dans le plan de la bobine, et la réponse correspondra à la zone de la boucle de courant dans cet objet. Ainsi, un disque métallique dans le plan de la bobine donnera une réponse beaucoup plus forte que le même disque métallique perpendiculaire à la bobine. Le poids de l'objet importe peu. Un mince morceau de papier d'aluminium orienté dans le plan d'une bobine donnera une réponse beaucoup plus forte qu'un boulon en métal lourd.

Étape 1: Principe de fonctionnement

Principe de fonctionnement
Principe de fonctionnement

Lorsque l'électricité commence à circuler à travers une bobine, elle crée un champ magnétique. Selon la loi d'induction de Faraday, un champ magnétique changeant se traduira par un champ électrique qui s'oppose au changement de champ magnétique. Ainsi, une tension se développera aux bornes de la bobine qui s'opposera à l'augmentation du courant. Cet effet est appelé auto-inductance et l'unité d'inductance est Henry, où une bobine de 1 Henry développe une différence de potentiel de 1 V lorsque le courant change de 1 Ampère par seconde. L'inductance d'une bobine avec N enroulements et un rayon R est d'environ 5µH x N^2 x R, avec R en mètres.

La présence d'un objet métallique à proximité d'une bobine modifiera son inductance. Selon le type de métal, l'inductance peut augmenter ou diminuer. Les métaux non magnétiques tels que le cuivre et l'aluminium à proximité d'une bobine réduisent l'inductance, car un champ magnétique changeant induira des courants de Foucault dans l'objet qui réduisent l'intensité du champ magnétique local. Les matériaux ferromagnétiques, tels que le fer, à proximité d'une bobine augmentent son inductance car les champs magnétiques induits s'alignent avec le champ magnétique externe.

La mesure de l'inductance d'une bobine peut ainsi révéler la présence de métaux à proximité. Avec un Arduino, un condensateur, une diode et une résistance, il est possible de mesurer l'inductance d'une bobine: en faisant partie de la bobine d'un filtre LR passe-haut et en l'alimentant avec une onde de bloc, de courts pics seront créés à chaque transition. La longueur d'impulsion de ces pointes est proportionnelle à l'inductance de la bobine. En effet, le temps caractéristique d'un filtre LR est tau=L/R. Pour une bobine de 20 enroulements et un diamètre de 10 cm, L ~ 5µH x 20^2 x 0,05 = 100µH. Pour protéger l'Arduino des surintensités, la résistance minimale est de 200 Ohm. On s'attend donc à des impulsions d'une durée d'environ 0,5 microseconde. Celles-ci sont difficiles à mesurer directement avec une grande précision, étant donné que la fréquence d'horloge de l'Arduino est de 16 MHz.

Au lieu de cela, l'impulsion montante peut être utilisée pour charger un condensateur, qui peut ensuite être lu avec l'Arduino analogique-numérique converti (ADC). La charge attendue d'une impulsion de 0,5 microseconde de 25 mA est de 12,5 nC, ce qui donnera 1,25 V sur un condensateur de 10 nF. La chute de tension sur la diode réduira cela. Si l'impulsion est répétée plusieurs fois, la charge du condensateur s'élève à ~2V. Cela peut être lu avec l'ADC Arduino en utilisant analogRead(). Le condensateur peut alors être rapidement déchargé en changeant la broche de lecture en sortie et en la réglant sur 0V pendant quelques microsecondes. La mesure entière prend environ 200 microsecondes, 100 pour la charge et la réinitialisation du condensateur et 100 pour la conversion ADC. La précision peut être considérablement améliorée en répétant la mesure et en faisant la moyenne du résultat: prendre la moyenne de 256 mesures prend 50 ms et améliore la précision d'un facteur 16. Le CAN 10 bits atteint ainsi la précision d'un CAN 14 bits.

Cette mesure obtenue est fortement non linéaire avec l'inductance de la bobine et donc non adaptée pour mesurer la valeur absolue de l'inductance. Cependant, pour la détection de métaux, nous ne nous intéressons qu'aux infimes changements relatifs de l'inductance de la bobine dus à la présence de métaux à proximité, et pour cela cette méthode est parfaitement adaptée.

L'étalonnage de la mesure peut se faire automatiquement dans le logiciel. Si l'on peut supposer que la plupart du temps il n'y a pas de métal près de la bobine, un écart par rapport à la moyenne est un signal que le métal s'est approché de la bobine. L'utilisation de différentes couleurs ou de différentes tonalités permet de discriminer entre une augmentation soudaine ou une diminution soudaine de l'inductance.

Étape 2: Composants requis

Noyau électronique:

Arduino UNO R3 + shield prototype OU Arduino Nano avec carte prototype 5x7cm

Condensateur 10nF

Petite diode de signalisation, par ex. 1N4148

Résistance de 220 ohms

Pour le pouvoir:

Banque d'alimentation USB avec câble

Pour la sortie visuelle:

2 LED de couleur différente, par ex. bleu et vert

2 résistances 220Ohm pour limiter les courants

Pour la sortie son:

Buzzer passif

Micro-interrupteur pour désactiver le son

Pour la sortie des écouteurs:

Connecteur d'écouteur

Résistance 1kOhm

Écouteurs

Pour connecter/déconnecter facilement la bobine de recherche:

Borne à vis à 2 broches

Pour la bobine de recherche:

~5 mètres de câble électrique fin

Structure pour tenir la bobine. Doit être rigide mais n'a pas besoin d'être circulaire.

Pour la structure:

Bâton de 1 mètre, par exemple en bois, en plastique ou à selfie.

Étape 3: La bobine de recherche

La bobine de recherche
La bobine de recherche

Pour la bobine de recherche, j'ai enroulé environ 4 m de fil torsadé autour d'un cylindre en carton de 9 cm de diamètre, ce qui a donné environ 18 enroulements. Le type de câble n'a pas d'importance, tant que la résistance ohmique est au moins dix fois inférieure à la valeur de R dans le filtre RL, veillez donc à rester en dessous de 20 Ohms. J'ai mesuré 1 Ohm, donc c'est sûr. Il suffit de prendre un rouleau de fil de raccordement à moitié fini de 10 m !

Étape 4: Une version prototype

Une version prototype
Une version prototype
Une version prototype
Une version prototype
Une version prototype
Une version prototype
Une version prototype
Une version prototype

Compte tenu du petit nombre de composants externes, il est parfaitement possible de monter le circuit sur la petite maquette d'un prototype de shield. Cependant, le résultat final est assez volumineux et peu robuste. Mieux vaut utiliser un Arduino nano et le souder avec les composants supplémentaires sur une carte prototype de 5x7cm, (voir étape suivante)

Seules 2 broches Arduino sont utilisées pour la détection réelle des métaux, une pour fournir les impulsions au filtre LR et une pour lire la tension sur le condensateur. L'impulsion peut être effectuée à partir de n'importe quelle broche de sortie, mais la lecture doit être effectuée avec l'une des broches analogiques A0-A5. 3 broches supplémentaires sont utilisées pour 2 LED et pour la sortie audio.

Voici la recette:

  1. Sur la maquette, connectez la résistance 220Ohm, la diode et le condensateur 10nF en série, avec la borne négative de la diode (la ligne noire) vers le condensateur.
  2. Connectez A0 à la résistance (l'extrémité non connectée à la diode)
  3. Connectez A1 à l'endroit où le point de croisement de la diode et du condensateur
  4. Connectez la borne non connectée du condensateur à la terre
  5. Connectez une extrémité de la bobine au point de croisement résistance-diode
  6. Connectez l'autre extrémité de la bobine à la terre
  7. Connectez une LED avec sa borne positive à la broche D12 et sa borne négative à travers une résistance de 220 Ohm à la terre
  8. Connectez l'autre LED avec sa borne positive à la broche D11 et sa borne négative à travers une résistance de 220Ohm à la terre
  9. En option, connectez un casque ou un haut-parleur à buzzer passif entre la broche 10 et la masse. Un condensateur ou une résistance peut être ajouté en série pour réduire le volume

C'est tout!

Étape 5: Une version soudée

Une version soudée
Une version soudée
Une version soudée
Une version soudée

Pour sortir le détecteur de métaux à l'extérieur, il faudra le souder. Une carte prototype commune de 7x5 cm s'adapte confortablement à un Arduino nano et à tous les composants requis. Utilisez les mêmes schémas qu'à l'étape précédente. J'ai trouvé utile d'ajouter un interrupteur en série avec le buzzer pour couper le son lorsqu'il n'est pas nécessaire. Une borne à vis permet d'essayer différentes bobines sans avoir à souder. Tout est alimenté par le 5V fourni au port (mini- ou micro-USB) de l'Arduino Nano.

Étape 6: Le logiciel

Le croquis Arduino utilisé est joint ici. Téléchargez et exécutez-le. J'ai utilisé Arduino 1.6.12 IDE. Il est recommandé de l'exécuter avec debug=true au début, afin de régler le nombre d'impulsions par mesure. Le mieux est d'avoir une lecture ADC entre 200 et 300. Augmentez ou diminuez le nombre d'impulsions au cas où votre bobine donnerait des lectures radicalement différentes.

L'esquisse fait une sorte d'auto-étalonnage. Il suffit de laisser la bobine silencieuse loin des métaux pour la rendre silencieuse. Des dérives lentes de l'inductance seront suivies, mais des changements soudains et importants n'affecteront pas la moyenne à long terme.

Étape 7: le monter sur un bâton

Le monter sur un bâton
Le monter sur un bâton
Le monter sur un bâton
Le monter sur un bâton

Puisque vous ne voudriez pas faire vos chasses au trésor en rampant sur le sol, les trois planches, la bobine et la batterie doivent être montées au bout d'un bâton. Un selfie-stick est idéal pour cela, car il est léger, pliable et réglable. Mon powerbank 5000mAh s'est trouvé sur la perche à selfie. La carte peut ensuite être fixée avec des attaches de câble ou des élastiques et la bobine peut être de la même manière à la batterie ou au bâton.

Étape 8: Comment l'utiliser

Pour établir la référence, il suffit de laisser la bobine à ~5s des métaux. Ensuite, lorsque la bobine s'approche d'un métal, la LED verte ou bleue se met à clignoter et des bips sont émis dans le buzzer et/ou le casque. Des flashs bleus et des bips graves indiquent la présence de métaux non ferromagnétiques. Des clignotements verts et des bips aigus indiquent la présence de métaux ferromagnétiques. Attention, lorsque la bobine est maintenue pendant plus de 5 secondes près du métal, elle prendra cette lecture comme référence et commencera à émettre un bip lorsque le détecteur sera éloigné du métal. Après quelques secondes de bip dans l'air, il redeviendra silencieux. La fréquence des flashs et des bips indique la force du signal. Bonne chasse!