Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Construire un Détecteur de Champs Électromagnétiques Ultra-Sensible avec Arduino Nano

Composants et fournitures

Composant Description Quantité
Arduino Nano R3 Microcontrôleur principal 1
Adafruit LCD Standard 16x2 Blanc sur Bleu Affichage de l'intensité du champ 1
Buzzer Signalisation sonore 1
LED générique Signalisation lumineuse 1
Interrupteur à bascule Sélection de la sensibilité (deux valeurs de résistance) 1

Applications et services en ligne

À propos du projet

Ce dispositif simple détecte des champs électromagnétiques très faibles. L'intensité relative est affichée sur l'écran LCD, accompagnée d'une signalisation sonore (buzzer) et lumineuse (LED). Le capteur est un simple fil de cuivre de 1,5 mm de diamètre, mais tout morceau de fil ou plaque métallique convient. La sensibilité est ajustable via le code et en modifiant la valeur de la résistance connectée entre A0 et la masse. Un commutateur permet de sélectionner l'une de deux valeurs de résistance, changeant ainsi le degré de sensibilité. Cela permet un étalonnage facile en comparant avec un appareil industriel de référence.

Le circuit est très simple : un microcontrôleur Arduino Nano et quelques composants externes.

Le code combine deux parties : un VU-mètre Arduino de KTAudio (partie affichage LCD) et un détecteur EMF d'Aaron ALAI (partie capteur), avec des modifications pour une plus grande stabilité. Le code est téléchargeable via le lien fourni.

Comme montré dans la vidéo, l'appareil détecte aisément les champs électromagnétiques générés par des câbles d'alimentation sous tension mais non connectés à un consommateur. Par exemple, le champ d'un ancien moniteur CRT est détecté à 3 mètres et plus.

Le détecteur est logé dans un boîtier pratique et alimenté par une pile 9V.

Code

/* VU-mètre Arduino par KTAudio. Développé par ThomAce (Tamas Kamocsai) basé sur siemenwauters, theredstonelabz et michiel H. Licence GNU GPL v3. Développeur: ThomAce. Email: thomacepcg@gmail.com Version: 1.0 Dernière modification: 2019.09.24 Version originale: https://www.instructables.com/id/ARDUINO-VU-METER/ Modifié par mircemk (Mirko Pavleski) */
#include <LiquidCrystal.h>
byte Bar[8] = { B11111, B00000, B11111, B11111, B11111, B11111, B00000, B11111 };
byte L[8] = { B00111, B01000, B10100, B10100, B10100, B10111, B01000, B00111 };
byte R[8] = { B00111, B01000, B10110, B10101, B10110, B10101, B01000, B00111 };
byte EndMark[8] = { B10000, B01000, B00100, B00100, B00100, B00100, B01000, B10000 };
byte EmptyBar[8] = { B11111, B00000, B00000, B00000, B00000, B00000, B00000, B11111 };
byte peakHoldChar[8] = { B11111, B00000, B01110, B01110, B01110, B01110, B00000, B11111 };
String main_version = "1.0";
int right;
const int numReadings = 5;
int indexR = 0;
int totalR = 0;
int maxR = 0;
int inputPinR = A0;
int volR = 0;
int rightAvg = 0;
long peakHoldTime = 100;
long peakHold = 0;
int rightPeak = 0;
long decayTime = 0;
long actualMillis = 0;
int pin10 = 10;
int val = 0;
int pin9 = 9;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(40, 2);
  lcd.createChar(1, Bar);
  lcd.createChar(3, R);
  lcd.createChar(4, EmptyBar);
  lcd.createChar(5, EndMark);
  lcd.createChar(6, peakHoldChar);
  String KTAudio = " MIRCEMK";
  for (int i = 0; i <= 16; i++) {
    lcd.setCursor(0, 0);
    lcd.print(KTAudio.substring(0, i));
    delay(50);
  }
  KTAudio = " EMF-detector " + main_version;
  for (int i = 0; i <= KTAudio.length(); i++) {
    lcd.setCursor(0, 1);
    lcd.print(KTAudio.substring(0, i));
    delay(50);
  }
  delay(500);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Loading...");
  for (int i = 0; i < 16; i++) {
    lcd.setCursor(i, 1);
    lcd.write(4);
  }
  for (int i = 0; i < 16; i++) {
    lcd.setCursor(i, 1);
    lcd.write(1);
    delay(50);
  }
  delay(500);
  lcd.clear();
  decayTime = millis();
}

void loop() {
  lcd.setCursor(0, 0);
  lcd.write(" EMF-intensity");
  actualMillis = millis();
  lcd.setCursor(0, 1);
  lcd.write(3);
  lcd.setCursor(15, 1);
  lcd.write(5);
  totalR = analogRead(inputPinR);
  if(totalR >= 1){
    totalR = constrain(totalR, 0, 100);
    totalR = map(totalR, 0, 100, 1, 255);
    analogWrite(pin10, totalR);
    analogWrite(pin9, totalR);
  }else{
    analogWrite(pin10, 0);
    analogWrite(pin9, 0);
  }
  if(totalR > maxR) { maxR = totalR; }
  indexR++;
  if (indexR >= numReadings) { indexR = 0; right = maxR; maxR = 0; }
  volR = right / 3;
  if(volR > 14) { volR = 14; }
  if (volR < (rightAvg - 2)) {
    if (decayTime < actualMillis) rightAvg--;
    volR = rightAvg;
  } else if (volR > (rightAvg + 2)) {
    volR = (rightAvg + 2);
    rightAvg = volR;
  } else { rightAvg = volR; }
  if (volR > rightPeak) { rightPeak = volR; }
  drawBar(volR, rightPeak, 1);
  if (decayTime < actualMillis) decayTime = (millis() + 50);
  if (peakHold < actualMillis) { peakHold = (millis() + peakHoldTime); rightPeak = -1; }
}

void drawBar(int data, int peakData, int row) {
  if (peakData < 2) { peakData = -1; }
  for (int col = 1; col < 15; col++) {
    lcd.setCursor(col, row);
    if (col < data) { lcd.write(1); }
    else if (peakData == col) { lcd.write(6); }
    else { lcd.write(4); }
  }
}

Schémas

Schéma de câblage du détecteur EMF avec Arduino Nano, LCD, buzzer, LED, interrupteur et antenne (fil de cuivre).

Processus de fabrication

  1. Construire un oscilloscope Arduino 20 kHz sur écran Nokia 5110 – Guide DIY facile
  2. Détecteur de séismes DIY ADXL335 – Accéléromètre 3 axes basse consommation
  3. Créer des animations et jeux sur LCD avec Arduino UNO
  4. Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
  5. Détecteur de fréquence audio Arduino — Mesurer le pic sonore avec module haute sensibilité
  6. Construisez un skateboard VR DIY avec Arduino, Google Cardboard et Bluetooth
  7. Oscilloscope DIY Arduino Nano (10 Hz – 50 kHz) avec écran LCD 128×64
  8. Dispositif de Traitement Radionique EMR DIY avec Arduino Nano
  9. Construire une Station Météo Arduino Fiable avec Capteurs DHT