Paso 4: El reloj
El cableado
El cableado es añadiendo dos botones, de modo que es no tan duros.
Para obtener releiable de trabajo de botones en un Arduino, es necesario utilizar un pull-down resistor (conectado a la tierra) o un tirón para arriba del resistor (conectada a los + 5V).
Este resistor de 10 kOhm se encarga de que el botón es baja o alta, cuando no se pulsa. Usé un tirón para arriba del resistor, así que mis botones son altos cuando no se empujaron.
(todo lo que nunca quisiste saber sobre botones de Arduinos aquí aprender:)
- Conecte un cable desde el + de la tira de la placa a + 5V en el Arduino
- Conecte un cable de la - tira de la placa a GND de Arduino
- poner dos botones en el tablero
- conectar una resistencia de 10kOhm entre una pierna del botón y el + tira (2 x)
- Conecte un cable de la misma pierna del botón donde se conecta la resistencia, al pin 8 de Arduino (y al pin 9 del otro botón)
- Conecte un cable desde la otra pierna de los botones a de-tira (2 x)
El bosquejo
He intentado escribir mi propio sketch, usando la función [millis] Arduino, pero que no era tan fácil como pensé que sería, por lo que he buscado en www.arduino.cc y encontró algunas bibliotecas agradables y bocetos. Lo único era que los bocetos de todos algo externo utilizan para configurar el tiempo (internet, puerto serial o RTC). Quería utilizar los dos botones para ajustar la hora, así que había todavía algunos programando hacer para mí.
Todavía no tengo el LCD, por lo que la función de monitor de la serie del software de Arduino será mi pantalla por ahora.
Poder ejecutar el bosquejo, usted tendrá que descargar la librería desde aqui: http://www.arduino.cc/playground/Code/Time y ponerlo en la carpeta [arduino]. (y reiniciar el software de Arduino)
El código de
#include < Time.h > //adding la biblioteca de tiempo de
int knoptijd = 400; establecer todas las variables (lo siento por los nombres holandeses)
uur INT = 12;
minuut int = 15;
seconde int = 0;
int dag = 10;
maand int = 9;
jaar de int = 2011;
int knopset = 10;
int knopmode = 11;
int setwaarde = 0;
int modewaarde = 0;
void setup() {}
pinMode (knopset, entrada);
pinMode (knopmode, entrada);
Serial.Begin(9600);
setTime(uur,minuut,seconde,dag,maand,jaar); Ajuste el starttime para el reloj cuando se inicia
}
void loop() {}
setklok();
digitalClockDisplay();
Delay(1000);
}
void setklok() {//setting el reloj
modewaarde = digitalRead(knopmode);
Si (modewaarde == LOW) {//if el botón [mode] es està
Serial.println ("tijd instellen");
ajuste de las horas
Serial.println("UUR");
Serial.println(UUR);
Delay(knoptijd);
modewaarde = digitalRead(knopmode);
mientras que (modewaarde == HIGH) {}
Delay(knoptijd);
setwaarde = digitalRead(knopset);
Si (setwaarde == LOW) {}
UUR ++;
Si uur (uur > 24) = 1;
Serial.println(UUR);
}
modewaarde = digitalRead(knopmode);
}
Ajuste los minutos
Serial.println("minuut");
Serial.println(minuut);
Delay(knoptijd);
modewaarde = digitalRead(knopmode);
mientras que (modewaarde == HIGH) {}
Delay(knoptijd);
setwaarde = digitalRead(knopset);
Si (setwaarde == LOW) {}
minuut ++;
Si minuut (minuut > 59) = 0;
Serial.println(minuut);
}
modewaarde = digitalRead(knopmode);
}
Ajuste el mes
Serial.println("maand");
Serial.println(maand);
Delay(knoptijd);
modewaarde = digitalRead(knopmode);
mientras que (modewaarde == HIGH) {}
Delay(knoptijd);
setwaarde = digitalRead(knopset);
Si (setwaarde == LOW) {}
maand ++;
Si maand (maand > 12) = 1;
Serial.println(maand);
}
modewaarde = digitalRead(knopmode);
}
fijar el día
Serial.println("Dag");
Serial.println(Dag);
Delay(knoptijd);
modewaarde = digitalRead(knopmode);
mientras que (modewaarde == HIGH) {}
Delay(knoptijd);
setwaarde = digitalRead(knopset);
Si (setwaarde == LOW) {}
Dag ++;
Si (maand == 1 || maand == 3 || maand == 5 || maand == 7 || maand == 8 || maand == 10 || maand == 12) {}
Si dag (dag > 31) = 1;
}
Si (maand == 4 || maand == 6 || maand == 9 || maand == 11) {}
Si dag (dag > 30) = 1;
}
Si (maand == 2) {}
Si dag (dag > 28) = 1;
}
Serial.println(Dag);
}
modewaarde = digitalRead(knopmode);
}
setTime(uur,minuut,seconde,dag,maand,jaar);
}
}
void digitalClockDisplay() {//printing hora y fecha
Serial.Print(hour());
printDigits(minute());
Serial.Print("");
Serial.Print(Day());
Serial.Print("/");
Serial.Print(month());
Serial.println();
}
void printDigits (int dígitos) {}
función de utilidad para la visualización del reloj digital: impresiones anteriores a colon y lleva 0
Serial.Print(":");
if(digits < 10)
Serial.Print('0');
Serial.Print(digits);
}