- Deutsch (de)
- English (en)
Dies ist eine alte Version des Dokuments!
Die Digitalmultimeter-Serie UT71 von Uni-Trend
bietet eine billige Messlösung mit angemessener Genauigkeit. Das Set enthält ein USB-Schnittstellenkabel und eine Windows-basierte Software. Leider funktioniert die USB-Schnittstelle nicht mit Mac OS X. Die optische Schnittstelle kann jedoch problemlos für weniger als 5,00 € gebaut werden.
Menge | Teile | Kosten |
---|---|---|
1 | PL2303HX oder ähnliches | 3,00 € |
1 | IR-Fototransistor | 0,10 € |
1 | IR-LED | 0,10 € |
1 | 4k7 | 0,10 € |
1 | 1K0 | 0,10 € |
1 | PCB (sehr kleines Stück) | 0,50 € |
1 | Gehäuse (3D-Druck oder Laserschnitt) | 0,50 € |
Der USB-Seriell-Wandler PL2303HX bietet 4 Drähte für die Signale GND, + 5V, RxD und TxD, wie im Schaltplan gezeigt. Die TxD-Diode ist optional und wird (noch) nicht von der Software unterstützt.
Ich habe ein lasergeschnittenes Gehäuse aus 2 mm weißem Acryl verwendet. Das Design wurde mit Inkscape erstellt. Abhängig von der Dicke Ihrer Verkabelung benötigen Sie möglicherweise nicht alle Schichten. In meinem Beispiel habe ich nur 4 Stück verwendet. SVG-Datei
Schneiden und gravieren Sie mit dem Laserschneider Ihrer Wahl. Bereiten Sie das kleine Stück PCB (Lochrasterplatine) vor. Kleben Sie den IR-Transistor (dunkelblau) und die IR-LED fest. Der flache Teil sollte sich jeweils links befinden. Löten Sie die Teile und die SMD-Widerstände wie in der Abbildung gezeigt. Zu guter Letzt verbinden Sie die vier Drähte des PL2303HX.
Am Logikanalyser sieht der Signalverlauf wie folgt aus:
Wie zu erkennen ist, sendet das Messgerät 11 Bytes mit 2400 Baud, 7 Bit und ODD Parity im ASCII Format alle ca. 650ms. Mit der gebauten Hardware können wir jetzt das Protokoll mit einen UART-Programm empfangen und weiter analysieren. Nach vielem Ausprobieren ergibt sich diese Bedeutung der Bytes:
# Decode 11 bytes from UT71A/B/C # ============================== # Byte / Bit 6 5 4 3 2 1 0 # [0] Digit 1 0 1 1 =====Digit====== # [1] Digit 2 0 1 1 =====Digit====== # [2] Digit 3 0 1 1 =====Digit====== # [3] Digit 4 0 1 1 =====Digit====== # [4] Digit 5 0 1 1 =====Digit====== # [5] Range 0 1 1 0 =see below= # [6] Unit 0 1 1 ====see below=== # [7] Coupling 0 1 1 0 0 DC AC (also DC and AC possible) # [8] Info 0 1 1 0 NEG MAN AUTO (MAN or AUTO only) # [9] '\r' 0 0 0 1 1 0 1 # [10] '\n' 0 0 0 1 0 1 0 # # Digit: 0x30..0x39 = '0..9', 0x3A = ' ', 0x3B = '-', 0x3C = 'L', 0x3F = 'H' # REL not sent # No tansmission in HOLD state # If NEG set at Range 15 sent value is duty cycle # No LowBat info sent # Storaged data not accessable
Abhängig von gewählten Messbereich ergibt sich mit dem Range
und der Unit
ein Multiplikationsfaktor für den empfangenen Wert:
Unit: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Range: mV V V mV Ω F °C µA mA A Pieps Diode Hz °F W % '0' .01 - - .01 - - .1 .01 .001 - .01 .0001 .001 .1 - .01 '1' - .0001 .0001 - .01 .001 - .1 .01 .001 - - .01 - - - '2' - .001 .001 - .0001 .01 - - - - - - .0001 - - - '3' - .01 .01 - .001 .0001 - - - - - - .001 - - - '4' - .1 .1 - .01 .001 - - - - - - .01 - - - '5' - - - - .0001 .01 - - - - - - .0001 - - - '6' - - - - .001 .0001 - - - - - - .001 - - - '7' - - - - .01 .001 - - - - - - .01 - - -
Mit der Protokollinformation kann man jetzt ein kleines Python Programm aufsetzen was die Werte empfängt, als Diagramm anzeigen kann auch speichert und als CSV exportiert. Damit erlauben sich Langzeitmessungen beliebiger Messgrößen. Die Messdaten werden in einer SQLite Datenbank gespeichert und lassen sich so auch mit einfachen Tools wie DB Browser for SQLite betrachten.
Wenn ihr meine Arbeit unterstützen wollt, so könnt ihr mir gerne einen Cappuccino oder so spenden: .