Energie sparen mit ATtiny 414 DeepSleep und PlatformIO

energie-sparen-mit-attiny-414-deepsleep-und-platformio https://www.youtube.com/watch?v=uEq0AYruGSk

Arduino RTC Timer - LED Blink Example Link to heading

Beschreibung Link to heading

Dieses Projekt nutzt den RTC-Timer (Real Time Clock) des AVR-Mikrocontrollers, um alle 5 Sekunden eine LED blinken zu lassen. Der RTC-Timer wird im 32.768kHz-Modus betrieben und die LED wird alle 10 Ticks des Timers für 0,5 Sekunden eingeschaltet.

Funktionsweise Link to heading

  • Der RTC-Timer läuft mit einer Frequenz von 2 Hz, was bedeutet, dass der Zähler alle 0,5 Sekunden erhöht wird.
  • Sobald der Zähler 10 erreicht, wird die LED eingeschaltet (Pin 0), und der Zähler wird zurückgesetzt.
  • Danach geht der Arduino in den Schlafmodus (SLEEP_MODE_PWR_DOWN), um Strom zu sparen, bis der Timer das nächste Mal eine Unterbrechung auslöst.

Funktionen Link to heading

  • RTC_init(): Initialisiert den RTC-Timer, um im 32.768kHz-Modus mit einer Frequenz von 2 Hz zu laufen.
  • ISR(RTC_PIT_vect): Interrupt-Service-Routine, die bei jedem Überlauf des RTC-Timers aufgerufen wird. Sie erhöht den Zähler rtc_counter.
  • setup(): Setzt den Arduino in den Schlafmodus und konfiguriert den Timer sowie die LED.
  • loop(): Der Arduino schläft, bis der Timer ein Interrupt auslöst. Wenn der Zähler 10 erreicht, wird die LED für 0,5 Sekunden eingeschaltet und der Zähler zurückgesetzt.
  • Pin 0: Wird als Ausgang verwendet, um die LED zu steuern.

Wichtige Hinweise Link to heading

  • Das Projekt verwendet den AVR-spezifischen Sleep-Modus, um die Energieeffizienz des Mikrocontrollers zu maximieren.
  • Mit der Counter-Variable können wir die Zeit verlängern, indem der MCU nur kurz startet, die Bedingung im Loop überprüft und dann wieder in den Sleep-Modus geht.

Tip
Entdecke spannende Online-Kurse zu ESP32, IoT und Linux auf meiner Lernplattform: https://pixeledi.teachable.com.