Go Down

Topic: Plötzlich komisches verhalten Uno/Mega fehlerhafte Impulse (Read 3164 times) previous topic - next topic

sth77

Das war ein versehen meinerseits. Im Startposing hast du ja geschrieben, dass du die S0-Schnittstelle anzapfst. Ich hatte noch ein vergleichbares projekt im Hinterkopf, wo jemand das Blinken der LED mit einem Fotowiderstand oder -transistor ausgewertet hat.

Hab mal nach deinem Stromzähler gegoogelt: http://www.debnar-messtechnik.de/DRT428B.pdf Passt es denn mit den angegebenen 800 Impulsen pro kWh besser? ;)
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

losNOXos

Hi,

ich prüfe ich später noch mal.

Allerdings steht auf meinem Zähler 1000imp/kWh.

Und das sind auch keine 200 imp Unterschied.

sth77

Zählst du eigentlich zu viele Impulse gegenüber der Display-Anzeige oder zu wenige? Für den ersten Fall sollte man mal das Signal untersuchen, ob da irgendwelche Störungen drin sind. Nach den Spezifikationen der S0-Schnittstelle sollte ja eine bestimmte Mindestimpulslänge vorliegen. Eventuell könnte man das in den Code einbauen, dass bspw. nur Impulse gezählt werden, die mindestens 50 ms lang sind. pulseIn() kann das zwar, blockiert aber auch den Programmablauf ähnlich einer delay()-Anweisung, zum Testen reicht das aber im Allgemeinen aus.
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

losNOXos

Hi,

es werden zu viele Impulse gezählt. Allerdings nicht sofort, sondern erst mit der Zeit.
Habe schon mit Delay rumgespielt, leider ohne erfolg.

Auch Interrupt nutzen hat leider keine Veränderung gebracht.

Ich werte es später genau aus und melde mich noch mal.


Danke!
nox

sth77

Du sollst ja auch kein delay benutzen, sondern testweise die pulseIn-Funktion, um ausschließlich entsprechend lange Impulse zu messen. Laut dem von mir verlinkten Datenblatt soll so ein Impuls etwa 90 ms dauert. Somit würde ich alles verwerfen, was kürzer als 50 ms ist - vielleicht gibt es kurze Störungen/Unterbrechungen im Signal, die das Ergebnis verfälschen.
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

juwo1811

Ich zähle mit einem Reflexoptokoppler MRL601 die Impulse meines Gaszählers . Die Impulse werden nach jedem Zählerdurchlauf an der Ziffer 6 erkannt, hier reflektiert ein kleiner Reflexpunkt Das funktioniert mit der MRL601 sehr gut!

Von der Schaltung geht es auf PIN 7 zum Arduino, dort habe ich die Interrupt Schaltung von  der Familie Kriwanek benutzt siehe Code im Link.

http://www.kriwanek.de/arduino/grundlagen/182-pin-change-interrupts-grundlagen.html

NUN ZUM PROBLEM:

Auch ich habe den Eindruck, dass mit zunehmender Laufzeit der Zähler vom Arduino zu viel zählt. Ich habe wirklich lange vor dem Impulsgeber gesessen und die Impulse kontrolliert, nach jedem Impuls habe ich den Zählerstand im Arduino kontrolliert, es war immer alles ok, aber nach 2 - 5 Stunden (ich war nun nicht mehr im Keller :-)   ) sind plötzlich Abweichungen dar, und es ist immer so, dass der Arduino zu viel gezählt hat, nicht sehr viel aber ein paar Ticks schon.


Ich kann es mir nicht erklären, habe auch schon andere "ZählCodes" verwendet, es ist immer das gleiche Ergebnis, die gezählten Ticks sind zu hoch...


Hat jemand eine Idee oder Vorschlag was ich tun kann

(Bin noch Anfänger und habe mir die Scripts auch nur zusammengebastelt, bitte um Verständnis)

Danke
Jürgen



Go Up