Estoy trabajando en un proyecto usando Arduino Uno y el protector de la tarjeta SD. Me gustaría almacenar una variable a una hora específica todos los días en la tarjeta SD. . ¿Cómo puedo obtener la hora actual en Arduino? Cualquier ayuda sería apreciada.
NOTA: Arduino NO está conectado a la PC.
Respuesta
Una Una forma suficientemente precisa es utilizar la función millis()
. Devolverá el valor en milisegundos desde el inicio del Arduino. Si inicia el Arduino en un momento específico, podrá calcular la fecha y hora exactas.
¿Por qué no un módulo externo? ¡Un RTC como el DS3231 en solo 5 $ e incluye un sensor de temperatura para usted!
Comentarios
- Tenga cuidado con la función millis () después de unos 50 días.
- @AndreCourchesne: arduino.stackexchange.com/questions/12587/…
- Entonces, ¿qué pasa si se envuelve? Un programa de reloj escrito correctamente no se preocupará por eso.
Respuesta
sin fuente externa
No puedes «t. El Arduino Uno no tiene reloj en tiempo real. Un reloj en tiempo real es solo algo como $ 1 en eBay. Por ejemplo, el DS1307 o DS3231. Encontré 5 placas preensambladas con el chip de reloj, incluido el soporte de la batería, el cristal, el chip y la placa de circuito por $ 4,20 en eBay. No se incluyen las pilas.
Conecta eso a los pines I2C (A4 y A5), establece la hora una vez usando un boceto adecuado, y luego estarás listo para rodar.
Si solo quieres hacer algo cada 24 horas (no necesariamente a las 9:36 a. m.), entonces puede usar millis
para averiguar cuándo ha transcurrido el número apropiado de milisegundos. El resultado de millis
terminará cada 49 días aproximadamente, pero no tiene que preocuparse por eso .
Tenga en cuenta que esto s no le permitirá registrar la fecha y la hora, pero puede registrar algo (p. ej. la temperatura) todos los días, solo tendría que saber cuándo comenzó a registrar.
Respuesta
Una posibilidad a considerar es use un temporizador enchufable de 24 horas que controle la alimentación del Uno.
Es decir algo parecido a esto:
El circuito sería: toma de CA -> Temporizador -> Cargador USB -> Arduino
Puede configurar el temporizador para apagar el Uno a las 11:30 p.m. y encenderlo nuevamente. medianoche.
Bajo tal configuración, millis()
será el tiempo desde el último inicio de Uno, que normalmente será el tiempo desde la medianoche anterior.
Al depurar, puede establecer el tiempo de inicio Uno en otro que no sea la medianoche.
Las advertencias son:
- Su situación permite 30 minutos diarios ( o cualesquiera que sean los incrementos del temporizador) tiempo de inactividad
- Puede tolerar cambios de temporizador debido a cortes de energía