Paso 2: Aquí es el sketch de Arduino...
#include Wire.h
#include SoftwareSerial.h
poner entre corchetes nombres de biblioteca
#include Suli.h
#include Four_Digit_Display_Arduino.h
#include Wire.h
#include "RTClib.h"
Servo.h #include
#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; Disp de Four_Digit_Display_Arduino;
void myServo (int curAngle, int newAngle, int angleInc, int incDelay, int servoNum) {si (curAngle < newAngle) {para (ángulo int = curAngle; ángulo < newAngle; ángulo += angleInc) {si (servoNum == 1) servo1.write(angle); si (servoNum == 2) servo2.write(angle); si (servoNum == 3) servo3.write(angle); delay(incDelay);}} else if (curAngle > newAngle) {para (ángulo int = curAngle; ángulo > newAngle; ángulo = angleInc) {si (servoNum == 1) servo1.write(angle); si (servoNum == 2) servo2.write(angle); si (servoNum == 3) servo3.write(angle); delay(incDelay);}}} / *---(declarar objetos)---* / rtc RTC_DS1307; Crear un RealTimeClock objeto vacío keyDown() {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); si (pero == LOW) {Serial.print("but=low"); Serial.println(but); pero = alta; retorno 1; }}} void setup() {Serial.begin(9600); / / configurar para que Serial Monitor poder ver este servo1.attach(7) trabajo; / / dedo 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(); Iniciar el código de biblioteca RTC
/ *---(Establecer la fecha y hora. Comente estas líneas después de fijar)---* / / / poner estos "/ /" delante de la línea que no desea utilizar / / línea establece el RTC en la fecha y la hora este bosquejo fue compilado rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); Esta línea establece el RTC con un explícito fecha y hora, por ejemplo configurar / / 21 de mayo de 2015 a 18:00 se llama: (uso horario de 24 horas) / / rtc.adjust (DateTime (2015, 5, 21, 18, 0, 0));
} //--(end configuración)---
void loop() {///String testString = "4"; //val4 = testString.toInt(); //val4= testString.charAt(1); //val4=9; / / disp.pointOn(); / / disp.begin(2,3); / / disp.clear(); Fecha y hora = ahora rtc.now(); Leer datos en el Chip RTC curMin = now.minute() % 10; Tecla = 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 para (int i = 0; i < = val4; i ++) {keyDown(); / / dedo abajo Serial.print("keypress="); Serial.println(i); Si (getKeyPress(13) == 1) {disp.display(3,i); delay(10); keyUp() //finger hasta delay(100);} / / disp minutos} slideFinger(72); Mueva el deslizador para (int i = 0; i < = val3; i ++) {keyDown(); / / dedo abajo Serial.print("keypress=3."); Serial.println(i); Si (getKeyPress(11) == 1) {disp.display(2,i); delay(10); keyUp() //finger hasta delay(100);} / / disp minutos} slideFinger(101); Mueva el deslizador para (int i = 0; i < = val2; i ++) {keyDown(); / / dedo abajo Serial.print("keypress="); Serial.println(i); Si (getKeyPress(12) == 1) {disp.display(1,i); delay(10); keyUp() //finger hasta delay(100);} / / disp minutos} slideFinger(139); Mueva el deslizador para (int i = 0; i < = val1; i ++) {keyDown(); / / dedo abajo Serial.print("keypress="); Serial.println(i); Si (getKeyPress(10) == 1) {disp.display(0,i); delay(10); keyUp() //finger hasta delay(100);} / / disp minutos} //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}