Índice:

Um cronômetro Arduino simples e prático: 4 etapas
Um cronômetro Arduino simples e prático: 4 etapas

Vídeo: Um cronômetro Arduino simples e prático: 4 etapas

Vídeo: Um cronômetro Arduino simples e prático: 4 etapas
Vídeo: Curso de Arduino para Iniciantes - Aula 01 - Primeiros Passos (Exemplo de um Vumeter) 2024, Setembro
Anonim
Um cronômetro Arduino simples e prático
Um cronômetro Arduino simples e prático

Pesquise na web o cronômetro do Arduino. Você provavelmente acabou de fazer isso, se estiver aqui. Por experiência própria, posso dizer que qualquer cronômetro na internet é muito complexo (em código, para iniciantes), ou é muito simplificado e não prático, como aqueles que continuam contando segundos sem zerar.

Você também acha, hein? Bem, adivinhe. Eu fiz isso e, além do mais, pego minha entrada diretamente da função millis () - uma linha infinita de números (até 49 dias, ou qualquer outra coisa). A melhor parte? É apenas uma linha.

Reiniciar é a parte mais difícil do cronômetro. Para intermediários, programadores, se ainda não o fizeram, vá em frente e tente fazer isso sozinho, com segundos, minutos e horas juntos. Você vai entender o que estou falando.

Para iniciantes, continue lendo e deleite-se com a genialidade da minha mente.

Brincadeira, mas a solução que encontrei é bem legal. Aqui está o que é:

Etapa 1: A Solução

A solução
A solução

Portanto, o problema está se reiniciando. O que queremos é um ciclo contínuo e repetitivo de números, a partir de uma saída infinita de números sequenciais (milis () - basicamente conta milissegundos, ou na verdade 1,024 milissegundos, mas tanto faz).

A primeira coisa que vem à mente é usar diferença, como time1 -time2 e um atraso. Esqueça isso. São necessárias pelo menos seis linhas de código e uma instrução if para inicializar.

Então, veja como fazer isso. Temos um limite (59). Queremos que tudo de 0 a 59 seja repetido indefinidamente. Como?

E se … pegássemos o restante … da função millis dividido por 59 … Bingo!

Então, deve ser assim:

(60 [como o valor inicial porque o limite é 59] + milissegundos () / 1000 [1000 milissegundos é um segundo])% 60

Ok, deixe-me explicar. (%) ou módulo, é basicamente um operador como (+) que encontra o resto. Como 9% 2 = 1.

Então:

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

Ver!

Agora, para as peças.

Etapa 2: as peças

As partes
As partes

Não muito

  1. Qualquer arduino
  2. Qualquer monitor (usei o OLED de 0,96 ", mas você pode usar o que tiver, apenas certifique-se de colocar as variáveis corretas nas funções de exibição do seu monitor.)

É isso.

Etapa 3: O Código

Aqui está. É claramente comentado, então não deve haver problemas. As bibliotecas e o init para OLED de 0,96 estão no código. Substitua-o pelo seu próprio display se for diferente.

// 0.96 Bibliotecas OLED

#incluir

#incluir

#incluir

#incluir

// 0.96 OLED Init

# define OLED_RESET 4

Display Adafruit_SSD1306 (OLED_RESET);

segundos inteiros;

minutos int;

horas int;

void setup () {

// Um pouco mais de 0,96 OLED Init

display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

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

void loop () {

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

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

display.clearDisplay ();

display.setCursor (0, 22); // imprime o número de horas desde a reinicialização display.print (horas); display.print ("h:");

// imprime o número de minutos desde a reinicialização

display.print (minutos);

display.print ("m:");

// imprime o número de segundos desde a reinicialização display.print (segundos); display.print ("s");

display.setCursor (0, 0);

display.print ("Cronômetro"); display.drawLine (0, 18, 128, 18, BRANCO); display.display ();

}

Etapa 4: finalização…

En Finalment…
En Finalment…

Então é isso! Agora vá fazer o que quiser com ele. Cronometre alguns ovos ou assuma o controle de sua vizinhança.

Saúde, Aarush

Recomendado: