Events mit Arduino ! Hilfe für meine Diplomarbeit

Sehr geehrte Arduino Community!

Ich beginne gerade mit meiner Diplomarbeit, wofür ich mit Arduino ein Handheld für ein Messgerät programmieren möchte.

Durch das Drücken von verschiedenen Knöpfen sollen auch verschiedene Messungen erfolgen.

Nun stellt sich mir die Frage wie ich diese Events programmieren soll. Etwa mit Methoden, oder mit interrupts oder gibt es da noch andere Möglichkeiten????

Ich bin noch nicht sehr erfahren beim Programmieren mit Arduino und bitte deshalb um Hilfe und Ratschläge!

Vielen Dank im voraus.

Mit freundlichen Grüßen
Alex

Das ist ein irreführender Titel. "Event" bezieht sich auf eine ganz bestimmte Programmier-Technik (vor allem in der objekt-orientierten Programmierung):

Das kann man hier zwar auch machen, aber es übersteigt deine Bedürfnisse und Fähigkeiten.

Interrupts braucht man auch nicht. Taster sind sehr langsam. Benutzereingaben sind noch langsamer.
Man fragt entweder die Taster ab und macht direkt etwas. Oder man verwendet die Taster um das Programm in einen bestimmten Modus oder Zustand zu versetzen und fragt ständig ab in welchem Zustand man ist. Also ein endlicher Automat, bzw. Zustandsmaschine.

Einfache Tastenabfrage
Kein blockierender Code
Endlicher Automat

Grüße Uwe

alexanderKaiserDA:
Ich beginne gerade mit meiner Diplomarbeit, wofür ich mit Arduino ein Handheld für ein Messgerät programmieren möchte.

Da freuen wir uns schon in den Quellen aufgeführt zu werden...

alexanderKaiserDA:
Ich bin noch nicht sehr erfahren beim Programmieren mit Arduino und bitte deshalb um Hilfe und Ratschläge!

Zum Lesen und Recherchieren zu faul?
Das ist unser akademischer Nachwuchs?

Traurig, traurig, traurig.

Das ist ein irreführender Titel. "Event" bezieht sich auf eine ganz bestimmte Programmier-Technik

Auf einem Arduino läuft so gut wie kein Betriebssystem, und schon gar kein Windows-ähnliches, bei dem man für Events (Mausbewegung, Klicks, Tasten, anderes) die Standardbehandlung durch eigene Event-Handler ergänzt.

Dafür ist im Controller-Chip einiges an Hardware integriert ( mehrere Timer, UART, ADC etc. ) Um mit diesen direkt möglichst effizient zu arbeiten, sind Interrupt-Handler manchmal sinnvoll. Das wichtigste wird allerdings schon durch die Arduino-Programmierumgebung erledigt und so vereinfacht.
Das Verarbeiten von Tastern (incl. Entprellen) ist jedenfalls keine Aufgabe für Interrupts.

Du schreibst die Funktion loop(), die schaut, was zu tun ist, sich sofort wieder beendet und daraufhin wieder dran kommt. Sinnvollerweise trennt man da Zustandserfassung, Änderungserkennung und Aktionen (da hast du dann dein Event-Handling) -- ist aber alles deine Aufgabe.
Ob du Funktionen schreibst oder Klassen mit Methoden und Eigenschaften, bleibt dir überlassen.

Noch ein Tip:
2kB RAM (beim Uno/Nano) ist nicht viel. Das hast du besser ohne dynamische Speicherverwaltung unter Kontrolle. (Dazu zählen auch String-Objekte, die es zwar gibt, dir aber nichts wirklich bringen.)

michael_x:
Auf einem Arduino läuft so gut wie kein Betriebssystem, und schon gar kein Windows-ähnliches, bei dem man für Events (Mausbewegung, Klicks, Tasten, anderes) die Standardbehandlung durch eigene Event-Handler ergänzt.

Event Handler gibt es auf dem Arduino schon. z.B. die Funktion die man an attachInterrupt() übergibt. Oder bei I2C/Wire onReceive() und onRequest(). Einfach durch Callbacks implementiert. Das bietet sich immer dann an wenn man eine Klasse hat die eine Anwender-definierte Funktion ausführen muss

Um Dir wirklich etwas raten zu können, müßte man Dich kennen. Studierst Du Informatik oder Psychologie, kannst Du C oder C++ programmieren und so weiter.

Welchen Arduino willst Du verwenden?

Ein Beispiel mit "Tastendrücken" haben Rudi und ich mal zur Anschauung hier reingestellt. Rudi hat es mittels OOP, ich prozedural gelöst, da kannst Du schön vergleichen.

Vielen Dank für die Tipps !!!

Jetzt kann ich auch anständig recherchieren :slight_smile: