Energie sparen mit ATtiny 414 DeepSleep und PlatformIO
https://www.youtube.com/watch?v=uEq0AYruGSk
Arduino RTC Timer - LED Blink Example Link to heading
- megaTinyCore PowerSave: https://github.com/SpenceKonde/megaTinyCore/blob/master/megaavr/extras/PowerSave.md
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.
Projektlinks Link to heading
- YouTube: https://www.youtube.com/watch?v=uEq0AYruGSk
- GitHub: https://github.com/pixelEDI/ATtiny414_SleepMode
- Alle Links: https:links.pixeledi.eu
Tip
Entdecke spannende Online-Kurse zu ESP32, IoT und Linux auf meiner Lernplattform: https://pixeledi.teachable.com.