I have an Amprobe 38XR-A (sometimes seen as a meterman), these DMM's have a IR RS232 port on top and transmit a HEX code. Using the official cable I get a hex value of:
08000400500A0
I am attempting to read the IR RS232 via Serial1 of a pro-micro and display the output via Serial, but am getting an incorrect HEX code of:
6C666196665665F6793D
I have tried changing the resistor, in case it wasn't turning on/off fully with no change to the output (unless its a drastic change, then nothing is seen).
A buffer size of 15 appears to give repeatable results and is inline with the specification.
In an attempt for repeatability I have a test lead between the common and ohm port of the DMM.
Set-up:
Arduino Code:
const int BUFFER_SIZE = 15;
char buf[BUFFER_SIZE];
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
while(!Serial){ }
}
void loop() {
if(Serial1.available()){
// read the incoming bytes:
int rlen = Serial1.readBytesUntil("\r\n", buf, BUFFER_SIZE);
// prints the received data
Serial.print("HEX Data: ");
for(int i = 0; i < rlen; i++)
Serial.print(buf[i], HEX);
Serial.println("");
}
}
Additional links: Output Codes PDF DMM Manual IR photodiode
edit
Original IR receiver circuit. Original IR
6C666196665665F6793D
is binary0110 1100 0110 0110 0110 0001 1001 0110 0110 0110 0101 0110 0110 0101 1111 0110 0111 1001 0011 1101
... there are a lot of11
and00
... that may be an indication that the signal baud rate is lower than you think08000400500A0