/*V0.1 Only stop RF from running away. Still need to the monitor RFR, RFF, and stpt.
*
*/
#include <avr/sleep.h>
int interruptPin = 20;
int rfOnInPin = 22;
int timerPin = 13;
int rfOnOutPin = A9;
int rfForwardPin = A10;
int rfReflectPin = A11;
int rfStptPin = A12;
int tempMatchPin = A13;
int tempWaterInPin = A14;
int tempWaterOutPin = A15;
String dataLabel0 = "rfOnInput";
String dataLabel1 = "rfInterrupt";
String dataLabel2 = "rfForward";
String dataLabel3 = "rfReflect";
String dataLabel4 = "rfStpt";
String dataLabel5 = "tempMatch";
String dataLabel6 = "Pressure Switch";
bool label = true;
unsigned long firstTime, secondTime;
unsigned long startTime = 0;
unsigned long elapsedTime = 0;
unsigned long delay1 = 1000;
unsigned long delay2 = 1;
void setup() {
pinMode(interruptPin, INPUT);
pinMode(rfOnInPin, INPUT);
pinMode(timerPin, OUTPUT);
pinMode (rfOnOutPin, OUTPUT);
pinMode (rfForwardPin, INPUT);
pinMode (rfReflectPin, INPUT);
pinMode (rfStptPin, INPUT);
pinMode (tempMatchPin, INPUT);
pinMode (tempWaterInPin, INPUT);
pinMode (tempWaterOutPin, INPUT);
Serial.begin(9600);
firstTime = secondTime = millis();
while(label){ //runs once
Serial.print(dataLabel0);
Serial.print(",");
Serial.print(dataLabel1);
Serial.print(",");
Serial.print(dataLabel2);
Serial.print(",");
Serial.print(dataLabel3);
Serial.print(",");
Serial.print(dataLabel4);
Serial.print(",");
Serial.print(dataLabel5);
Serial.print(",");
Serial.println(dataLabel6);
label=false;
}
}
void loop() {
// put your main code here, to run repeatedly:
//print out column headers
int rfOnInputState = digitalRead(rfOnInPin);
int interruptState = digitalRead(interruptPin);
int rfForwardVal = analogRead(rfForwardPin);
int rfReflectVal = analogRead(rfReflectPin);
int rfStptVal = analogRead(rfStptPin);
int tempMatchVal = analogRead(tempMatchPin);
int tempWaterInVal = analogRead(tempWaterInPin);
int tempWaterOutVal = analogRead(tempWaterOutPin);
if(millis() - firstTime > delay1){
Serial.print(rfOnInputState);
Serial.print(",");
Serial.print(interruptState);
Serial.print(",");
Serial.print(rfForwardVal);
Serial.print(",");
Serial.print(rfReflectVal);
Serial.print(",");
Serial.print(rfStptVal);
Serial.print(",");
Serial.print(tempMatchVal);
Serial.print(",");
Serial.print(tempWaterInVal);
Serial.print(",");
Serial.println(tempWaterOutVal);
firstTime = millis();
}
if(millis() - secondTime > delay2){
if((rfOnInputState == HIGH) && (interruptState == LOW)){
startTime = millis(); // store start time
//Serial.println("Timer started!");
analogWrite(rfOnOutPin, 255);
while (rfOnInputState == HIGH) { // keep checking digital input state
rfOnInputState = digitalRead(rfOnInPin);
elapsedTime = millis() - startTime; // calculate elapsed time
if (elapsedTime >= 10000) { // if 1 second has passed
digitalWrite(timerPin, HIGH); // output timer signal
analogWrite(rfOnOutPin, 0);
}
}
secondTime = millis();
}
}
}
void rfStop (){
}