Tabla de contenido:

Un cronómetro Arduino simple y práctico: 4 pasos
Un cronómetro Arduino simple y práctico: 4 pasos

Video: Un cronómetro Arduino simple y práctico: 4 pasos

Video: Un cronómetro Arduino simple y práctico: 4 pasos
Video: Cronómetro con Arduino y Proteus visualizado en 4 displays 7 segmentos. 2024, Junio
Anonim
Un cronómetro Arduino simple y práctico
Un cronómetro Arduino simple y práctico

Busque en la web el cronómetro Arduino. Probablemente lo acaba de hacer, si está aquí. Por experiencia personal, puedo decirles que cualquier cronómetro en Internet es demasiado complejo (en código, para principiantes), o demasiado simplificado y poco práctico, como los que siguen contando segundos sin reiniciarse.

Tú también lo crees, ¿eh? Bien adivina que. Lo hice, y lo que es más, tomo directamente mi entrada de la función millis (), una línea interminable de números (hasta 49 días, o lo que sea). ¿La mejor parte? Es solo una línea.

Restablecer es la parte más difícil del cronómetro. Para los programadores de nivel intermedio, si aún no lo ha hecho, siga adelante e intente hacerlo usted mismo, con segundos, minutos y horas juntos. Entenderás de lo que estoy hablando.

Para principiantes, sigue leyendo y disfruta de la genialidad de mi mente.

Es broma, pero la solución que se me ocurrió es bastante buena. Esto es lo que es:

Paso 1: la solución

La solución
La solución

Entonces el problema se está reiniciando. Lo que queremos es un ciclo continuo y repetido de números, a partir de una salida interminable de números secuenciales (milis (); básicamente cuenta milisegundos, o en realidad 1.024 milisegundos, pero lo que sea).

Lo primero que me viene a la mente es usar la diferencia, como time1 -time2 y un retraso. Olvídalo. Se necesitan al menos seis líneas de código y una instrucción if para arrancar.

Así que así es como se hace. Tenemos un límite (59). Queremos que todo del 0 al 59 se repita una y otra vez. ¿Cómo?

¿Qué pasa si … tomamos el resto … de la función millis dividida por 59 …? ¡Bingo!

Entonces, debería ser así:

(60 [como valor inicial porque el límite es 59] + milisegundos () / 1000 [1000 milisegundos es un segundo])% 60

Ok, déjame explicarte. (%) o módulo, es básicamente un operador como (+) que encuentra el resto. Como 9% 2 = 1.

Entonces:

  • resto de (60 + 0)% 60 = 0
  • resto de (60 + 1)% 60 = 1
  • resto de (60 + 58)% 60 = 58
  • resto de (60 + 59)% 60 = 59
  • resto de (60 + 60)% 60 = 60
  • resto de (60 + 61)% 60 = 1

¡Ver!

Ahora, por las partes.

Paso 2: las piezas

Las partes
Las partes

No mucho, en absoluto

  1. Cualquier arduino
  2. Cualquier pantalla (utilicé el OLED de 0.96 ", pero puedes usar lo que tengas, solo asegúrate de poner las variables correctas en las funciones de pantalla de tu pantalla).

Eso es todo.

Paso 3: el código

Aqui tienes. Está comentado con bastante claridad, por lo que no debería haber problemas. Las bibliotecas y el init para OLED de 0.96 están en el código. Reemplácelo con el de su propia pantalla si es diferente.

// Bibliotecas OLED de 0.96"

#incluir

#incluir

#incluir

#incluir

// Inicialización OLED de 0.96"

#define OLED_RESET 4

Pantalla Adafruit_SSD1306 (OLED_RESET);

int segundos;

int minutos;

int horas;

configuración vacía () {

// Algunos más de 0.96 OLED Init

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

display.clearDisplay (); display.setTextSize (2); display.setTextColor (BLANCO); }

bucle vacío () {

segundos = (60 + milis () / 1000)% 60;

minutos = (60 + milis () / 60000)% 60; horas = (25 + milis () / 3600000)% 25;

display.clearDisplay ();

display.setCursor (0, 22); // imprime el número de horas desde el reinicio display.print (hours); display.print ("h:");

// imprime el número de minutos desde el reinicio

display.print (minutos);

display.print ("m:");

// imprime el número de segundos desde el reinicio display.print (segundos); display.print ("s");

display.setCursor (0, 0);

display.print ("Cronómetro"); display.drawLine (0, 18, 128, 18, BLANCO); display.display ();

}

Paso 4: Finalización…

Al final …
Al final …

¡Eso es todo! Ahora haz lo que quieras con él. Mide unos huevos o toma el control de tu vecindario.

Saludos, Aarush

Recomendado: