Arduino Datenlogger nur bei Tastendruck

Gast #4546350
Hi,

ich möchte einen Datenlogger mit einem Arduino Micro bauen und hätte 
folgende Frage:

Der Datenlogger soll nur Daten aufzeichnen, so lange ein Taster gedrückt 
ist.

Ich hab mir jetzt schon einige Tutorials durchgelesen, wollte aber euch 
fragen, was ihr für die elegantere Methode haltet:

- Interruptgesteuert
Problem dabei: Ich möchte die Daten in einem Intervall von 1s 
aufzeichnen. In sind meines Wissens jedoch die Funktionen delay() und 
millis() nicht verfügbar... Gibt es hier andere Möglichkeiten?

- Ständige Abfrage im void loop()
Ich würde durch eine Abfrage "if (state == HIGH)" immer Abfragen ob der 
Taster gerade gedrückt ist. (und natürlich wie der Status im vorigen 
Zeitschritt war).

Was haltet ihr davon? Gibt es bessere Ansätze?

Danke für eure Hilfe!

lg
Gast
Joe F. schrieb:
> programmiere einen timerinterrupt so, dass er 1x pro sekunde
> auslöst.
> dann fragst du den taster ab. wenn ungedrückt, nichts machen. wenn
> gedrückt, messen und loggen.

Danke, das finde ich sehr elegant!
du hast dann halt bis zu 1s verzögerung von tastendruck bis messung.
wenn das stört, programmierst du den timer isr z.b auf 100x pro sek.

in der isr zählst du einen counter hoch, aber nur wenn taster gedrückt. 
bei counter==1: messen & loggen.
wenn taster nicht gedrückt, oder counter==100: counter auf 0 setzen. das 
delay von tasterdruck zu 1. messung ist dann max. 1/100s
Gast
Wobei mir gerade einfällt:

delay() wird doch eigentlich durch den Timer des ATmega32U4 erzeugt. 
Also eigentlich ist ein "richtiger" Timerinterrupt doch gleichbedeutend 
wie wenn ich das Programm mit delay() pausiere, oder?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.