Stap 5: Arduino Sketch - programmering
Definitieve sketch\code voor Arduino hieronder:/*
Schets \ Code door Chuppandi aka Subu
Chuppandi
www.chuppandee.blgospot.com
*/
#include < StopWatch.h >
#include < LiquidCrystal.h >
LiquidCrystal lcd (7, 8, 9, 10, 11, 12); LCD pinnen decleration
int switchPin1 = 3; / / switch1 is verbonden met pin 3
int switchPin2 = 2; / / switch2 is verbonden met pin 2
int ledPin = 13; LED is aangesloten op pin 13 in arduino
int val1;
int val2;
int frameRate = 500; de beeldsnelheid (frames per seconde) waarmee de stopwatch wordt uitgevoerd - verandering aan
lange interval = (1000/frameRate); knipperen interval
char buf [15f00]; tekenreeksbuffer voor itoa functie
niet-ondertekende lange starttime = 0;
niet-ondertekende lange endtime = 0;
unsigned long lasttime = 0;
unsigned long currenttime = 0;
StopWatch sw_millis; MILLIS (standaard)
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); Lees input waarde en sla het in de val
val2 = digitalRead(switchPin2); Lees input waarde en sla het in de val
Als (val1 == LOW & & val2 == laag)
{
digitalWrite (ledPin, hoge); LED inschakelen
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 / 1000 L);
int. elapsedFrames = (currenttime / interval);
int. fractionalSecs = (int) (elapsedSeconds % 60L);
int fractionele = (int) (elapsedFrames % frameRate); modulo operator gebruiken om de fractionele deel van 100 seconden
fractionalSecs = (int) (elapsedSeconds % 60L); modulo operator gebruiken om de fractionele deel van 60 seconden
int. fractionalMins = (int) (elapsedMinutes % 60L); modulo operator gebruiken om de fractionele deel van 60 minuten
LCD.Clear(); schakelt het LCD-scherm
LCD.Print("time:");
Als (fractionalMins < 10) {/ / pad in voorloopnullen
LCD.Print("0"); toevoegen van een nul
}
LCD.Print (itoa (fractionalMins, buf, 10)); int. converteren naar een tekenreeks en een breukdeel van 60 minuten naar het LCD-scherm af te drukken
LCD.Print(":"); een Fouled afdrukken.
Als (fractionalSecs < 10) {/ / pad in voorloopnullen
LCD.Print("0"); toevoegen van een nul
}
LCD.Print (itoa (fractionalSecs, buf, 10)); int. converteren naar een tekenreeks en een breukdeel van 60 seconden om het LCD-scherm af te drukken
LCD.Print(":"); een Fouled afdrukken.
Als (fractionele < 10) {/ / pad in voorloopnullen
LCD.Print("0"); toevoegen van een nul
}
LCD.Print (itoa (fractionele, buf, 10)); int. converteren naar een tekenreeks en afdrukken van een breukdeel van 25 beelden op het LCD-
lcd.setCursor (0, 1);
LCD.Print ("ACTUATOR TIMER");
EndTime = currenttime;
/ * lcd.print ("ms =");
LCD.Print(sw_millis.Elapsed());
lcd.setCursor (0, 1);
LCD.Print("US=");
LCD.Print(sw_micros.Elapsed());
*/
delay(10);
}
Als (val1 == LOW) {}
digitalWrite (ledPin, laag);}
else {}
lastTime = sw_millis.elapsed();
EndTime = (sw_millis.elapsed() - starttime);
EndTime = (currenttime - starttime);
digitalWrite (ledPin, laag);
int. elapsedMinutes = (eindtijd / 60000L);
int. elapsedSeconds = (eindtijd / 1000 L);
int. elapsedFrames = (eindtijd / interval);
int. fractionalSecs = (int) (elapsedSeconds % 60L);
int fractionele = (int) (elapsedFrames % frameRate); modulo operator gebruiken om de fractionele deel van 100 seconden
fractionalSecs = (int) (elapsedSeconds % 60L); modulo operator gebruiken om de fractionele deel van 60 seconden
int. fractionalMins = (int) (elapsedMinutes % 60L); modulo operator gebruiken om de fractionele deel van 60 minuten
LCD.Clear(); schakelt het LCD-scherm
LCD.Print("time:");
Als (fractionalMins < 10) {/ / pad in voorloopnullen
LCD.Print("0"); toevoegen van een nul
}
LCD.Print (itoa (fractionalMins, buf, 10)); int. converteren naar een tekenreeks en een breukdeel van 60 minuten naar het LCD-scherm af te drukken
LCD.Print(":"); een Fouled afdrukken.
Als (fractionalSecs < 10) {/ / pad in voorloopnullen
LCD.Print("0"); toevoegen van een nul
}
LCD.Print (itoa (fractionalSecs, buf, 10)); int. converteren naar een tekenreeks en een breukdeel van 60 seconden om het LCD-scherm af te drukken
LCD.Print(":"); een Fouled afdrukken.
Als (fractionele < 10) {/ / pad in voorloopnullen
LCD.Print("0"); toevoegen van een nul
}
LCD.Print (itoa (fractionele, buf, 10)); int. converteren naar een tekenreeks en afdrukken van een breukdeel van 25 beelden op het LCD-
lcd.setCursor (0, 1);
LCD.Print ("ACTUATOR TIMER");
}
}
Einde van het programma