Benutzer-Werkzeuge

Webseiten-Werkzeuge


bewaesserungsautomat:programmversion_0.5

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
bewaesserungsautomat:programmversion_0.5 [18.06.2016 21:33] Frickelpietbewaesserungsautomat:programmversion_0.5 [18.05.2023 12:15] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-====== Programmversion 0.5 ====== +====== Bewässerungsautomat Programmversion 0.5 ====== 
-Programmversion 0.5 soll den delay()-Befehl am Ende der [[bewaesserungsautomat:programmversion_0.4|Programmversion 0.4]] eliminieren. Diese Umstellung ist notwendig, um die Neopixel nicht nur an- und ausschalten zu können, sondern sie in der Helligkeit "pulsieren" können zu lassen. Mit delay() wartet die Programmschleife nach jedem Durchlauf eine definierte Zeit, bevor sie nochmals durchlaufen wird. Mit dem millis()-Befehl kann man die Programmschleife so umbauen, dass einzelne if-Abfragen nach einer vorgegebenen Zeit ausgeführt werden. Auf diese Weise ist es möglich, verschiedene if-Abfragen mit unterschiedlichen Frequenzen ausführen zu können. Beispielsweise kann die if-Abfrage für die Steuerung der NeoPixel alle 10 ms durchlaufen werden, während die restliche Programmschleife weiterhin nur alle 1000 ms ausgeführt wird.+<box 100% round red|**Achtung!**>Diese Programmversion wird nicht mehr weiter entwickelt. Weiter geht es mit  [[programmversion_0.6|Programmversion 0.6]]</box> 
 + 
 +Programmversion 0.5 eliminiert den delay()-Befehl am Ende der [[bewaesserungsautomat:programmversion_0.4|Programmversion 0.4]]. Diese Umstellung ist notwendig, um die Neopixel nicht nur an- und ausschalten zu können, sondern sie in der Helligkeit "pulsieren" können zu lassen. Mit delay() wartet die Programmschleife nach jedem Durchlauf eine definierte Zeit, bevor sie nochmals durchlaufen wird. Mit dem millis()-Befehl kann man die Programmschleife so umbauen, dass einzelne if-Abfragen nach einer vorgegebenen Zeit ausgeführt werden. Auf diese Weise ist es möglich, verschiedene if-Abfragen mit unterschiedlichen Frequenzen ausführen zu können. Beispielsweise kann die if-Abfrage für die Steuerung der NeoPixel alle 10 ms durchlaufen werden, während die restliche Programmschleife weiterhin nur alle 1000 ms ausgeführt wird.
  
 Hilfreiche Links: Hilfreiche Links:
   * https://learn.adafruit.com/multi-tasking-the-arduino-part-3/overview   * https://learn.adafruit.com/multi-tasking-the-arduino-part-3/overview
   * http://www.vielsichtig.de/index.php?id=120   * http://www.vielsichtig.de/index.php?id=120
-  * http://forum.arduino.cc/index.php?topic=130917.0 
   * http://blog.humblecoder.com/arduino-multitasking-using-finite-state-machines/ (Sehr gute Erklärung.)   * http://blog.humblecoder.com/arduino-multitasking-using-finite-state-machines/ (Sehr gute Erklärung.)
   * https://www.baldengineer.com/millis-tutorial.html   * https://www.baldengineer.com/millis-tutorial.html
   * https://www.baldengineer.com/arduino-how-do-you-reset-millis.html   * https://www.baldengineer.com/arduino-how-do-you-reset-millis.html
   * https://www.baldengineer.com/millis-cookbook.html   * https://www.baldengineer.com/millis-cookbook.html
 +
 +Der folgende Code läuft, allerdings nicht ganz rund: Der Fading-Effekt hakelt etwas. Durch einige Optimierungen des Programms konnte das Hakeln gemildert werden, ganz verschwunden ist es aber noch nicht.
 +
 +Was noch zu tun ist:
 +  * Der Fading-Effekt muss geschmeidiger laufen.
  
 <code> <code>
bewaesserungsautomat/programmversion_0.5.1466278413.txt.gz · Zuletzt geändert: 18.05.2023 09:06 (Externe Bearbeitung)