HW-685 4-20mA Strom Sensor Modul

Das HW-685 4-20mA Strom Sensor Modul findet seinen Platz in einer Situation welcher man kleine Ströme in dem Bereich von 4-20mA messen will. Das Modul ist relativ günstig zu haben und kostet ungefähr 1-2EUR.

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”

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

  1. 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.

  2. Danach die Konstantspannungsquelle an VCC anschließen. Das Multimeter wird an VOUT angeschlossen.

  3. Die Stromquelle muss nun Seriell mit I+ und I- angeschlossen werden/

  4. Jetzt das Potentiometer ZERO solange nach rechts drehen bis die Spannung erreicht wird welche den 4mA Punkt definiert.

  5. 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
Zuletzt geändert 01.01.0001