LELIO Code v3
/*############################################# LELIO v3 This sketch is used for LELIO Experiment V3. It reads Analog value every 5 sec. Also indicates LED as a reminder for taking fixed interval reading every 3min. And also receives user interrupt for taking on demand reading. Also it sends data to the PC using serial port. For keeping timing Timer.h library is used. https://pgdeshmukh.webnode.com/projects/lelio/ Created November 2012 By Prasanna Deshmukh, Mayuresh Sarpotdar, Joice Mathew Modified April 2013 By Prasanna Deshmukh This example code is in the public domain. /*############################################ */ const int buttonPin = 2; // the number of the pushbutton pin const int ledPin = 7; int buttonState = 0; // variable for reading the pushbutton status int ledFlag=0; int regFlag=0; long int count=1; #include "Timer.h" Timer t; void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); t.every(180000, user_led); t.every(5000, regular); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: t.update(); } void user_led() { ledFlag=1; digitalWrite(ledPin, HIGH); } void regular() { regFlag=1; buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == LOW && ledFlag == 0) { int sensorValue = analogRead(A0); Serial.print(count); Serial.print("\t"); Serial.print("\t"); Serial.print("\t"); Serial.print("\t"); Serial.print("\t"); Serial.print("{"); Serial.print("User_Intr"); Serial.print(",T,"); Serial.print(sensorValue); Serial.print("}"); Serial.print("\t"); Serial.println(sensorValue); regFlag=0; } if (buttonState == LOW && ledFlag==1) { // turn LED on: int sensorValue = analogRead(A0); Serial.print(count); Serial.print("\t"); Serial.print("\t"); Serial.print("\t"); Serial.print("{"); Serial.print("User_3Min"); Serial.print(",T,"); Serial.print(sensorValue); Serial.print("}"); Serial.print("\t"); Serial.println(sensorValue); digitalWrite(ledPin, LOW); ledFlag=0; regFlag=0; } if(regFlag==1) { int sensorValue = analogRead(A0); Serial.print(count); Serial.print("\t"); Serial.print("{"); Serial.print("Auto"); Serial.print(",T,"); Serial.print(sensorValue); Serial.print("}"); Serial.print("\t"); Serial.println(sensorValue); } count++; // print out the value you read: }