Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Construa um Detector de EMF Ultra-Sensível com Arduino Nano

Componentes e Materiais

Componente Quantidade
Arduino Nano R3 1
Display LCD Padrão Adafruit 16x2 Branco no Azul 1
Buzzer 1
LED (genérico) 1
Chave Seletora (Toggle Switch) 1

Aplicativos e Serviços Online

Sobre o Projeto

Este é um dispositivo simples capaz de detectar campos eletromagnéticos muito fracos. A intensidade relativa do campo é exibida no display LCD, acompanhada de sinalização sonora (buzzer) e visual (LED). O sensor consiste em um fio de cobre simples com 1,5 mm de diâmetro, mas qualquer pedaço de fio ou placa metálica pode ser usado. A sensibilidade pode ser ajustada via código e alterando o valor do resistor conectado entre A0 e o ground. Com a chave seletora, escolhe-se entre dois valores de resistor, ajustando o grau de sensibilidade. Isso permite calibração fácil comparando com um dispositivo industrial recalibrado.

O circuito é muito simples, consistindo no microcontrolador Arduino Nano e poucos componentes externos.

O código combina duas partes: medidor VU baseado em Arduino por KTAudio (parte do display LCD) e Detector EMF de Aaron ALAI (parte do sensor), com modificações para maior estabilidade. O código completo está disponível para download.

Conforme demonstrado no vídeo, o dispositivo detecta facilmente campos eletromagnéticos gerados por cabos de energia apenas sob tensão (sem carga conectada). Por exemplo, o campo de um monitor CRT antigo é detectado a 3 metros ou mais.

O detector é montado em uma caixa conveniente e alimentado por bateria de 9V.

Código

Código (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); }
  }
}

Esquemático

Diagrama de conexões disponível na documentação original.

Processo de manufatura

  1. Construa um Osciloscópio Arduino de 20 kHz em LCD Nokia 5110 – Guia DIY Fácil
  2. Detector de Terremoto DIY ADXL335 – Acelerômetro 3-Eixos de Baixa Potência
  3. Crie Animações e Jogos Envolventes em LCD com Arduino UNO
  4. Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
  5. Detector de Frequência de Áudio com Arduino – Meça Picos de Som com Módulo de Alta Sensibilidade
  6. Construa um Skate VR DIY com Arduino, Google Cardboard e Bluetooth
  7. Osciloscópio DIY com Arduino Nano (10 Hz–50 kHz) e LCD 128×64
  8. Dispositivo de Tratamento Radiônico EMR DIY com Arduino Nano
  9. Construa uma Estação Meteorológica Arduino Confiável com Sensores DHT
  10. Construa um Detector de Raios de Baixo Custo com Arduino Uno