10-09-2015, 22:22
spróbuję i dam znać czy wyszło
Ocena wątku:
Stoper - Stopwatch i utrzymanie wyniku
|
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
long st,ms,sh,sm,ss,S1H,S1M,S1S,S1MS,S2H,S2M,S2S,S2MS;
char state = 1,pulse = 0;
void setup()
{
lcd.begin(16,2);
st = millis();
pinMode(4, INPUT_PULLUP);
}
void loop(){
if ( pulse > 0 and pulse < 4 ){
ms = millis() - st ;
if ( ms >= 1000 ){st = millis();ms= 0 ;ss++;}
if ( ss >= 60 ){sm++;ss = 0;}
if ( sm >= 60 ){sh++;sm = 0;}
}
if ( digitalRead(4) == LOW and state == 0 ){state = 1; pulse++; }
if ( digitalRead(4) == HIGH and state == 1 ){state = 0;}
switch (pulse){
case 2:
S1H = sh;S1M = sm;S1S = ss;S1MS = ms;pulse=3;
break;
case 4:
S2H = sh;S2M = sm;S2S = ss;S2MS = ms;
sh = S2H;sm = S2M;ss = S2S;ms = S2MS;
pulse = 5;
break;
case 6:
st = millis();ms = 0;ss = 0;sm = 0;sh = 0;ms = 0;
S1H = 0;S1M = 0;S1S = 0;S1MS = 0;
pulse=0;
break;
}
lcd.setCursor(2,0);
if ( sh < 10 )lcd.print("0");
lcd.print(sh);
lcd.print(":");
if ( sm < 10 )lcd.print("0");
lcd.print(sm);
lcd.print(":");
if ( ss < 10 )lcd.print("0");
lcd.print(ss);
lcd.print(":");
if ( ms < 100 )lcd.print("0");
if ( ms < 10 )lcd.print("0");
lcd.print(ms);lcd.print(" ");
lcd.setCursor(2,1);
if ( S1H < 10 )lcd.print("0");
lcd.print(S1H);
lcd.print(":");
if ( S1M < 10 )lcd.print("0");
lcd.print(S1M);
lcd.print(":");
if ( S1S < 10 )lcd.print("0");
lcd.print(S1S);
lcd.print(":");
if ( S1MS < 100 )lcd.print("0");
if ( S1MS < 10 )lcd.print("0");
lcd.print(S1MS);lcd.print(" ");
}
#include <LiquidCrystal.h>
const byte lightPin = 0;
int ledPin = 13;
int buttonPin = 8;
unsigned long lapMillis = 0;
unsigned long startMillis = millis();
float lapTime = 0.00;
boolean firstTrigger = true;
boolean newBest = false;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
lcd.begin(16, 2);
Serial.begin(9600);
}
void loop()
{
pinMode(8,INPUT);
pinMode(8,INPUT);
if(digitalRead(8)== LOW)
{
lapMillis = millis() - startMillis;
startMillis = millis();
lapTime = lapMillis / 1000.00;
Serial.print("lapTime: ");
Serial.println(lapTime);
Serial.print("lapMillis: ");
Serial.println(lapMillis);
//print stop time
lcd.setCursor(0, 1);
lcd.print("P: ");
lcd.print(lapTime);
lcd.print(" ");
}
lcd.setCursor(0,0);
lcd.print("T:");
lcd.setCursor(3,0);
lcd.print((millis() - startMillis)/1000.00);
delay(200);
}
//pozdr by Bon3r
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
long st,ms,sh,sm,ss,S1H,S1M,S1S,S1MS,S2H,S2M,S2S,S2MS;
char state = 1,pulse = 0;
void setup()
{
lcd.begin(16,2);
st = millis();
pinMode(4, INPUT_PULLUP);
}
void loop(){
if ( pulse > 0 and pulse < 4 ){
ms = millis() - st ;
if ( ms >= 1000 ){st = millis();ms= 0 ;ss++;}
if ( ss >= 60 ){sm++;ss = 0;}
if ( sm >= 60 ){sh++;sm = 0;}
}
if ( digitalRead(4) == LOW and state == 0 ){state = 1; pulse++; }
if ( digitalRead(4) == HIGH and state == 1 ){state = 0;}
switch (pulse){
case 2:
S1H = sh;S1M = sm;S1S = ss;S1MS = ms;
ms = 0;ss = 0;sm = 0;sh = 0;ms = 0;
pulse=3;
break;
case 4:
S2H = sh;S2M = sm;S2S = ss;S2MS = ms;
sh = S2H;sm = S2M;ss = S2S;ms = S2MS;
pulse = 5;
break;
case 6:
ms = 0;ss = 0;sm = 0;sh = 0;ms = 0;
S1H = 0;S1M = 0;S1S = 0;S1MS = 0;
st = millis();pulse=0;
break;
}
lcd.setCursor(2,0);
if ( sh < 10 )lcd.print("0");
lcd.print(sh);
lcd.print(":");
if ( sm < 10 )lcd.print("0");
lcd.print(sm);
lcd.print(":");
if ( ss < 10 )lcd.print("0");
lcd.print(ss);
lcd.print(":");
if ( ms < 100 )lcd.print("0");
if ( ms < 10 )lcd.print("0");
lcd.print(ms);lcd.print(" ");
lcd.setCursor(2,1);
if ( S1H < 10 )lcd.print("0");
lcd.print(S1H);
lcd.print(":");
if ( S1M < 10 )lcd.print("0");
lcd.print(S1M);
lcd.print(":");
if ( S1S < 10 )lcd.print("0");
lcd.print(S1S);
lcd.print(":");
if ( S1MS < 100 )lcd.print("0");
if ( S1MS < 10 )lcd.print("0");
lcd.print(S1MS);lcd.print(" ");
}