Hallo!
Ich würde gerne mit einem AVR feststellen, ob an eine 230V Leitung eingeschaltet ist oder nicht, bzw. es soll möglich sein ein mehrfaches Ein_/Ausschalten zu zählen. Dazu sollte die externe Beschaltung möglichst spartanisch sein, d.h. die Beschaltung ist ähnlich der Beschaltung zur Zero-Cross-Detection von Atmel: Ein Leiter ist mit Ground verbunden, der andere über 1MR mit einem Eingangspin mit 100kR Pull-Down (damit wäre die Spannung am Pin bei der positiven Halbwelle etwa 9ms > 2.5V, ich hab's auch schon mit kleineren (15kR) Widerständen probiert: gleiches Verhalten).
Zum Programm: Der Controller wartet auf ein Einschalten und zählt dann die Ein-/Ausschaltvorgänge bis eine 800ms Schaltpause kommt. "Schalter eingeschaltet" erkennt er, wenn der Pin >5ms lang auf 1 ist, Schalter aus, wenn der Pin >15ms auf 0 steht (ausprobiert für "so schnell Abtasten wie möglich" und "alle ms Abtasten"): Meistens funktioniert das Ganze und er zählt korrekt, häufig zählt er jedoch zu wenig, d.h. erkennt ein Auschalten bzw. Einschalten nicht. Die Endposition des Schalters erkennt er jedoch richtig.
Mangels Trenntrafo usw. habe ich noch nicht alle Möglichkeiten überprüft bzw. ausprobiert und kann deswegen zunächst mal nur die Frage stellen, ob das prinzipiell so funktioniert, bzw. mit welchen "Dreckeffekten" ich rechnen muss. Bzw. hat sowas schonmal einer gemacht und es funktioniert tadellos?
Danke schonmal und viele Grüße,
Torsten