Estou trabalhando em um projeto usando o Arduino Uno e o escudo do cartão SD. Gostaria de armazenar uma variável em um horário específico todos os dias no cartão SD . Como posso obter a hora atual no Arduino? Qualquer ajuda seria apreciada.
NOTA: o Arduino NÃO está conectado ao PC.
Resposta
Um maneira precisa é usar a função millis()
. Ele retornará o valor em milissegundos desde o início do Arduino. Se você iniciar o Arduino em um horário específico, poderá calcular a data e a hora exatas.
Por que não um módulo externo ?? Um RTC como o DS3231 em apenas 5 $ e inclui um sensor de temperatura para você!
Comentários
- Cuidado com a função millis () envolva após cerca de 50 dias.
- @AndreCourchesne: arduino.stackexchange.com/questions/12587/…
- E se tudo se resolver? Um programa de relógio escrito corretamente não se importará com isso.
Resposta
sem fonte externa
Você não pode “t. O Arduino Uno não tem relógio em tempo real. Um relógio em tempo real é apenas algo como $ 1 do eBay. Por exemplo, o DS1307 ou DS3231. Encontrei 5 x placas pré-montadas com o chip do relógio, incluindo porta-bateria, cristal, chip e placa de circuito por $ US 4,20 no eBay. Pilhas não fornecidas.
Prenda isso aos pinos I2C (A4 e A5), defina a hora uma vez usando um esboço adequado e então você está pronto para começar.
Se você apenas quiser fazer algo a cada 24 horas (não necessariamente às 9h36), então você pode simplesmente usar millis
para descobrir quando o número apropriado de milissegundos passou. O resultado de millis
ocorrerá a cada 49 dias aproximadamente, mas você não precisa se preocupar com isso .
Observe que isso s não permitirá que você registre a data e a hora, mas você pode registrar algo (por exemplo, temperatura) todos os dias, você só precisa saber quando começou a registrar.
Resposta
Uma possibilidade a ser considerada é use um temporizador de plug-in de 24 horas que controla a energia do Uno.
Ou seja, algo parecido com isto:
O circuito seria: tomada AC -> Temporizador -> carregador USB -> Arduino
Você poderia definir o temporizador para desligar o Uno, digamos, às 23h30 e ligá-lo novamente meia-noite.
Nessa configuração, millis()
será o tempo desde a última inicialização do Uno, que normalmente será o tempo desde a meia-noite anterior.
Ao depurar, você pode definir o horário do Uno-start diferente da meia-noite.
As advertências são:
- Sua situação permite 30 minutos diários ( ou quaisquer que sejam os incrementos do cronômetro) tempo de inatividade
- Pode tolerar mudanças no cronômetro devido a falhas de energia