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

Geïsoleerde analoge ingangsschakeling voor Arduino bouwen

Onderdelen en benodigdheden

  • 2× Weerstand 100kΩ ±1% metalfilm
  • 1× Arduino UNO
  • 1× Texas Instruments LM331 (spanning-naar-frequentie omzetter)
  • 1× LM7808 spanningsregelaar
  • 1× Weerstand 3,3kΩ ±1%
  • 1× Weerstand 270Ω ±1%
  • 1× Weerstand 47Ω ±1%
  • 1× Weerstand 12kΩ ±1%
  • 1× Weerstand 6,8kΩ ±1%
  • 1× Weerstand 10kΩ
  • 1× Weerstand 330Ω
  • 1× Weerstand 220Ω
  • 1× Multiturn precisiepotentiometer 5kΩ
  • 1× Condensator 100nF Mylar
  • 1× Condensator 10nF Mylar
  • 1× Condensator 1µF Mylar
  • 1× Condensator 100nF
  • 1× Condensator 4,7µF
  • 1× Condensator 220µF
  • 4× Diode 1N4001
  • 1× 4N25 optocoupler

Nodige tools en machines

  • Soldeerbout (algemeen)

Apps en online services

  • Arduino IDE

Over dit project

Signalen van veldsensoren kunnen worden beïnvloed door ruis van spanningspieken, blikseminslag, EMI en grondpotentiaalverschillen. Volledige galvanische isolatie van de ingang lost de meeste problemen op. Isolatie vereist een aparte voeding voor het veldapparaat en de isolatieschakeling zelf.

Meer details op mijn blog: ardupiclab.blogspot.it.

Code

Arduino kan frequentie meten op twee manieren:

  1. Periode meting met pulseIn() (HIGH-tijd + LOW-tijd = periode). Snel maar minder nauwkeurig, gevoelig voor netruis (50/60Hz).
  2. Frequentiemeting met CPU Timer/Counters (FreqCounter bibliotheek). Langzamer maar hogere precisie, ruisimmuun bij meetperiode veelvoud van netfrequentie.

Ik gebruik de FreqCounter bibliotheek van Martin Nawrath (KHM LAB3). Deze gebruikt Timer1 voor pulstelling op stijgende flank van T1/PD5 (digitale pin 5) en Timer2 voor gate-time generatie met 1ms interrupts. Gate-time 1000ms geeft 5x hogere resolutie dan Arduino Uno standaard.

#include <FreqCounter.h>

void setup() {
  Serial.begin(9600);
  Serial.println("Optogeisoleerde analoge ingang");
}

long int frq;

void loop() {
  FreqCounter::f_comp = 0;
  FreqCounter::start(1000); // 1000ms gate-time
  while (FreqCounter::f_ready == 0); // wacht tot klaar
  frq = FreqCounter::f_freq;
  Serial.println(frq);
  delay(100);
}

Schema's

De schakeling accepteert invoerspanning van ~20mV tot 5V of stroom 4-20mA (met jumper W1). R2 en R3 parallel geven ~250Ω voor 1-5V bij 4-20mA.

Aansluiting op Arduino: 3 draden + weerstand. Optocoupler-uitgang op digitale pin D5 met 2,2kΩ pull-up naar Arduino +5V.

Voor 10V bereik: 15V voeding nodig, LM7808 vervangen door LM7815. Transformator T1 moet ook sensor voeden. Trimmer P1 instellen op ~1kHz/V conversiefactor.

Geïsoleerde analoge ingangsschakeling voor Arduino bouwen

Productieproces

  1. Slimme Plantenalarmer – DIY Sensor voor Optimale Hydratatie
  2. Bouw een 20 kHz Arduino Oscilloscoop op een Nokia 5110 LCD – Eenvoudige DIY Handleiding
  3. Slimme Jaloezieën: Geautomatiseerd Lichtbeheer met Arduino & Zonne-energie
  4. Bouw een Italiaanse Woordklok met Arduino Nano, NeoPixel, LCD en RTC
  5. Bespaar Arduino-pins: Sluit een 4x3-toetsenblok aan met slechts 3 verbindingen
  6. Bouw een Betrouwbare Sigfox kWh Meter met Arduino MKR Fox 1200
  7. Bluetooth Temperatuurmeter met Arduino Nano
  8. Contactloos Gebaarslot: Veilige toegang met APDS-9960 en Arduino
  9. Arduino Nano Companion Kit – Essentiële Componenten & Hulpmiddelen voor DIY Electronica
  10. USB MIDI Adapter Kit voor Arduino Micro / Leonardo – Complete Onderdelenlijst
  11. Bouw een creditcardgrote Arduboy-kloon met Arduino Nano en I2C OLED