Forum: Mikrocontroller und Digitale Elektronik Sensorausfallsicherung am Arduino


von Alexander S. (knut740)


Lesenswert?

Hallo,
ich würde germ ein Programm, das auf einem Arduino läuft, gegen 
Sensorausfall so absichern, daß es ohne Rücksicht auf einen fehlenden 
Input / Meßwert weiter läuft.

Bei Arduino gibt es für den fraglichen Sensor sehr einfache 
Abfrageinstruktionen:

 highcounts = pulseIn(sensorpin, HIGH);
 lowcounts = pulseIn(sensorpin, LOW);
(der Sensor liefert eine Rechteckkurve; man muß die Zeiten von High und 
Low erfassen, um einen Meßwert ermitteln zu können).

Nachdem das nun so einfach aussieht, hatte ich gedacht, wenn der Sensor 
defekt ist oder fehlt, liefern die offenen Ports eben keine high- bzw. 
lowpulse und das Programm summiert irgend etwas Undefinierbares und 
läuft dann unbeeindruckt weiter.
Deshalb habe ich mir keine Gedanken über Zeitkontrollen o.dgl. gemacht, 
die dem Programm über fehlende Sensorpulse hinweg helfen.

Leider ist dem wohl nicht so, denn das Programm bleibt hängen, wenn der 
Sensor entfernt wird.

Hat jemand Erfahrungen, ob es in der vereinfachten Arduinosprache 
Methoden für mein Problem gibt - oder muß man Atmega328-typische 
Überwachungsroutinen in den Arduino-Code hineinbasteln?

Gruß
knut740

von Karl H. (kbuchegg)


Lesenswert?

Alexander Schmeil schrieb:

> Leider ist dem wohl nicht so, denn das Programm bleibt hängen, wenn der
> Sensor entfernt wird.

Was spricht eigentlich dagegen, mal die Doku zu pulseIn zu studieren?
Soltest du tun. Da erwartet dich eine Überraschung.

: Bearbeitet durch User
von Alexander S. (knut740)


Lesenswert?

Karl Heinz schrieb:
> Was spricht eigentlich dagegen, mal die Doku zu pulseIn zu studieren?

Eigentlich nichts. Das mit dem timeout hatte mich beim ersten Kontakt 
nicht interessiert und später habe ich nicht mehr daran gedacht, 
nochmals nachzusehen.
Ist doch sehr komfortabel, das kleine Gerät!

Vielen Dank!

knut

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.