HW-685 4-20mA Strom Sensor Modul
Die HW-685 4-20mA Strom Sensor Modul Dokumentation ist noch in Arbeit. Ich werde demächst diese Dokumentation noch erweitern.
Overview
Das HW-685 4-20mA Strom Sensor Modul
Mit diesem Modul kann man kleine Ströme im Bereich von 4-20mA messen. Das Modul übersetzt den gemessenen Strom in eine Messspannung. Mit zwei kleinen Jumpern kann man die Ausgangsspannungsbereich festlegen. Weiterhin ist es möglich mit Potentiometern den Nullpunkt wie auch die Maximale Spannung festlegen.
Zum Beispiel gibt einem das Modul den linearen Strom Bereich von 4-20mA auf 5-7V zu übersetzen. 5V entspricht dann 4mA und 7V 20mA.
Verbindung
Beispiel Verbindung mit dem HW-685 Modul.
Für eine Verbindung braucht man eine Konstantspannungsquelle. Das Modul lässt sich wie folgend verbinden:
Wemos D1 Mini PIN | HD-685 | Remarks |
---|---|---|
5V | VCC | 5V - 12V Spannungseingang Konstant |
G | GND | Masse |
A0 | VOUT | Analog Eingang |
HD-685 | Remarks |
---|---|
VCC | 5V - 12V Konstant |
GND | Masse |
VOUT | Analog In |
I+ | Positiver “Stromeingang” |
I- | Negativer “Stromausgang” |
Achtung
Die VCC sollte konstant sein, andernfalls ändert sich die Ausgangsspannung mit der Versorgungsspannung. Falls also die Versorgungsspannung mit der Temperatur schwankt tut dies dann auch die Ausgangsspannung des Moduls.Benutzung
Bevor man einigermaßen ordentliche Ergebnisse erreicht, muss man sein Modul vorher mit den Jumpern und den Potentiometern einstellen. Um das Modul einzustellen braucht man entweder eine Konstantstromquelle welche einem einen konstanten Strom in dem Bereich von 4-20mA liefert, oder einen Widerstand. Das mit dem Widerstand ist nicht ganz optimal, aber für meine Hobby zwecke vollkommen ausreichend.
Es gibt auch sogenannte “Signal Generator” welche bei Aliexpress oder Amazon erworben werden können, diese liefern die erforderlichen 4-20mA zum kalibrieren.
Die Ausgangsspannung festlegen
Als allererstes stellt man die maximale Ausgangsspannugn ein. VOUT
. Die meisten Microcontroller mögen nicht
unbedingt eine Spannung größer als 5V. Man sollte also sicher gehen, dass VOUT
in dem erlaubten Bereich
des ADC liegt.
Voltage Range | Jumper Setting | Remarks |
---|---|---|
0 - 3.3V | [ _ | _ ] |
“1-2” empty, “3-4” empty. |
0 - 5V | [ X | _ ] |
“1-2” connected, “3-4” empty. |
0 - 10V | [ X | X ] |
“1-2” connected, “3-4” connected. |
Das Modul kalibrieren
-
Alle Potentiometer nach links drehen. Ist die Position ganz links erreicht, ist ein leises klicken zu hören. Dies einige Zeit dauern, also nicht wundern wenn man bisschen länger dreht.
-
Danach die Konstantspannungsquelle an
VCC
anschließen. Das Multimeter wird anVOUT
angeschlossen. -
Die Stromquelle muss nun Seriell mit
I+
undI-
angeschlossen werden/ -
Jetzt das Potentiometer
ZERO
solange nach rechts drehen bis die Spannung erreicht wird welche den 4mA Punkt definiert. -
Jetzt die Stromquelle auf 20mA stellen und das
SPAN
Potentiometer zu der Spannung drehen welche den 20mA Punkt definiert.
Zum Beispiel hat ein Arduino einen 10-Bit ADD. Dies bedeutet, dass die Spannung in verschiedenen Intervallen gelesen werden kann. Bei einem 10-Bit ADS sind das 2^10 Werte zwischen 0 und 1024, also 1023 Abschnitte.
Mit folgendem Beispiel Programmcode liest man bei einem Arduino den ADC:
int analogPin = A3;
float read_voltage = 0.0;
float ref_voltage = 3.3;
float adc_intervals = 1023.0;
void setup() {
Serial.begin(9600);
}
void loop() {
read_voltage = analogRead(analogPin) * (ref_voltage / adc_intervals);
Serial.println(read_voltage);
}
Code
Libraries
Es werden keine Libraries benötigt.
Beispiel
#include <Arduino.h>
int analogPin = A0;
float read_curr_ma = 0.0;
float max_curr_ma = 20.0;
float adc_intervals = 1023.0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
read_curr_ma = analogRead(analogPin) * (max_curr_ma / adc_intervals);
Serial.println(read_curr_ma);
}
Example on Github
Ein Beispiel auf GitHub gibt es hier.
Blynk Beispiel
#include <Arduino.h>
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "YourAuthToken";
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";
int analogPin = A0;
float read_curr_ma = 0.0;
float max_curr_ma = 20.0;
float adc_intervals = 1023.0;
BlynkTimer timer;
void timer_event() {
read_curr_ma = analogRead(analogPin) * (max_curr_ma / adc_intervals);
Serial.println(read_curr_ma);
Blynk.virtualWrite(V5, read_curr_ma);
}
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
timer.setInterval(1000L, timer_event);
}
void loop() {
Blynk.run();
timer.run();
}
Kaufen
Zu kaufen gibt es die Module oft bei Amazon oder auch Aliexpress.
Die folgenden Links sind sogenannte Affiliate-Links. Bei einem kauf bekomme ich eine kleine Provision. Es entstehen bei dem Kauf keinerlei Mehrkosten.
comments powered by Disqus