Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Сверхчувствительный детектор ЭДС для самостоятельного изготовления

Компоненты и расходные материалы

Arduino Nano R3
× 1
Стандартный ЖК-экран Adafruit - 16x2, белый на синем
× 1
Зуммер
× 1
LED (общий)
× 1
Тумблер, Тумблер
× 1

Приложения и онлайн-сервисы

IDE Arduino

Об этом проекте


Это простое устройство, способное обнаруживать очень слабые электромагнитные поля. Относительная напряженность поля отображается на ЖК-дисплее и одновременно подается звуковая сигнализация зуммером и световая сигнализация светодиодами. В данном случае датчик представляет собой простой медный провод диаметром 1,5 мм, но вы можете использовать любой кусок провода или металлическую плитку. Чувствительность можно настроить с помощью кода, а также путем изменения номинала резистора, подключенного между A0 и заземлением. С помощью переключателя выбирается одно из двух значений резистора, а значит, и степень чувствительности устройства. Таким образом, мы можем легко откалибровать его, сравнив его с откалиброванным промышленным устройством.

Как видно ниже, схема очень проста и состоит из микроконтроллера Arduino Nano и нескольких внешних компонентов.

Код представляет собой комбинацию двух частей (измеритель уровня громкости на базе Arduino от KTAudio для части ЖК-дисплея и детектор ЭДС Aaron ALAI для части датчика), а также модификации некоторых его частей с целью большей стабильности всего устройства. Вы можете скачать его по ссылке ниже.

Как вы можете видеть на видео, это устройство может легко обнаруживать электромагнитные поля, создаваемые силовыми кабелями, которые находятся только под напряжением и не подключены к потребителю. Например, электромагнитное поле старого ЭЛТ-монитора можно обнаружить на расстоянии 3 м и более.

Извещатель размещен в удобном корпусе и питается от батареи 9 В.

Код

  • Код
Код C / C ++
 / * VU-метр на базе Arduino от KTAudio. Разработан ThomAce (Tamas Kamocsai) на основе измерителя уровня громкости siemenwauters, theredstonelabz и michiel H. Лицензия GNU GPL v3 Разработчик:ThomAce (Tamas Kamocsai) Почта:[email protected] Версия:1.0 Дата последнего изменения:2019.09.24 Исходная версия:https://www.instructables.com/id/ARDUINO-VU-METER/ Оригинал описание:VU meter от siemenwauters, theredstonelabz и michiel H не забудьте поставить лайк и подписаться, чтобы поддержать мою работу. tnx Изменено mircemk (Мирко Павлески) * / # include  byte Bar [8] ={B11111, B00000, B11111, B11111, B11111, B11111, B00000, B11111}; байт L [8] ={B00111, B01000, B10100, B10100, B10100, B10111, B01000, B00111}; байт R [8] ={B00111, B01000, B10110, B10101, B10110, B10101, B01000, B00111}; байт EndMark [8] ={B10000, B01000, B00100, B00100, B00100, B00100, B01000, B10000}; байт EmptyBar [8] ={B11111, B00000, B00000, B00000, B00000, B00000, B00000, B11111}; байт peakHoldChar [8] ={B11111, B00000, B01110, B01110, B01110, B01110, B00000, B11111}; строка main_version ="1.0"; int right; // Переменные для хранения и расчета уровней каналов const int numReadings =5; //Частота обновления. Меньшее значение =более высокая скорость. 5 - индекс дефолта R =0; int totalR =0; интервал maxR =0; интервал inputPinR =A0; // Входной вывод Аналоговый 0 для ПРАВОГО канала int volR =0; int rightAvg =0; long peakHoldTime =100; // время удержания пика в миллисекундах long peakHold =0; int rightPeak =0; long decayTime =0; long actualMillis =0; int pin10 =10; // вывод красного светодиода val =0; int pin9 =9; ЖК-дисплей LiquidCrystal (12, 11, 5, 4, 3, 2); // конфигурация ЖК-дисплеяvoid setup () {lcd.begin (40, 2); // Настройка LCD. 16 символов и 2 строки lcd.createChar (1, Bar); lcd.createChar (3, R); lcd.createChar (4, EmptyBar); lcd.createChar (5, EndMark); lcd.createChar (6, peakHoldChar); // Отображение сообщения о загрузке и панели загрузки String KTAudio ="MIRCEMK"; для (int я =0; я <=16; я ++) {lcd.setCursor (0, 0); lcd.print (KTAudio.substring (0, i)); задержка (50); } KTAudio ="ЭМП-детектор" + main_version; для (int я =0; я <=KTAudio.length (); я ++) {lcd.setCursor (0, 1); lcd.print (KTAudio.substring (0, i)); задержка (50); } задержка (500); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Загрузка ...»); для (int я =0; я <16; я ++) {lcd.setCursor (я, 1); lcd.write (4); } для (int я =0; я <16; я ++) {lcd.setCursor (я, 1); lcd.write (1); задержка (50); } задержка (500); lcd.clear (); decayTime =millis ();} недействительный цикл () {lcd.setCursor (0, 0); lcd.write («ЭДС-интенсивность»); actualMillis =millis (); lcd.setCursor (0, 1); // Индекс R канала lcd.write (3); // символ R lcd.setCursor (15, 1); // закрывающий тег / индекс конца 2 lcd.write (5); // закрывающий тег / конечный знак totalR =analogRead (inputPinR); если (totalR> =1) {totalR =ограничить (totalR, 0, 100); // возиться с этими значениями totalR =map (totalR, 0, 100, 1, 255); // изменить расстояние срабатывания устройства analogWrite (pin10, totalR); // * обратите внимание, что возня с резистором должна измениться analogWrite (pin9, totalR); // чувствительность} else {// analogWrite (pin10, val); просто включается светодиод с // интенсивностью переменной val analogWrite (pin10, 0); // оператор else просто сообщает микроконтроллеру analogWrite (pin9, 0); // выключить свет, если ЭДС не обнаружено} if (totalR> maxR) {maxR =totalR; } indexR ++; если (indexR> =numReadings) {indexR =0; справа =maxR; maxR =0; } volR =право / 3; если (объем R> 14) {объем R =14; } if (volR <(rightAvg - 2)) {if (decayTime  (rightAvg + 2)) {volR =(rightAvg + 2); rightAvg =volR; } еще {rightAvg =volR; } если (объемR> rightPeak) {rightPeak =volR; } drawBar (volR, rightPeak, 1); если (время распада <фактический миллис) время распада =(миллис () + 50); если (пиковое удержание <фактический миллис) {пиковое удержание =(миллис () + пиковое время удержания); rightPeak =-1; }} void drawBar (int data, int peakData, int row) {// Если предыдущие пиковые данные равны 1 или 0, то значение не заботится. если (пикДата <2) {ПикДата =-1; } // Первый символ (idx 0) =R или L // Последний (16-й) символ (idx 15) - закрывающая отметка бара. // Нам нужно написать 14 символов. для (int col =1; col <15; col ++) {lcd.setCursor (col, row); если (col <данные) {lcd.write (1); // записываем элемент полосы} else if (peakData ==col) {lcd.write (6); // записываем маркер пика} else {lcd.write (4); // пишем "пустой"}}} 

Схема


Производственный процесс

  1. DIY Простой осциллограф Arduino 20 кГц на ЖК-дисплее Nokia 5110
  2. Чувствительный датчик землетрясений ADXL335 для самостоятельного изготовления
  3. ЖК-анимация и игры
  4. Вольтметр своими руками с использованием Arduino и смартфона
  5. Детектор звуковой частоты
  6. Скейтборд виртуальной реальности «Сделай сам»
  7. Осциллограф 10 Гц-50 кГц для самостоятельного изготовления на ЖК-дисплее 128x64
  8. Сделай сам Arduino РАДИОНИКА Лечение MMachine
  9. Метеостанция Arduino
  10. Детектор молний для Arduino