Willkommen auf meiner Homepage!


Ich beschäftige mich seit Anfang 2014 mit der Programmierung von Arduino Uno/Nano/Mega und Attiny45/85 und möchte meine Arduino/Attiny-Tätigkeiten hier vorstellen. Einerseits um vielleicht mit dem einen oder anderen Arduino-Programmierer in Verbindung zu kommen und Erfahrungen auszutauschen. Andererseits aber auch, um für mich selbst meine Tätigkeiten zu dokumentieren und dadurch von mir erarbeitete Lösungen bzw. Anleitungen immer griffbereit für neue Anwendungen zu haben.

Alle hier vorgestellten Tätigkeiten habe ich für meine private Verwendung gebaut und programmiert, falls es dafür erforderlich war oder ich Lust hatte, habe ich Libraries dazu geschrieben. Da ich mich nur in meiner Freizeit mit Arduino beschäftige, erhebe ich für meine geschriebenen Programme und Libraries keinen Anspruch auf optimale Programmierung, Vollständigkeit oder Fehlerfreiheit. Mein Ziel ist es aber, dass ich mich durch die kontinuierliche Auseinandersetzung mit der Thematik ständig verbessere.

Gerne nehme ich konstruktive Kritik oder Anregung über das Kontaktformular oder über das Forum entgegen, freue mich aber auch, wenn jemand von meinen vorgestellten Schaltungen bzw. Programmen und Libraries etwas für sich verwenden kann und mir auch ein Feedback darüber gibt.

Retian

===================================================

Die verpönte delay-Funktion

Wenn auch verpönt, so verwende ich, vor allem auch bei meinen Programmbeispielen zu meinen Libraries die delay-Funktion - ganz bewusst und mit Bedacht - und begründe das mit nachfolgendem Artikel, den ich bereits vor einigen Jahren im www.arduinoforum.de geschrieben habe:

11.12.2015, Einsatz von delays

Nachdem in diversen Foren der Einsatz von "delays" immer wieder verteufelt wird, möchte ich dieses Thema auch einmal aufgreifen und meine etwas differenzierte Meinung dazu äußern. Aus meiner Sicht kann der Einsatz von delays schon berechtigt und auch sinnvoll sein, wenn z.B.:

  • Es aus Hardwaregründen erforderlich ist, z.B. auf Zustandsänderungen oder auf Einschwingvorgänge kurz zu warten. Diese delays spielen sich häufig im Bereich von einigen hundert Mikrosekunden bis wenigen Millisekunden ab und haben daher meist nur wenig Einfluss auf einen ungebremsten Programmablauf.
  • Es Programme gibt, wo einfach zwischen zwei Ereignissen nichts zu tun ist und damit meine ich auch wirklich nichts. Warum sollte dieses Warten nicht mit einem delay realisiert werden. Beispiel: Messwertaufnahme und Übermittlung des Messwertes an ein anderes System in einem Zyklus von 5 Minuten. Was soll der Controller in der Zwischenzeit machen, außer Warten?
  • Die oft gehörte Aussage, dass während eines delays der Controller nichts mehr tun kann, ist so nicht ganz richtig. Er kann nämlich sehr wohl auf Interrupts reagieren. Man kann das System ganz bewusst in den delay-Zustand versetzt, um zum Beispiel in dieser Zeit Zählimpulse per Interrupt zu erfassen (z.B. für eine Drehzahlmessung). Würde der Controller während der Impulszählung mit anderen Dingen sehr beschäftigt sein, könnten so Zählimpulse verloren gehen und dadurch das Ergebnis verfälschen.

Aus meiner Sicht ist also der bewusste Einsatz von delays sehr wohl berechtigt und man sollte daher die Verwendung nicht grundsätzlich so negativ darstellen. Es ist aber sicher richtig, dass man - vor allem Neueinsteigern - auf die Risiken hinweist, die der unüberlegte Einsatz mit sich bringen kann.

====================================================

Fragen, Anregungen, Kommentare

Es wurden keine Beiträge gefunden.

Neuer Beitrag

Alte Beiträge sind hier zu finden!

=====================================================

Demnächst neu:

  • Bau eines MP3-Players für Kinder zum Hören von Musik und Geschichten
  • Für Bogenschützen (wie mich): Messgerät zur Ermittlung des statischen Spinewertes von Pfeilen nach AMO- (ATA) und ASTM-Standard (Easton)
  • Reaktivierung eines alten Thermodruckers DP-20-24CF von Fa. Seiko mit paralleler Schnittstelle

Letzte Änderungen:

28.01.2021 Vorläufige Entfernung von Projekt und Library zur "Gesicherten Funkbefehl-Übertragung" wegen Sicherheitsmangel

31.08.2020 Beispiel 2 zum INA219: Zähler für elektr. Arbeit und Ladung mit automatischer Umschaltung des Messbereichs -> Stromsensor INA219

09.08.2020 Einfacher Debugger zur Erleichterung bei der Fehlersuche -> Arduino-Debugger

21.05.2020 Neue Version 1.2 der Weichensteuerung für Attiny45/85 und Version 1.1 für Attiny84 -> Weichensteuerung

19.05.2020 Meine Weichensteuerung gibt es jetzt auch für Attiny84 -> Weichensteuerung Attiny84

06.05.2020 Neue Library für den Analog-Digital-Converter MCP3421 -> ADC MCP3421

22.04.2020 Neue Library für den Analog-Digital-Converter ADS1115 -> ADC ADS1115

01.04.2020 Erweiterung des Kapitels "C-Funktionen und C-Funktionalitäten" um die "Bereichsbasierte for-Schleife" (Range-based-for-loop) -> C-Funktionen

25.01.2020 Library zur Ansteuerung eines Stromsensors INA219 für Arduino und Attiny -> Stromsensor INA219

10./19.09.2019 Darstellung der Ausgabestände meiner Libraries und Hilfsprogramme auf der Startseite. Letzte Änderungen sind dort durch einen Link auf ihre Seite ersichtlich und werden nicht mehr hier in der Chronologie gesondert angeführt.

18.08.2019 Ergänzung und neue Funktion zu meiner Library MySerialRead -> Serieller Monitor

Alle Änderungen sind in der Chronologie zu finden!