Étape 5: Arduino Sketch - programmation
Sketch\code final pour Arduino ci-dessous :/*
Croquis \ Code par Chuppandi aka Navalon
Chuppandi
www.chuppandee.blgospot.com
*/
#include < StopWatch.h >
#include < LiquidCrystal.h >
Innovente lcd (7, 8, 9, 10, 11, 12) ; Écran LCD épingles decleration
int switchPin1 = 3; / / switch1 est connecté à la broche 3
int switchPin2 = 2; / / switch2 est connecté à la broche 2
int ledPin = 13 ; LED est connecté à la broche 13 dans l’arduino
int val1 ;
val2 int ;
frameRate int = 500 ; la fréquence d’images (images par seconde) à laquelle le chronomètre tourne - changement en fonction de
intervalle long = (1000/frameRate) ; intervalle de Blink
char buf [15f00] ; mémoire tampon de chaîne pour fonction itoa
unsigned long starttime = 0 ;
unsigned long endtime = 0 ;
unsigned long lasttime = 0 ;
unsigned long currenttime = 0 ;
Chronomètre sw_millis ; MILLIS (par défaut)
Chronomètre sw_micros(StopWatch::MICROS) ;
Chronomètre sw_secs(StopWatch::SECONDS) ;
void setup() {}
LCD.Begin(16,2) ;
pinMode (switchPin1, entrée) ;
pinMode (switchPin2, entrée) ;
pinMode (ledPin, sortie) ;
Serial.Begin(9600) ;
sw_millis.Start() ;
sw_micros.Start() ;
sw_secs.Start() ;
}
void loop() {}
val1 = digitalRead(switchPin1) ; lire la valeur d’entrée et stockez-la dans le val
val2 = digitalRead(switchPin2) ; lire la valeur d’entrée et stockez-la dans le val
Si (val1 == LOW & & val2 == faible)
{
digitalWrite (ledPin, HIGH) ; allumer la LED
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:") ;
flotteur sec = sw_millis.elapsed () / 10 ;
LCD.Print(sec) ;
int elapsedMinutes = (currenttime / 60000L) ;
elapsedSeconds int = (currenttime / 1000 L) ;
int elapsedFrames = (currenttime / intervalle) ;
int fractionalSecs = (int) (elapsedSeconds % 60L) ;
fractionnaire int = (int) (elapsedFrames % frameRate) ; Utilisez opérateur modulo pour obtenir la partie fractionnaire de 100 secondes
fractionalSecs = (int) (elapsedSeconds % 60L) ; Utilisez opérateur modulo pour obtenir la partie fractionnaire de 60 secondes
int fractionalMins = (int) (elapsedMinutes % 60L) ; Utilisez opérateur modulo pour obtenir la partie fractionnaire de 60 Minutes
LCD.Clear() ; effacer l’écran LCD
LCD.Print("Time:") ;
Si (fractionalMins < 10) {/ / pad dans des zéros non significatifs
LCD.Print("0") ; Ajouter un zéro
}
LCD.Print (itoa (fractionalMins, buf, 10)) ; convertir int en une chaîne et d’imprimer une partie fractionnaire de 60 Minutes à l’écran LCD
LCD.Print(":") ; imprimer un colan.
Si (fractionalSecs < 10) {/ / pad dans des zéros non significatifs
LCD.Print("0") ; Ajouter un zéro
}
LCD.Print (itoa (fractionalSecs, buf, 10)) ; convertir int en une chaîne et d’imprimer une partie fractionnaire de 60 secondes à l’écran LCD
LCD.Print(":") ; imprimer un colan.
Si (fractional < 10) {/ / pad dans des zéros non significatifs
LCD.Print("0") ; Ajouter un zéro
}
LCD.Print (itoa (fractionnaire, buf, 10)) ; convertir int en une chaîne et d’imprimer une partie fractionnaire de 25 images à l’écran LCD
lcd.setCursor (0, 1) ;
LCD.Print ("actionneur 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) ;
}
Si (val1 == faible) {}
digitalWrite (ledPin, LOW);}
else {}
LastTime = sw_millis.elapsed() ;
EndTime = (sw_millis.elapsed() - starttime) ;
EndTime = (currenttime - starttime) ;
digitalWrite (ledPin, basse) ;
int elapsedMinutes = (endtime / 60000L) ;
elapsedSeconds int = (endtime / 1000 L) ;
int elapsedFrames = (endtime / intervalle) ;
int fractionalSecs = (int) (elapsedSeconds % 60L) ;
fractionnaire int = (int) (elapsedFrames % frameRate) ; Utilisez opérateur modulo pour obtenir la partie fractionnaire de 100 secondes
fractionalSecs = (int) (elapsedSeconds % 60L) ; Utilisez opérateur modulo pour obtenir la partie fractionnaire de 60 secondes
int fractionalMins = (int) (elapsedMinutes % 60L) ; Utilisez opérateur modulo pour obtenir la partie fractionnaire de 60 Minutes
LCD.Clear() ; effacer l’écran LCD
LCD.Print("Time:") ;
Si (fractionalMins < 10) {/ / pad dans des zéros non significatifs
LCD.Print("0") ; Ajouter un zéro
}
LCD.Print (itoa (fractionalMins, buf, 10)) ; convertir int en une chaîne et d’imprimer une partie fractionnaire de 60 Minutes à l’écran LCD
LCD.Print(":") ; imprimer un colan.
Si (fractionalSecs < 10) {/ / pad dans des zéros non significatifs
LCD.Print("0") ; Ajouter un zéro
}
LCD.Print (itoa (fractionalSecs, buf, 10)) ; convertir int en une chaîne et d’imprimer une partie fractionnaire de 60 secondes à l’écran LCD
LCD.Print(":") ; imprimer un colan.
Si (fractional < 10) {/ / pad dans des zéros non significatifs
LCD.Print("0") ; Ajouter un zéro
}
LCD.Print (itoa (fractionnaire, buf, 10)) ; convertir int en une chaîne et d’imprimer une partie fractionnaire de 25 images à l’écran LCD
lcd.setCursor (0, 1) ;
LCD.Print ("actionneur TIMER") ;
}
}
Fin du programme