Final sketch\code for Arduino below:
/*
Sketch \ Code by Chuppandi aka Subu
Chuppandi@gmail.com
www.chuppandee.blgospot.com
*/
#include
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // LCD pins decleration
int switchPin1 = 3;// switch1 is connected to pin 3
int switchPin2 = 2;// switch2 is connected to pin 2
int ledPin = 13; // LED is connected to pin 13 in arduino
int val1;
int val2;
int frameRate = 500; // the frame rate (frames per second) at which the stopwatch runs - Change to suit
long interval = (1000/frameRate); // blink interval
char buf[15f00]; // string buffer for itoa function
unsigned long starttime = 0;
unsigned long endtime = 0;
unsigned long lasttime = 0;
unsigned long currenttime = 0;
StopWatch sw_millis; // MILLIS (default)
StopWatch sw_micros(StopWatch::MICROS);
StopWatch sw_secs(StopWatch::SECONDS);
void setup() {
lcd.begin(16,2);
pinMode(switchPin1, INPUT);
pinMode(switchPin2, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
sw_millis.start();
sw_micros.start();
sw_secs.start();
}
void loop() {
val1 = digitalRead(switchPin1); // read input value and store it in val
val2 = digitalRead(switchPin2); // read input value and store it in val
if (val1 == LOW && val2 == LOW)
{
digitalWrite(ledPin, HIGH); // turn LED on
currenttime = (sw_millis.elapsed() - lasttime) ;
Serial.print("sw_millis=");
Serial.println(sw_millis.elapsed());
Serial.print("sw_micros=");
Serial.println(sw_micros.elapsed());
Serial.print("sw_secs=");
Serial.println(sw_secs.elapsed());
lcd.clear();
lcd.print("SECS:");
float sec = sw_millis.elapsed()/10;
lcd.print(sec);
int elapsedMinutes = (currenttime / 60000L);
int elapsedSeconds = (currenttime / 1000L);
int elapsedFrames = (currenttime / interval);
int fractionalSecs = (int)(elapsedSeconds % 60L);
int fractional = (int)(elapsedFrames % frameRate); // use modulo operator to get fractional part of 100 Seconds
fractionalSecs = (int)(elapsedSeconds % 60L); // use modulo operator to get fractional part of 60 Seconds
int fractionalMins = (int)(elapsedMinutes % 60L); // use modulo operator to get fractional part of 60 Minutes
lcd.clear(); // clear the LCD
lcd.print("TIME:");
if (fractionalMins < 10){ // pad in leading zeros
}
lcd.print(itoa(fractionalMins, buf, 10)); // convert the int to a string and print a fractional part of 60 Minutes to the LCD
lcd.print(":"); //print a colan.
if (fractionalSecs < 10){ // pad in leading zeros
lcd.print("0"); // add a zero
}
lcd.print(itoa(fractionalSecs, buf, 10)); // convert the int to a string and print a fractional part of 60 Seconds to the LCD
lcd.print(":"); //print a colan.
if (fractional < 10){ // pad in leading zeros
lcd.print("0"); // add a zero
}
lcd.print(itoa(fractional, buf, 10)); // convert the int to a string and print a fractional part of 25 Frames to the LCD
lcd.setCursor(0, 1);
endtime = currenttime;
lcd.print(sw_millis.elapsed());
lcd.setCursor(0, 1);
lcd.print("us=");
*/
delay(10);
}
// if (val1 == LOW){
// digitalWrite(ledPin, LOW);}
else{
lasttime = sw_millis.elapsed();
// endtime = (sw_millis.elapsed() - starttime);
// endtime = (currenttime - starttime);
digitalWrite(ledPin, LOW);
int elapsedMinutes = (endtime / 60000L);
int elapsedSeconds = (endtime / 1000L);
int elapsedFrames = (endtime / interval);
int fractionalSecs = (int)(elapsedSeconds % 60L);
int fractional = (int)(elapsedFrames % frameRate); // use modulo operator to get fractional part of 100 Seconds
int fractionalMins = (int)(elapsedMinutes % 60L); // use modulo operator to get fractional part of 60 Minutes
lcd.clear(); // clear the LCD
lcd.print("TIME:");
if (fractionalMins < 10){ // pad in leading zeros
}
lcd.print(itoa(fractionalMins, buf, 10)); // convert the int to a string and print a fractional part of 60 Minutes to the LCD
lcd.print(":"); //print a colan.
if (fractionalSecs < 10){ // pad in leading zeros
lcd.print("0"); // add a zero
}
lcd.print(itoa(fractionalSecs, buf, 10)); // convert the int to a string and print a fractional part of 60 Seconds to the LCD
lcd.print(":"); //print a colan.
if (fractional < 10){ // pad in leading zeros
lcd.print("0"); // add a zero
}
lcd.print(itoa(fractional, buf, 10)); // convert the int to a string and print a fractional part of 25 Frames to the LCD
lcd.setCursor(0, 1);
lcd.print("ACTUATOR TIMER");
}
}
// End of the program
lcd.print("0"); // add a zero
fractionalSecs = (int)(elapsedSeconds % 60L); // use modulo operator to get fractional part of 60 Seconds
lcd.print(sw_micros.elapsed());
/* lcd.print(" ms=");
lcd.print("ACTUATOR TIMER");
lcd.print("0"); // add a zero
#include