Hallo,
ich bin relative neu, was Arduino angeht. Einige Projekte konnte ich mit Hilfe dieses Forums schon fertigstellen. Dafür ein Dank an alle Helfer hier.
Jetzt zu meinem aktuellen Problem:
Ich habe einen Funk-Temperatursensor. Diesen möchte ich auslesen und die Werte auf einem Raspi weiterverarbeiten.
Ich habe bereits eine Lösung, aber da gehen mir "Aussendungen" des Sensors verloren. Mir ist auch klar warum.
Hier mal der "interessante Teil" des Codes:
timearray[0] = pulseIn(inputPin,LOW);
if ((timearray[0] > 5950) && (timearray[0] < 6050))
{
for( byte i=1; i < entries; i++)
{
timearray[i] = pulseIn(inputPin,LOW);
}
resultstobitarray(); // Zeitwerte in Bits umwandeln
decodeData(); // Daten extrahieren
checkPlausibility(); // Daten auf Plausibilität prüfen
if (looksgood) // Wenn alles gut aussieht Werte ausgeben
{
printData();
}
}
Durch PulseIn wird der Arduino natürlich immer blockiert und wenn ein falscher Impuls aufgefangen wird hängt das ganze eine Ewigkeit in der Schleife und die echte Sendung wird verpasst.
Also hab ich mir überlegt das ganze per Interrupt zu machen. Aber.... das bekomme ich nicht hin. Könnte mir jemand erklären wie man die Pulslängen mittels Interrupt erfassen und in ein Array schreiben kann.
Liebe Grüße
LS