Hi,
I apologize for the late response. I would like to provide more details on the sensors and code that I'm using.
For the sensors, the static pressure transducer is the Paroscientific Series 6000-23A. The differential pressure transducer is a Honeywell Precision Pressure Transducer (PPT) from the year 2000. Both of these transducers use the RS232 protocol, so I can read their output values by using a RS232 to USB cable.
For the static pressure transducer, this is the exact output when I connect it to a USB port and open a serial emulator such as CoolTerm or the Arduino Serial Monitor:
*000114.6602
*000114.6603
*000114.6602
I believe the static pressure transducer outputs data values with '*' and ends with '\n', which are the start and end markers I am using in the readParo() method.
However, for the differential pressure transducer, things are different. This is the exact output when I connect it to a USB port:
?01CP=0.0000?01CP=0.0001?01CP=-0.0001?01CP=-0.0002
There are no '\n', so that is why I am using '?' as both the start and end markers in the readHoney() method. I am slightly suspicious about this output. I read through the user's manual and tried to program the Honeywell, but for some reason it does not respond to many of the commands that are listed. I have also tried to change its output frequency to 10Hz unsuccessfully.
In both cases of directly reading from the transducers, I keep the settings in CoolTerm and the Arduino Serial monitor the same.
Now, I have such a setup method in my program:
void setup(){
Serial.begin(9600); //with computer
Serial1.begin(9600); //with Paro on HardwareSerial
honeySerial.begin(9600); //with Honeywell on SoftwareSerial
honeySerial.print("*00P2"); honeySerial.print('\r'); //command for continuous data output
}
The command *00P2 makes the Honeywell transducer continuously output data. I have noticed that without first sending this command, no data appears. This is true also when I try to directly read data via the RS232 to USB cable. I've also noticed that this command appears to be the only command that the Honeywell responds to. At this point, I don't know if there is something wrong with the transducer itself. Sometimes when I to read values with the Arduino, the Honeywell disappears while the Paro is working, and no matter how many times I try to restart the Honeywell, it never wants to output any data. So that is why I have added the *00P2 command to jump start the Honeywell.
I'm considering putting this command in the readHoney() method, so that I can make sure it is sent numerous times, making sure the Honeywell will output data. If I put the command in setup(), it will run only once, whenever I switch on the Arduino.
Unfortunately, I won't have a chance to test this until tomorrow, which is in 8 hours. What problems can you guys see in my system? I'm really learning a lot from this experience. Thank you all again.