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

Гальванически разделённый аналоговый вход для Arduino на LM331 и оптопаре 4N25

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

Название Количество
Arduino UNO 1
LM331 (преобразователь напряжения в частоту) 1
Оптопара 4N25 1
Стабилизатор LM7808 (8 В) 1
Диоды 1N4001 4
Резисторы: 100к (2), 10к, 12к, 6.8к, 3.3к, 330, 270, 220, 47 Ом по 1
Потенциометр 5 кОм многооборотный 1
Конденсаторы: 100нФ (2), 10нФ, 1мкФ, 4.7мкФ, 220мкФ по 1
Трансформатор T1 (для изолированного питания датчика и схемы) 1

Инструменты

Программное обеспечение

Зачем нужна гальваническая развязка

Сигналы от полевых датчиков могут быть повреждены импульсными помехами, грозой, EMI и разницей потенциалов земель. Полная изоляция входного цепи от Arduino решает эти проблемы. Для этого нужно изолированное питание для датчика и входного тракта (трансформатор T1), преобразование сигнала в частоту (LM331) и передача через оптопару (4N25).

Принцип работы

  1. Входное напряжение (20 мВ – 5 В) или ток (4–20 мА, с джампером W1) поступает на LM331.
  2. LM331 выдаёт импульсы с частотой ~1 кГц/В (настраивается подстроечником P1).
  3. Импульсы через оптопару 4N25 попадают на Arduino D5 (T1 вход Timer1).
  4. Arduino измеряет частоту библиотекой FreqCounter (gate time 1000 мс = 50/60 периодов сети → отличная помехоустойчивость).

Схема подключения к Arduino

Скетч (Arduino)

#include <FreqCounter.h>

void setup() {
  Serial.begin(9600);
  Serial.println("Optoisolated analog input");
}

long int frq;

void loop() {
  FreqCounter::f_comp = 0;
  FreqCounter::start(1000);           // gate time 1000 мс
  while (FreqCounter::f_ready == 0);  // ждём готовности
  frq = FreqCounter::f_freq;          // частота в Гц
  Serial.println(frq);
  delay(100);
}

Почему частотомер, а не pulseIn? pulseIn измеряет период (два вызова), точность низкая, чувствителен к 50/60 Гц. FreqCounter использует Timer1 (счёт импульсов) и Timer2 (gate time 1 мс прерывания), за 1000 мс накапливает счёт — разрешение в 5 раз лучше, плюс подавление сетевых помех.

Принципиальная схема

Гальванически разделённый аналоговый вход для Arduino на LM331 и оптопаре 4N25

Примечание: для диапазона 10 В замените LM7808 на LM7815 и используйте трансформатор с большим напряжением. Подстроечник P1 настраивается на 1 кГц/В.

Подробнее в блоге автора

ardupiclab.blogspot.it

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

  1. Умный датчик полива «Thirst Alert» на Arduino — DIY сигнализация засухи для растений
  2. Создание осциллографа на Arduino Nano с дисплеем Nokia 5110 (20 кГц): простое DIY-руководство
  3. Умные шторы: автоматическое управление светом на Arduino с солнечной энергией
  4. Итальянские словесные часы на Arduino Nano, NeoPixel, LCD и RTC
  5. Экономия пинов Arduino: подключение 4×3 клавиатуры по трём аналоговым входам
  6. Надежный счетчик кВт·ч на Sigfox с Arduino MKR Fox 1200
  7. Bluetooth-монитор температуры на Arduino Nano с NTC-термистором
  8. Бесконтактный жестовый замок: APDS-9960 + Arduino для безопасного доступа
  9. Набор-компаньон для Arduino Nano — необходимые компоненты и инструменты для DIY-электроники
  10. Набор USB-MIDI адаптера для Arduino Micro / Leonardo — полный список деталей