Arduino Datenlogger nur bei Tastendruck

Gast #4546350
Lesenswert?
• ▲
▼
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
#4546363
Lesenswert?
• ▲
▼
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 #4546365
Lesenswert?
• ▲
▼
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren