Liebe Leute !
Ich hätte gern eure Hilfe um folgendes Problem zu lösen bzw. zu
erklären.
Ein "WATER FLOW SENSOR" hängt mit Pin 2 am Arduino-Board.
Eine interrupt-routine zählt die Impulse. Funktioniert auch - aber es
werden immer wieder einzelne Impulse gezählt welche nicht vom Sensor
kommen (das Oszi am Eingangspin 2 kann keine Impulse erkennen)! Ein in
der Nähe (0,5 Meter) schaltendes Relais löst aber einige Impuls aus ?!
Gibts dafür eine Erklärung bzw. Lösung ?
Hier der einfache Code:
const byte FlowPin = 2;
unsigned long Impule=0;
volatile byte ImpulsLedState = LOW; // Led status
const byte LedImpuls = 13; // onboard-led
//################## interruptroutine #####################
// impulse zaehlen und Led status toogeln
void FlowAct() {
ImpulsLedState = !ImpulsLedState;
digitalWrite(LedImpuls,ImpulsLedState);
Impule++;
}
void setup() {
Serial.begin(9600); // open the serial port at 9600 bps
pinMode(LedImpuls, OUTPUT); // ImpulseLed
// interrupt Flowmeter
pinMode(FlowPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(FlowPin), FlowAct, CHANGE);
}
void loop() {
Serial.print("SUMME Impule: ");
Serial.println(Impule);
delay(5000);
}
Bitte setze Deinen Sketch in Codetags (oben links </> im Foreneditor oder [code] davor und [/code] dahinter - ohne die *).
Das kannst Du auch noch nachträglich durch Editieren tun. Bitte mach das, der Sketch ist besser zu lesen, besonders auf mobilen Geräten.
Wie ist Dein Eingang beschaltet (Länge, geschirmt, verdrillt, ...), welchen Sensor hast Du dran (Link).
@HotSystems:
Wie Tommy schon geschrieben hat, setze deinen Sketch in Code-Tags, der ist am Tablet schwer zu lesen.
jetzt OK
Warum arbeitest du mit einem Interrupt.
weil mein Orginalprogramm viel anderes erledigt (überwachen, berechnen, ausgaben, leds bedienen, ...) - diesen Sketch hab ich nur gemacht um dem Problem auf die Spur zu kommen.
Nehme den Pin mal ganz normal in die Loop (pull) ohne Interrupt.
werd ich versuchen
@Tommy56
Ich hatte außerdem noch um Infos zur Anschlßart/-länge gebeten.
die Länge ist derzeit ~1,5 m / 3pol. Kabel verdrillt - werd mit einen geschirmten versuchen !
nanofanman:
Warum arbeitest du mit einem Interrupt.
weil mein Orginalprogramm viel anderes erledigt (überwachen, berechnen, ausgaben, leds bedienen, ...) - diesen Sketch hab ich nur gemacht um dem Problem auf die Spur zu kommen.
Dann solltest du Prioritäten setzen.
PS: das soll ein "Leckage" - system werden !
Leckage-System ?
Willst du eine Leckage provozieren ?
Edit:
Und wenn es mit dem 4,7 k nicht reicht, musst du den kleiner machen.
Nach den Infos, die man im Netz findet, scheint das ein Open-Collektor-Ausgang zu sein. Er soll 10 mA bei 5V treiben können, also kannst Du durchaus auf 1kOhm mit dem Pullup runter gehen. Außerdem würde ich nicht auf CHANGE, sondern auf FALLING reagieren, denn OC sind LOW-Aktiv.
Gruß Tommy
Edit: Ich lese gerade Open-Drain, aber der Rest kann bleiben.
Das war ich selbst - hatte in diesen Forum vorallem "häme" geerntet - weil ARDUINO !!!! ??? - deswegen versuch ich hier mein Glück !
@Tommy56:
Nach den Infos, die man im Netz findet, scheint das ein Open-Collektor-Ausgang zu sein. Er soll 10 mA bei 5V treiben können, also kannst Du durchaus auf 1kOhm mit dem Pullup runter gehen. Außerdem würde ich nicht auf CHANGE, sondern auf FALLING reagieren, denn OC sind LOW-Aktiv.
hab dein Anweisungen beherzigt - leider ohne Erfolg - der Versuch mit geschirmten Kabel ist noch offen.
PS: hab den Eindruck das ich hier besser "bedient" werde