Arduino Polska Forum

Pełna wersja: Timer cykliczny na baterie jaki procek?
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam
Chciałbym zrobić timer, żeby włączał się cyklicznie i był zasilany z baterii.
Czy w tym kodzie Atmega 328P zamiast 2s jeśli wstawię 259200s czyli 72h. To co 3 dni będzie się włączał załączy diodę i wyłączy się?
Mam też Attiny 85 i pewnie byłaby lepsza do tego zadania tylko nie wiem jak napisać sleep i ile uA mógłby pobierać z Tiny 85 dałbym mosfet żeby załączać inny układ co 3 dni realizuje coś i wyłącza się.

Kod:
include "LowPower.h"

void setup()
{
  pinMode(13,OUTPUT);
}

void loop()
{
  digitalWrite(13,HIGH);
  delay(2000);
  digitalWrite(13,LOW);
  LowPower.powerDown(SLEEP_2S, ADC_OFF, BOD_OFF);
}
(01-07-2021, 10:44)brendy napisał(a): [ -> ]Czy w tym kodzie Atmega 328P zamiast 2s jeśli wstawię 259200s czyli 72h. To co 3 dni będzie się włączał załączy diodę i wyłączy się?

Nie.
Możesz dać maksymalnie 8S, albo SLEEP_FOREVER.
Dla SLEEP_FOREVER trzeba dać wybudzanie zewnętrzne, na przykład RTC.
Jeśli RTC wybudzi nasz procesor raz na dobę, to wystarczy sprawdzić, który raz zostaliśmy wybudzeni. Jeśli trzeci, to wykonaj kod i zresetuj zmienną przechowującą ilość wybudzeń.
Jeśli nie zdecydujesz się na RTC, to wybudzasz uC co 8 sekund, zwiększasz licznik, sprawdzasz stan licznika i idziesz spać. Jeśli licznik osiągnie 32400, wykonujesz kod, zerujesz licznik i idziesz spać. Ale to nie będzie super dokładne, raczej kiepski pomysł.
Raczej wolę użyć rtc, mam Ds1302 czy takiego mogę użyć?
Tylko nie widzę żeby miał wyjście pod przerwanie do uC.
Poszukaj innego zegara. Np. 3231.
Tu masz projekt, który dobrze wyjaśni zagadnienie: https://thekurks.net/blog/2018/2/5/wakeu...datalogger
Dziękuję za pomoc.