Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Ultra-empfindlicher EMF-Detektor mit Arduino Nano selbst bauen

Komponenten und Zubehör

Komponente Beschreibung Anzahl
Arduino Nano R3 Mikrocontroller 1
Adafruit Standard LCD - 16x2 Weiß auf Blau Display 1
Summer Akustisches Signal 1
LED (generic) Visuelles Signal 1
Kippschalter Umschaltung der Empfindlichkeit 1

Apps und Online-Dienste

Über dieses Projekt

Dies ist ein einfaches Gerät zur Erkennung sehr schwacher elektromagnetischer Felder. Die relative Feldstärke wird auf dem LCD-Display angezeigt und gleichzeitig durch einen Summer-Ton und eine LED signalisiert. Als Sensor dient ein einfaches Kupferkabel mit 1,5 mm Durchmesser, aber jedes Drahtstück oder Metallplättchen funktioniert. Die Empfindlichkeit lässt sich über den Code und durch Ändern des Widerstandswerts zwischen A0 und Masse einstellen. Mit dem Schalter wird einer von zwei Widerstandswerten gewählt, wodurch sich der Empfindlichkeitsgrad ändert. So lässt sich das Gerät leicht kalibrieren, indem man es mit einem neu kalibrierten Industriegerät vergleicht.

Die Schaltung ist sehr einfach und besteht aus dem Arduino Nano Mikrocontroller und wenigen externen Bauteilen.

Der Code kombiniert zwei Teile: Arduino-basiertes VU-Meter von KTAudio (LCD-Display-Teil) und Aaron ALAI EMF-Detektor (Sensor-Teil) mit Modifikationen für größere Stabilität. Den Code finden Sie unten.

Wie im Video zu sehen, erkennt das Gerät problemlos elektromagnetische Felder von Stromkabeln, die nur unter Spannung stehen, aber keinen Verbraucher angeschlossen haben. Zum Beispiel kann das elektromagnetische Feld eines alten CRT-Monitors in 3 m und mehr Entfernung detektiert werden.

Der Detektor ist in einem praktischen Gehäuse untergebracht und wird mit einer 9V-Batterie betrieben.

Code

Code (C/C++)

/* Arduino basiertes VU-Meter von KTAudio. Entwickelt von ThomAce (Tamas Kamocsai) basierend auf siemenwauters, theredstonelabz und michiel H's VU-Meter. GNU GPL Lizenz v3 Entwickler: ThomAce (Tamas Kamocsai) Mail: thomacepcg@gmail.com Version: 1.0 Letzte Änderung: 2019.09.24 Original: https://www.instructables.com/id/ARDUINO-VU-METER/ Modifiziert von 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);
    }
  }
}

Schaltplan

Schaltplan-Bild ist im Originalprojekt enthalten.

Herstellungsprozess

  1. 20-kHz-Arduino-Oszilloskop mit Nokia 5110 LCD – Einfacher DIY-Bau
  2. DIY ADXL335 Erdbeben-Detektor – Low-Power 3-Achsen-Beschleunigungsmesser-Projekt
  3. LCD-Animationen & Spiele mit Arduino UNO erstellen
  4. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  5. Arduino Audio-Frequenz-Detektor – Lauteste Schallpeaks mit hochsensiblem Modul messen
  6. DIY VR-Skateboard mit Arduino, Google Cardboard und Bluetooth bauen
  7. DIY-Oszilloskop mit Arduino Nano (10 Hz–50 kHz) und 128×64-LCD
  8. DIY Radionik EMR-Behandlungsgerät mit Arduino Nano – Kritische Betrachtung
  9. Zuverlässige Arduino-Wetterstation mit DHT-Sensoren bauen
  10. Kostengünstiger Blitzdetektor mit Arduino Uno – VLF-EMF-Sensor