Étape 2: Voici le sketch Arduino...
#include Wire.h
#include SoftwareSerial.h
mettre les crochets entourant les noms de bibliothèque
#include Suli.h
#include Four_Digit_Display_Arduino.h
#include Wire.h
#include « RTClib.h »
#include Servo.h
#include SoftwareSerial.h
Servo servo1, servo2, servo3 ;
const int buttonPin4 = 13, buttonPin3 = 11, buttonPin2 = 12 ; int val1, val2, val3, val4 ; int but1, but2, but3, but4, curMin, oldMin, keyPress ; Four_Digit_Display_Arduino disp ;
void myServo (int curAngle, int newAngle, int angleInc, int incDelay, int servoNum) {si (curAngle < newAngle) {pour (angle int = curAngle ; angle < newAngle ; angle += angleInc) {si (servoNum == 1) servo1.write(angle) ; if (servoNum == 2) servo2.write(angle) ; if (servoNum == 3) servo3.write(angle) ; delay(incDelay);}} ElseIf (curAngle > newAngle) {pour (angle int = curAngle ; angle > newAngle; = angleInc d’angle) {si (servoNum == 1) servo1.write(angle) ; if (servoNum == 2) servo2.write(angle) ; if (servoNum == 3) servo3.write(angle) ; delay(incDelay);}}} / *---(déclarer des objets)---* / RTC_DS1307 rtc ; Créer un RealTimeClock objet keyDown() Sub {servo1.write(43) ; delay(250);} void keyUp() {servo1.write(120) ; delay(100);} void slideFinger(int pos) {servo3.write(pos) ; delay(1000);} int getKeyPress (int switchNo) {while(1) {int = digitalRead(switchNo) ; delay(20) ; if (mais == faible) {Serial.print("but=low") ; Serial.println(but) ; mais = élevé ; Return 1 ; }}} void setup() {Serial.begin(9600); / / Set up pour Serial Monitor pouvoir voir cette servo1.attach(7) de travail; / / doigt servo delay(10);delay(1000) ; servo1.write(90) ; servo3.attach(9) ; //slider servo delay(10) ; servo3.write(90) ; delay(5000) ;
Wire.Begin() ; DISP.Begin(2,3) ; DISP.Clear() ; disp.pointOn() ; pinMode(buttonPin4,INPUT_PULLUP) ; pinMode(buttonPin3,INPUT_PULLUP) ; RTC.Begin() ; Démarre le code de bibliothèque du CCF
/ *---(Définir la date et l’heure. Commentez ces lignes après réglage)---* / / / mettre ces "/ /" devant la ligne que vous ne souhaitez pas utiliser / / suivant ligne affecte le CCF à la date et l’heure de cette esquisse a été compilé rtc.adjust(DateTime(F(__DATE__), F(__TIME__))) ; Cette ligne définit le CCF avec un explicite date et l’heure, par exemple pour définir / / 21 mai 2015 à 18:00 vous appelleriez: (utilisez les 24 heures) / / rtc.adjust (DateTime (2015, 5, 21, 18, 0, 0)) ;
} //--(end setup)---
void loop() {///String testString = « 4 »; //val4 = testString.toInt() ; //val4= testString.charAt(1) ; //val4=9; / / disp.pointOn(); / / disp.begin(2,3); / / disp.clear() ; DateTime maintenant = rtc.now() ; Lire les données de la puce RTC curMin = now.minute() % 10 ; keyPress = getKeyPress() ; Si (curMin! = oldMin) {disp.clear() ; val1 = now.hour() / 10 ; val2 = now.hour() % 10 ; val3 = now.minute() / 10 ; val4 = now.minute() % 10 ; slideFinger(36) ; //move slider (int j’ai = 0; j’ai < = val4; i ++) {keyDown(); / / doigt vers le bas de Serial.print("keypress=") ; Serial.println(i) ; Si (getKeyPress(13) == 1) {disp.display(3,i) ; delay(10) ; keyUp() ; //finger up delay(100);} / / disp mins} slideFinger(72) ; Déplacez le curseur pour (int i = 0; j’ai < = val3; i ++) {keyDown(); / / doigt vers le bas de Serial.print("keypress=3.") ; Serial.println(i) ; Si (getKeyPress(11) == 1) {disp.display(2,i) ; delay(10) ; keyUp() ; //finger up delay(100);} / / disp mins} slideFinger(101) ; Déplacez le curseur pour (int i = 0; j’ai < = val2; i ++) {keyDown(); / / doigt vers le bas de Serial.print("keypress=") ; Serial.println(i) ; Si (getKeyPress(12) == 1) {disp.display(1,i) ; delay(10) ; keyUp() ; //finger up delay(100);} / / disp mins} slideFinger(139) ; Déplacez le curseur pour (int i = 0; j’ai < = val1; i ++) {keyDown(); / / doigt vers le bas de Serial.print("keypress=") ; Serial.println(i) ; Si (getKeyPress(10) == 1) {disp.display(0,i) ; delay(10) ; keyUp() ; //finger up delay(100);} / / disp mins} //disp.display (0, now.hour()/10) ; DISP.Display (1, now.hour() % 10) ; DISP.Display (2, now.minute()/10) ; DISP.Display (3, now.minute() % 10) ; servo3.Write(90) ; Delay(3000) ; DISP.Clear() ; DISP.Display(0,1) ; Delay(3000) ; disp.pointOff() ; disp.pointOn() ;
Serial.Print(Now.Year(), DEC) ; Serial.Print('/') ; Serial.Print(Now.month(), DEC) ; Serial.Print('/') ; Serial.Print(Now.Day(), DEC) ; Serial.Print(' ') ; Serial.Print(Now.Hour() % 10, DEC) ; Serial.Print(':') ; Serial.Print(Now.minute(), DEC) ; Serial.Print(':') ; Serial.Print(Now.second(), DEC) ; Serial.println() ; oldMin = curMin ; } / / oldMin}