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

Een fijne dag!

Copperweame | 18.05.2024

Thank you for your site and your work

automatische Sommer-/Winterzeit für DS3231

Andreas | 13.04.2022

Hallo,
gibt es die Möglichkeit das Du Deine Library so erweiterst, dass eine Uhr sich automatisch entsprechend umstellt ?
Ich habe mir eine Uhr mit Deiner Lib gebaut und es nervt, wenn alle halbe Jahre wieder neu programmiert werden muss (anders kann die Zeit nicht geändert werden).
Ich habe im Arduino Forum ein Code Beispiel gefunden, bin aber noch zu "frisch" um dass in einer Lib selbst einzubinden.

Antw.: automatische Sommer-/Winterzeit für DS3231

Retian | 14.04.2022

Hallo Andreas,
du kannst mit der Funktion setDST (setDST(DST_ON) bzw. setDST(DST_OFF)) die Uhrzeit auf Sommerzeit umstellen bzw. auf Normalzeit zurückstellen. Ob du die Umschaltung mit dieser Funktion manuell über einen Taster/Schalter realisierst oder mit einem Programmcode, mit dem die Umschaltzeitpunkte automatisch ermittelt werden, liegt in deiner Hand.
Und im Übrigen, um Datum/Uhrzeit einzustellen musst du nicht jedes mal neu programmieren, sondern die Library bietet dir grundsätzliche Funktionen (setDate(), setTime(), setDow()), mit denen du Datum/Uhrzeit/Wochentag über Taster einstellen kannst. Die Bedienung über die Taster musst du dir allerdings selbst programmieren und in deinem Sketch integrieren. Wie das geht habe ich mit einem kleinen Sketch "Set_DS3231" zum Einstellen von Datum, Uhrzeit und Wochentag gezeigt.
VG Retian

Antw.: automatische Sommer-/Winterzeit für DS3231

Andreas | 14.04.2022

Besten Dank !
Ich hatte das übersehen, dass es die Funktion schon gibt.
Wahrscheinlich werde ich dass über einen Taster realisieren.
Mit den "Einprogrammieren" bin ich nicht so fitt.
Kann man auch Fotos hier hochladen ?
Würde gern für einen ersten Eintrag ein Foto von meiner Uhr hier zeigen.

Antw.: automatische Sommer-/Winterzeit für DS3231

Retian | 15.04.2022

Nein, Fotos hochladen ist hier leider nicht möglich.

Antw.: automatische Sommer-/Winterzeit für DS3231

Andreas | 15.04.2022

Noch eine Sache: nach einen Betätigen der Resettaste auf der Arduino Nano Platine zählt der DS3231 die Stunden hoch. Ich kann also die Stunden mit der Reset Taste stellen. Hast Du eine Erklährung dafür?

Antw.: automatische Sommer-/Winterzeit für DS3231

Retian | 16.04.2022

Nein, dafür habe ich keine Erklärung, ich kenne auch deinen Sketch nicht. Das DS3231-Modul läuft - sofern batterie-oder akkugepuffert - auch bei einem Reset oder bei Spannungslosigkeit des Arduino weiter und gibt nach Wiederinbetriebnahme die richtigen Werte (Datum, Uhrzeit, Wochentag) aus.

Servo-Steuerung einer Modellbahn-Weiche mit Attiny84

Atchy | 06.03.2022

Hi Retian,
ich versuche schon seit Wochen Deinen Sketch für die Weichensteuerung mittels Tiny84 für den Tiny4313 anzupassen. Ich wollte über einen IC 3 Weichen gleichzeitig steuern, ausreichend Pins habe ich ja zu Verfügung. Ich scheitere immer wieder an den Einstellungen für den Timer und die Portmanipulation. Zwar geht der IC in den Programmiermodus, aber die Servos bewegen sich kein Stück. Könntest Du mir eine kleine Starthilfe geben?
LG von Atchy

Antw.:Servo-Steuerung einer Modellbahn-Weiche mit Attiny84

Retian | 07.03.2022

Hallo Atchy,
den Attiy4313 habe ich nicht im Einsatz und kenne ihn auch nicht, aber ich habe mir sein Datenblatt kurz angesehen. Auf den ersten Blick sind fast alle -der im Sketch verwendeten - Register identisch, bis auf das ADCSRA-Register, das scheint es beim 4313 nicht zu geben oder es heißt dort anders. Das wäre zu klären, man könnte im Sketch aber auch darauf verzichten. Weiters scheint es Unterschiede bei den I/O-Ports zu geben, da müsste der Sketch angepasst werden, das hängt aber von deiner Hardware-Beschaltung ab.
Nur, für 3 Weichen über einen Attiny steuern, ist der Sketch so nicht geeignet, da müsste der Sketch stark geändert und erweitert werden oder besser völlig neu programmiert werden. Der Sketch war ja ursprünglich für den Attiny45/85 gemacht und der hat ja nur 5 nutzbare Ein-/Ausgänge.
VG Retian

Set DS3231

Dietrich | 25.02.2022

Hallo,
ich habe heute Dein Set_DS3231 getestet.
Wenn ich die Uhrzeit (U) stellen möchte, gebe ich z.B. bei den Stunden 16 ein, im Monitor steht aber nach den Stunden: nur 01, das gleiche geschieht bei der Eingabe der Minuten und Sekunden, bei Werten kleiner 10 geht es, nach der Eingabe kommt "Übernehmen J/N"und dann sofort "Abbruch durch Benutzer".
Kannst Du mir ettl. helfen oder benötigst Du von mir weitere Informationen?
VG Dietrich

Antw.:Set DS3231

Retian | 27.02.2022

Hallo Dietrich,
tut mir leid, dass war mein Fehler bei einer Änderung meiner Library "MySerialRead". Bitte nimm die neue Version der Library (Version 2.3, sowohl die cpp-, als auch die h-Datei), dann sollte es funktionieren.
Gib mir bitte Bescheid. Danke!!
VG Retian

Bibliothek hochladen

Andreas | 30.01.2022

Hallo Retian,
du hast die Bibliotheken für das LED-Matrix erstellt. Ich habe versucht diese hochzuladen. Es ist mir jedoch nicht gelungen das "txt"-Suffix zu entfernen um die Bibliothek als h./cpp-Datei abzuspeichern. Kannst du mir da mal helfen, wie ich das anstelle. An welcher Stelle kann ich "txt" entfernen?
Vielen Dank Andreas

Antw.:Bibliothek hochladen

Retian | 01.02.2022

Hallo Andreas,
du benutzt dafür einfach den Windows-File-Explorer und gehst in das Verzeichnis, in das du die Bibliothek-txt-Files gespeichert hast. Dort wählst du mit der linken Maustaste ein umzubenennendes txt-File an und betätigst anschließend die rechte Maustaste. Dadurch öffnet sich ein Auswahlmenü. Dort wählst du den Punkt "Umbenennen" an, dann kannst du das txt-Suffix entfernen.
Viele Grüße
Retian

I2C-EEPROM Library

theMaltiFant | 26.01.2022

Hallo ich habe die I2C-EEPROM Library (V2.2) mit einem 24C64 Chip 8kb getestet und konnte keine Problem feststellen. Mein Test war einen Ringspeicher mit 16 Byte Blöcken aufzubauen und immer die letzten 512 Ereignisse abspeichern zu können.
Vielen Dank und Grüße
theMaltiFant

Thanks!

Josephfam | 21.01.2022

I just want to say thank you for this great website. I found a solution here on arduino-projekte.webnode.at for my issue.

Libraries

Andreas | 12.12.2021

Vielen Dank für deine tolle Arbeit und das Sharen.

Die BMP-Lib hat bei mir auf Anhieb funktioniert. Zur OneWire für den Attiny würde ich gerne wissen, ob die Pullups benötigt werden, um größere Leitungslängen zu schaffen.

Alles Gute und bleib gesund.

Andreas

Antw.:Libraries

Retian | 13.12.2021

Hallo Andreas,
danke für deine Rückmeldung.
Allerdings ist mir jetzt nicht ganz klar, auf welche Pullups sich deine Frage bezieht. Bitte kontaktiere mich deshalb über das Kontaktformular.
VG Retian

Selfemra

Flunirin | 05.11.2021


It's not my first time to pay a quick visit this site, i am visiting this site dailly and get good data from here everyday.

Pin Change Interrupt

Michael | 13.05.2021

endlich eine komplette, ausführliche und verständliche Beschreibung des Themas

Super Seite!

Frank | 09.05.2021

Hallo, echt gute Seite mit Hilfreichen Tutorials die mir bei meinen Projekten schon oft weitergeholfen haben. Besonders die Timer- und PWM Programmierung ist sehr hilfreich, wenn man nicht die Arduino Library benutzen möchte. VG Frank

DS3231

Siggi | 15.04.2021

Hallo!
Wollte auch mal "Danke" sagen; hat mir sehr geholfen auf einem Nano eine kleine Zeit/Temp. Anzeige (0.96 Display) für mein Fiat X1/9 zu verwirklichen!

Gruß Siggi

Luftdrucksensor BMP280

Thomas | 13.03.2021

Vielen Dank für deine Library.
Jetzt Funktioniert mein Luftdrucksensor.

Danke!!

Retian | 08.03.2021

Ich freue mich über jede Rückmeldung und ganz besonders natürlich über Positive. Vielen Dank an Ritchie, Günther und Rainer.
Viel Erfolg bei euren Projekten.
VG Retian

Danke für Deine Libs

Rainer | 07.03.2021

Hallo,
wollte DIr ein Lob für Deine Libs ausprechen.
Feine Sache !!!
Ich nutze FRAM I2C und INA219

Weiter so!!!

MyPCF8574

Günther | 27.02.2021

Hallo Retian
Danke für die Lib zum I2C Baustein PCF8574. Das war genau das was ich gesucht habe und es funktioniert super!! Einzelne Ausgänge separat schalten, ohne die anderen zu beeinflußen.!
Grüße aus dem Schwarzwald
Günther

Deine MyTCA und MyMCP4725 libs...

Ritchie | 15.02.2021

Hi Retian,
ein ganz großes Lob für Deine Treiber! Die Sachen funktionieren alle "out of the box" und sind wirklich gut getestet und programmiert. Hier an der Uni machen wir gerade eine Platine für ein Master-Projekt in der Physik und die Sachen haben sich bewährt... Topp!

Besten Gruß aus dem Münsterland

ritchie

Mini-SPS

Spidi55 | 09.11.2020

Hallo Retian
Ich habe das Projekt Mini SPS studiert. Ich bin sehr gespannt auf die Fortsetzung.
Das wird ein sehr schönes Projekt. Nach so was habe ich schon länger gesucht.
Hast Du die Library noch nicht ins Netz gestellt, oder habe ich sie nicht gefunden?
Ich wünsche alles Gute und Danke Spidi

Antw.:Mini-SPS

Retian | 10.11.2020

Hallo Spidi,
eigentlich sollte ja das Projekt (noch) nicht sichtbar sein und ich habe auch noch keine Library veröffentlicht. Nach anfänglichen Erfolgen will man immer mehr und irgendwann bin dich dann auf Grenzen mit den Zykluszeiten gestoßen, als ich nämlich begann Remanenz-Merker in ein FRAM zu schreiben. Daran arbeite ich noch, aber ich hoffe, dass ich bald eine Beta-Version zum Testen ins Netz stellen kann. VG Retian

Antw.:Antw.:Mini-SPS

Spidi | 10.11.2020

Super,
Ich freue mich auf die Fortsetzung. Wünsche eine schöne Zeit.

MAX 7219

Leon | 03.11.2020

Ich würde gerne eine Stoppuhr mit der Matrix bauen mit Sekunden und zwei nachkommastellen ist das möglich?
beste grüße
Leon

1 | 2 >>

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!