Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Ein isolierter Analogeingang für Arduino

Komponenten und Verbrauchsmaterialien

Widerstand 100k Ohm
±1% Metallfolie
× 2
Arduino UNO
× 1
Texas Instruments LM331
× 1
LM7808
× 1
Widerstand 3,3 kOhm
±1% Metallfolie
× 1
Widerstand 270 Ohm
±1% Metallfolie
× 1
Widerstand 47 Ohm
× 1
Widerstand 12 kOhm
±1% Metallfolie
× 1
Widerstand 6,8 ​​kOhm
±1% Metallfolie
× 1
Widerstand 10k Ohm
× 1
Widerstand 330 Ohm
× 1
Widerstand 220 Ohm
× 1
Multiturn-Präzisionspotentiometer 5k Ohm
× 1
Kondensator 100nF
Mylar-Typ
× 1
Kondensator 10 nF
Mylar-Typ
× 1
Kondensator 1 MF
Mylar-Typ
× 1
Kondensator 100 nF
× 1
Kondensator 4,7 µF
× 1
Kondensator 220 µF
× 1
Diode 1N4001
× 4
4N25 Opto-Isolator
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Die Signale von Feldsensoren können durch Rauschen beeinflusst werden, das durch Überspannungen, Blitzeinschläge oder andere EMI-Quellen (Elektromagnetische Interferenz) erzeugt wird, sowie durch Erdpotentialunterschiede. Eine Methode, um die meisten dieser Probleme zu vermeiden, besteht darin, eine vollständige Isolierung vom Feld zu verwenden.

Die Isolierung eines Eingangssensors erfordert eine separate Stromversorgung, um das Feldgerät und die Schaltung, die die Isolierung selbst realisiert, mit Strom zu versorgen.

Weitere Details finden Sie in dem Beitrag, der in meinem Blog veröffentlicht wurde:http://ardupiclab.blogspot.it/.

Code

  • Arduino-Schnittstelle und -Programm
Arduino-Schnittstelle und -ProgrammArduino
Arduino kann die Frequenz auf zwei Arten messen:
• Periodendauermessung mit der Funktion pulsein();
• Frequenzmessung, mit CPU Timer/Counter, unter Verwendung spezieller Bibliotheken.
Die erste Methode verwendet zweimal die Funktion pulsein(), um die HIGH-Zeit und die LOW-Zeit des Signals mit einer Auflösung von Mikrosekunden zu messen. Die Summe der beiden Messungen ist die Periode des Signals. Für ein 5kHz-Signal beträgt die Periode 200 µs =HIGH-Zeit + LOW-Zeit =125+75 µs. Die zeitliche Auflösung ist relativ gering und die Messgenauigkeit wird auch durch die Zeit der Programmanweisungen beeinflusst.
Positiv an dieser Methode ist die etwas höhere Messgeschwindigkeit als die gemessene Periode. Nachteilig ist, dass es neben der geringeren Genauigkeit am empfindlichsten auf das elektrische Netzrauschen (50 oder 60 Hz) reagiert.
Aus diesen Gründen bevorzuge ich eine Frequenzmessung in Bezug auf die Periode. Die Messzeit ist höher, aber Sie erhalten eine höhere Präzision und präzise Abtastzeiten. Darüber hinaus verfügt es über eine ausgezeichnete Störfestigkeit, wenn eine Messperiode gewählt wird, die der des Stromnetzes um ein Vielfaches entspricht.
Ich verwende die FreqCounter-Bibliothek von Martin Nawrath KHM LAB3:
http://interface.khm.de/wp-content/uploads/2009/01/FreqCounter_1_12.zip
Diese Bibliothek verwendet Timer/Counter1 zum Zählen von Impulsen bei steigender Flanke von T1/PD5/digitalPin5 und Timer/Counter2 für die Gate-Time-Generierung mit 1-ms-Interrupts.
Ich habe eine Gate-Zeit von 1000 ms gewählt, um die Zählung über eine Periode von 50 oder 60 Netzzyklen zu vermitteln. In diesem Fall erhalten Sie eine fünfmal höhere Auflösung als Arduino Uno.
#include void setup() { Serial.begin(9600); // mit dem seriellen Port verbinden Serial.println ("Optoisolated analog input");} long int frq;void loop () { FreqCounter::f_comp=0; // Kompensation auf 0 setzen FreqCounter::start(1000); // Zählen starten mit Gatetime von 1000ms while (FreqCounter::f_ready ==0) // warten bis Zähler fertig ist frq=FreqCounter::f_freq; // Ergebnis lesen Serial.println (frq); // Ergebnisverzögerung (100);}

Schaltpläne

Die Schaltung akzeptiert eine Eingangsspannung von ca. 20 mV bis 5 V oder einen Strom von 4 bis 20 mA (bei gestecktem Jumper W1). Die beiden parallel geschalteten Widerstände R2 und R3 ergeben einen Wert von ca. 250 Ohm, um 1V bis 5V für 4mA bis 20mA Stromeingang zu haben.
Nur drei Drähte und ein Widerstand werden benötigt, um die Schaltung mit dem Arduino Uno zu verbinden. Der Ausgang des Optokopplers sollte mit einem Pull-up-Widerstand von 2,2 k an den digitalen Eingang D5 angeschlossen werden, der an die +5V von Arduino angeschlossen ist.
Wird ein Eingangsbereich von 10V benötigt, ist ein 15V Netzteil erforderlich, daher muss der Regler 7808 durch einen 7815 ersetzt werden. Der Transformator T1 muss auch den Sensor versorgen, also muss er eine ausreichende Spannung und Leistung haben. Der Trimmer P1 muss so eingestellt werden, dass ein Umrechnungsfaktor von ca. 1kHz/V erreicht wird.

Herstellungsprozess

  1. Pflanzenalarm bei Durstalarm
  2. DIY Einfaches 20-kHz-Arduino-Oszilloskop auf Nokia 5110 LCD
  3. Smart Blinds
  4. italienische Wordclock
  5. Nur drei Pins für eine 4x3-Tastatur
  6. Sigfox-kWh-Zähler
  7. Bluetooth-Temperaturüberwachung
  8. Gestengesteuerte Sperre
  9. Der Companion-IC
  10. USB-MIDI-Adapter