BigBangTheory:
momentan verwende ich folgenden Sketch:
unsigned long i = 0;
void Interrupt()
{
noInterrupts();
i = micros();
interrupts();
}
Also erstmal zum Sketch: Der weist einige extrem merkwürdige Fehler auf.
Das ständige attachInterrupt in der loop hat rudirabbit bereits angesprochen.
Weiterhin können Interrupts gar nicht von anderen Interrupts unterprochen werden, daher ist das Sperren und Freigeben von Interrupts in der Interrupt-Behandlungsroutine völlig überflüssig. Es reicht daher vollkommen:
void Interrupt()
{
i = micros();
}
ABER: Variablen, auf die sowohl von normalem Code aus als auch von Interrupt-Code aus zugegriffen wird, müssen zwingend mit dem Attribut "volatile" deklariert werden, also:
volatile unsigned long i = 0;
Ich schau mir das nochmal näher an, was der Code machen soll und poste ggf. mal Alternativ-Code.
BigBangTheory:
Ich habe, auch wenn das Windrad stand, beim Gewitter, aber auch wenn ich ein Netzteil an den Arduino angeschlossen habe, sehr große Werte bekommen. Ich tippe da dann doch eher auf die Störsignal-Variante.
Ja, die Beschreibung klingt schwer nach Störungen.
Der PullDown-Widerstand ist wirklich korrekt angeschlossen?
Das Netzteil ist wohl ein sogenanntes "Schaltnetzteil"?
Hat das irgendwelche Prüfzeichen drauf, TÜV, GS, VDE, oder ist das Chinaware ohne alles?
BigBangTheory:
Werd das ganze mal mit nem kleineren Widerstand ausprobieren :).
Genau, erstmal den kräftigeren PullDown-Widerstand mit dem kleineren Ohm-Wert testen, 1K statt 12K an der langen Reed-Sensorzuleitung.
BigBangTheory:
Ich würde auch gern zur festen Installation des Windmessers ein Koaxialkabel verwenden, welches ja abgeschirmt sein müsste, oder?
Koaxkabel haben heute oft sogar eine zweifache Abschirmung und kosten ganz gut Geld.
Aber selbst einfaches Telefon-Verlegekabel ist mit so einer Art hauchfeiner Alufolie abgeschirmt. Kann man aber nicht Löten, die Folien-Abschirmung muss wohl per Schraubanschluss angeschlossen werden.
BigBangTheory:
Mir stellt sich da nun jedoch die Frage, wie ich es an den Arduino anschließen kann. Der Innenleiter ist ja easy, aber wie mach ich es mit dem Außenleiter? Ich Stück vom Kabel zurückschneiden und den Außenleiter verdrillen zum anschließen?
Die Abschirmung müßte irgendwo an eine Erdung angeschlossen werden, mindestens an einem Ende.
Normalerweise würde der Windmesser wohl auf einem geerdeten oder mit Blitzableiter geschützten Mast montiert werden. Dann würde die Abschirmung auf der Sensorseite an die Erdung des Mastes angeschlossen werden. Und auf der Arduino-Seite an den Schutzleiter des Stromnetzes. Oder ein Wasser- oder Heizungsrohr (falls die Heizungsanlage Metallrohre hat) im Haus.