Skip to content

Instantly share code, notes, and snippets.

@tanpinsiang
Created February 22, 2013 13:00
Show Gist options
  • Save tanpinsiang/5013240 to your computer and use it in GitHub Desktop.
Save tanpinsiang/5013240 to your computer and use it in GitHub Desktop.
flow meter code
#include <SoftwareSerial.h>
#define rxpin 2
#define txpin 3
//add the soft serial library
//set the RX pin to pin 2
//set the TX pin to pin 3
SoftwareSerial myserial(rxpin, txpin);
//enable the soft serial port
String inputstring = "";
String sensorstring = "";
boolean input_stringcomplete = false;
boolean sensor_stringcomplete = false;
//a string to hold incoming data from the PC
//a string to hold the data from the Atlas Scientific product
//have we received all the data from the PC
//have we received all the data from the Atlas Scientific
//product
void setup(){
Serial.begin(38400);
myserial.begin(38400);
inputstring.reserve(5);
sensorstring.reserve(30);
myserial.print("X\r");
delay(10);
myserial.print("T1\r");
delay(10);
myserial.print("C\r");
}
//set up the hardware
//set baud rate for the hardware serial port to 38400
//set baud rate for software serial port to 38400
//set aside some bytes for receiving data from the PC
//set aside some bytes for receiving data from Atlas Scientific
//product
void serialEvent() {
char inchar = (char)Serial.read();
inputstring += inchar;
if(inchar == '\r') {input_stringcomplete = true;}
}
//if the hardware serial port receives a char
//get the char we just received
//add it to the inputString
//if the incoming character is a <CR>,
//set the flag
void loop(){
//if (input_stringcomplete){
//inputstring = "";
//input_stringcomplete = false;
//}
//here we go...
//if a string from the PC has been received in its entierty
//send that string to the Atlas Scientific product
//clear the string:
//reset the flag used to tell if we have received
//a completed string from the PC
while (myserial.available()) {
char inchar = (char)myserial.read();
sensorstring += inchar;
if (inchar == '\r') {sensor_stringcomplete = true;}
}
//while a char is holding in the serial buffer
//get the new char
//add it to the sensorString
//if the incoming character is a <CR>,
//set the flag
if (sensor_stringcomplete){
Serial.print(sensorstring);
sensorstring = "";
sensor_stringcomplete = false;
}
}
//if a string from the Atlas Scientific product has been
//received in its entirety
//use the hardware serial port to send that data to the PC
//clear the string:
//reset the flag used to tell if we have received a completed
//string from the Atlas Scientific product
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment