Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bouw een ultragevoelige EMF-detector met Arduino Nano

Componenten en benodigdheden

Arduino Nano R3 1
Adafruit Standaard LCD - 16x2 Wit op Blauw 1
Buzzer 1
LED (algemeen) 1
Kippelaar, Toggle 1

Apps en online diensten

  • Arduino IDE

Over dit project

Dit is een eenvoudig apparaat dat in staat is om zeer zwake elektromagnetische velden te detecteren. De relatieve veldintensiteit wordt weergegeven op het LCD-display, en er worden geluidssignalen (buzzer) en lichtsignalen (LED) gegeven. De sensor is een simpele koperen draad van 1,5 mm diameter, maar je kunt elk stukje draad of metalen plaatje gebruiken. De gevoeligheid kan via de code worden aangepast, en ook door de waarde van de weerstand tussen A0 en massa te veranderen. Met de schakelaar selecteer je een van de twee weerstandswaarden, en daarmee de gevoeligheidsgraad. Zo kan het apparaat gemakkelijk gekalibreerd worden door het te vergelijken met een gecalibreerd industriële apparaat.

Het schema is zeer simpel en bestaat uit een Arduino Nano-microcontroller en enkele externe componenten. De code is een combinatie van twee delen: de Arduino-gebaseerde VU-meter van KTAudio voor het LCD-deel, en de EMF-detector van Aaron ALAI voor het sensordeel, met aanpassingen voor betere stabiliteit. De code is hieronder te downloaden.

Zoals in de video te zien is, detecteert dit apparaat gemakkelijk elektromagnetische velden gegenereerd door spanningsvoerende kabels die niet aan een verbruiker zijn aangesloten. Bijvoorbeeld: het elektromagnetische veld van een oude CRT-monitor kan op een afstand van 3 meter of meer worden gedetecteerd.

De detector is in een handzaam behuizing gemonteerd en wordt gevoed door een 9V-batterij.

Code

Code (C/C++)

/* Arduino based VU meter by KTAudio. Developed by ThomAce (Tamas Kamocsai) based on siemenwauters, theredstonelabz and michiel H's VU meter. GNU GPL License v3 Developer: ThomAce (Tamas Kamocsai) Mail: thomacepcg@gmail.com Version: 1.0 Last modification date: 2019.09.24 Original version: https://www.instructables.com/id/ARDUINO-VU-METER/ Original description: VU meter by siemenwauters, theredstonelabz and michiel H don't forget to like and subscribe to support my work. tnx Modified by 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); }
  }
}

Schema's

Breadboard-schema van de EMF-detector.

Productieproces

  1. Bouw een 20 kHz Arduino Oscilloscoop op een Nokia 5110 LCD – Eenvoudige DIY Handleiding
  2. DIY ADXL335 Aardbevingendetector – Laag-vermogen 3-as Versnellingsmeter Project
  3. Bouw Boeiende LCD Animaties & Games met Arduino UNO
  4. Een slimme voltmeter bouwen met Arduino en smartphone – Eenvoudig DIY-project
  5. Arduino Audio Frequentie Detector – Meet de luidste geluidspieken met hoge gevoeligheid
  6. Bouw een DIY VR-skateboard met Arduino, Google Cardboard en Bluetooth
  7. Zelfbouw Arduino Nano Oscilloscoop (10 Hz – 50 kHz) met 128×64 LCD
  8. Bouw een DIY Arduino Radionica EMR Behandelapparaat
  9. Bouw een betrouwbare Arduino-weerstation met DHT-sensoren
  10. Bouw een Kosteneffectieve Bliksemdetector met Arduino Uno
  11. Bouw een draagbare RFID-deurslot met Arduino – Stap-voor-stap handleiding