Created
February 22, 2013 13:00
-
-
Save tanpinsiang/5013240 to your computer and use it in GitHub Desktop.
flow meter code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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