Paso 3: Código y explicación
Aquí está el código, comentado para su conveniencia:/*
Reloj métrico
Por Alec Robinson, también conocido como alecnotalex.
Licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License.
*/
#include < LiquidCrystal.h > //Used para escribir para la pantalla LCD
deci de int = 0, centi = 0, milli = 0, micro = 0; Seguimiento de cada una de las unidades
int setmode = 0; 0 si el usuario no está poniendo nada, 1 si el usuario es la creación de decidays, 2 para centidays y así sucesivamente.
botón SET int = 3, addone = 2; Pines para los botones; botón SET cambia setmode, addone cambia las unidades que es la creación de usuario
LiquidCrystal lcd (7, 8, 9, 10, 11, 12); Crea nuevo lcd en pins 7-12
void setup)
{
LCD.Begin (16, 2); Comienza la 16 x 2 LCD
}
void loop)
{
lcd.setCursor (0, 0);
LCD.Print(deci); Impresiones decidays
LCD.Print(":");
LCD.Print(centi); Impresiones centidays
LCD.Print(":");
LCD.Print(Milli); Impresiones millidays
LCD.Print(":");
LCD.Print(micro); Microdays impresiones
lcd.setCursor (0, 1);
Si (digitalRead(setbutton) == HIGH) Pulse setbutton //If
{
setMode ++; Cambia el modo de
Si (setmode == 4) //Resets si el usuario se desplaza a través de todos los ajustes
{
setMode = 0;
LCD.Print(""); Fila inferior de la pantalla se borra
}
}
Si //If (setmode > 0) el usuario es la creación de algo
{
LCD.Print ("valor:");
Delay(100); Para asegurarse de que el usuario no pulse accidentalmente un botón más de una vez cuando no quieren
}
otra cosa
{
Delay(86.4); Una microday
micro ++;
Si (micro == 1000) //One milliday
{
Milli ++;
micro = 0;
lcd.setCursor (7, 0);
LCD.Print("");
lcd.setCursor (0, 1);
}
Si (milli == 10) //One centiday
{
centi ++;
Mili = 0;
}
Si (centi == 10) //One deciday
{
Deci ++;
centi = 0;
}
Si (deci == 10) //One día
{
Deci = 0;
}
}
Si (setmode == 1) //When el usuario es la creación de la decidays
{
LCD.Print("deci");
Si (digitalRead(addone) == HIGH)
{
Deci ++;
Si (deci == 10) deci = 0;
}
}
Si (setmode == 2) usuario //The es la creación de centidays
{
LCD.Print("centi");
Si (digitalRead(addone) == HIGH)
{
centi ++;
Si (centi == 10) centi = 0;
}
}
Si (setmode == 3) usuario //The es la creación de millidays
{
LCD.Print("Milli");
Si (digitalRead(addone) == HIGH)
{
Milli ++;
Si (milli == 10) milli = 0;
}
}
}