| Products > Test Equipment |
| External Display for Agilent 34401A (or any DMM with RS232 Output Stream) |
| << < (4/8) > >> |
| SArepairman:
can you post the code etc so I can build one? i don't care if its a rough prototype |
| quantumvolt:
Absolutely barebone - tested. The trigger is optional - unless you choose Single Trig the DMM will just stream data (so throw out the trig code). Set DB9 pin 6 DSR high 5V. Two wires needed for read only - DMM Tx to Arduino and ground. Level shift and inversion/polarity of high low is all over internet (and flebay RS232-TTL converter USD 2-5). Guess you know (I didn't). For more - search 'Arduino serial DB9', 'Arduino software serial' and ' Arduino 1602 I2C' and you can read until you puke :o. As it is supposed to be a dialect of C++ code, you can tweak it into any uC with the needed similar libraries. Of course there is more to it than just reading the string from the DMM and echo it to the PC. That's the DIY part ... --- Code: ---#include <SoftwareSerial.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> SoftwareSerial mySerial(10, 11); // RX, TX RS232 - DMM TX to Arduino Digital Pin 10 LiquidCrystal_I2C lcd(0x27,16,2); // I2C 16 chars 2 lines I2C display addr. 20 or 27, fleabay USD 5-6 String inData; int trigpin = 13; // your choice void setup() { pinMode(trigpin, OUTPUT); Serial.begin(9600); // Serial hardware to PC // Serial.println("Setup"); mySerial.begin(9600); // SoftwareSerial port to DMM lcd.init(); // I2C to 1602 Display lcd.backlight(); lcd.print("Init LCD"); delay(1000); // Trigger digitalWrite(trigpin, HIGH); inData = ""; // Clear read buffer lcd.clear(); } void loop() { digitalWrite(trigpin, LOW); // delay(10); // adjust digitalWrite(trigpin, HIGH); //delay(5); // Serial.println("trig"); delay(1000); // or whatever while (mySerial.available() > 0) { char recieved = mySerial.read(); inData += recieved; // Process message when new line character is recieved if (recieved == '\n') { Serial.print("Arduino Received: "); Serial.println(inData); inData = inData.substring(0, inData.length()-7); // cut exponent for test, see DMM manual for string format lcd.clear(); lcd.print(inData); lcd.print(" Str"); // a string - not a number - unparsed for exponent // delay(1000); inData = ""; } } } --- End code --- |
| george graves:
subscribe! |
| bingo600:
I'd suggest a RasPI as the "logic" .... HDMI out and also a serial in. Get a cheap PC-Screen with HDMI/DVI & off you go. You could use mathplotlib or whatever for statistics. /Bingo |
| timb:
--- Quote from: bingo600 on November 09, 2013, 04:40:20 pm ---I'd suggest a RasPI as the "logic" .... HDMI out and also a serial in. Get a cheap PC-Screen with HDMI/DVI & off you go. You could use mathplotlib or whatever for statistics. /Bingo --- End quote --- That's what I was thinking as well. Even if you don't want to go the HBMI route you could still get a cheap 5"+ touchscreen (SPI or 16-bit parallel interface) off eBay to use with the fbtft driver so it shows up as any other frame buffer device (letting you use it for console and Xorg access). Then just get a USB bluetooth dongle plus bluetooth transceiver and you'll be in business! (I own one of those transceivers and can vouch for the functionality.) You could even throw on a USB GPIB adapter (plus linux-gpib drivers) and you'd have easy access to a whole range of scopes and other devices. That FBTFT project really is pretty awesome. I've used it for some $15 Chinese screens with great success! Here's a couple of pictures where I'm driving a 2.8" touchscreen over SPI: |
| Navigation |
| Message Index |
| Next page |
| Previous page |