-         

Ergebnis 1 bis 9 von 9

Thema: Stromzähler auslesen, diesmal mit AVR

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    27.10.2005
    Ort
    Berlin
    Beiträge
    31

    Stromzähler auslesen, diesmal mit AVR

    Anzeige

    Hallo miteinander,
    bin nicht sicher, ob ich im Elektronik oder Sensoren-Forum am besten aufgehoben bin...
    Folgendes: Ich werte seit einiger Zeit meinen Stromzähler per Computer aus, indem ich einen CNY70 aufs Glas des Zählers geklebt habe und folgende Schaltung am Gameport angeschlossen habe.

    Problem 1: Mit dem Poti lege ich die Schaltschwelle fest, der Poti scheint allerdings irgendwie zu driften, jedenfalls muss ich alle zwei Wochen nachregeln, was recht lästig, weil sehr empfindlich ist. (Die Differenz von roter Markierung der Zählerscheibe zur "Alu-Rändel") ist nur etwa 0,15V.
    Problem 2: Die Schaltung hat so eine Art "Prellen" bei den Übergängen von Rot nach Alu und zurück. Das behandle ich zur Zeit per Software, die den Gameport auswertet.

    Jetzt habe ich ein kleines Lernpaket "Mikrocontroller" mit einem ATTINY13 geschenkt bekommen und möchte umrüsten. Die Idee ist, dass der Controller stets einen PIN auf High setzt (und das am Gameport ausgewertet wird), wenn die Spannungsdifferenz am ADC um z.B. mehr als 10% nach oben oder unten schwankt und diese Pegelveränderung länger als X Millisekunden dauert. Damit sollte dann das lästige Kalibrieren und das SW-"Entprellen" entfallen.

    Nun die eigentliche Frage: Ich habe (noch) keine Ahnung von AVRs und kein Gefühl dafür, ob mein Algorithmus in das 1KB Flash des ATTINY13 paßt.
    Was meint ihr? Seht ihr noch Probleme, auf die ich als Anfänger stoßen könnte? Die Spannungsversorgung nehme ich vom Gameport, der sollte genug Strom liefern und die Spannung ist doch hinreichend stabil (wg. der Qualität der Meßergebnisse am ADC-Port).

    Ich freue mich über ein kleines Feedback!
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken schaltung_113.gif   verlauf.gif  

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die 1 KB Flash sollten schon ausreichen. Wenn man allerdings mit Fließkommazahlen zu rechenen will wird das ziehmlichknapp. In ASM sollte man es schaffen unter 200 Bytes zu bleiben.

    Das Problem mit der Drift könnte vom ziehmlich hohen LED-Strom für den Refelxkoppler kommen. Da scheint was zu altern. Es könnte natürlich auch der Klebstoff sein, der den Reflexkoppler in Position hält.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    27.10.2005
    Ort
    Berlin
    Beiträge
    31
    Du meinst nicht, dass es am Poti zusammen mit Luftfeuchte/Temperatur liegen könnte? Der Zähler steht im Keller, daneben stehen Waschmaschine und Trockner, so dass da schon ein paar Grad Unterschied entstehen können.
    Den Klebstoff kann ich ausschliessen, die Position am Glas ist unverändert.

    Mit ASM will ich mich eigentlich nicht auseinandersetzen (müssen), dachte da eher an Bascom oder C...
    Mit den Fließkommazahlen versteh ich nicht, kannst Du das erklären?

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.08.2006
    Ort
    Budapest
    Alter
    30
    Beiträge
    563
    In C wird das wahrscheinlich auch noch gehen, falls Du Fliesskommazahlen vermeidest. Da die AVRs von Haus aus nur Operationen mit 8Bit Integers unterstützen, ist alles, was Fliesskommazahlen beinhaltet (zB dividieren) sehr speicher- und rechenintensiv.

    Bei deinem Problem kann ich es mir aber vorstellen, dass Du mit einem 16bit (U)Integervariable für Deine Berechnungen auskommen kannst. Man muss sich nur u.U über die Reihenfolge der Operationen nachdenken, damit man immer im Wertebereich der 16bit bleibt.

    Was Du vielleicht in Betracht ziehen könntest, ist die Kommunikation zwischen AVR und PC per serielle Schnittstelle. Dabei könnte der Rechner die "komplizierteren" Rechnungen übernehmen (zB die Errechnung der Schaltschwellen), und diese dann an den AVR übermitteln.

    Also: Taktzählen über Gameport, Kalibrierung in bestimmten Intervallen über serielle Schnittstelle.

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Auf lange sicht sollte man den PC nicht die ganze zeit laufen lassen, damit der Stromzähler nicht so viel zu zählen hat. Die Lichtschrauke läßt sich leider kaum so sparsam kriegen, das man gut mit Akku oder Batteriebetreib auskommt.

  6. #6

    zum Stromzählerauslesen

    hi, also ich habe eine ultrahelle LED und einen Fototransistor genommen. Dieser schaltet über einen Komperator 5 Volt zu meinem Mikrokontroller. Seit ungef, 5 Jahren läuft es auf einem C-control. Jetzt bin ich dabei auf einen AT 32 umzurüsten. Ich habe im C-Control die Uhrzeit abgefragt und alle sechs Minuten die gezählten Impulse aus Stromzähler mit Tag Stunde Minute abgespeichert. Da kommt man mit 8 Bit = 255 Pulse gut zurecht. Bei meiner Zählerkonstante sind das 34Kwh. Die Werte lese ich dann mit einem Terminalprogramm über RS232 aus und berechne Arbeit und Leistung in einem Tabellenkalkulationsprogramm. Die immer wieder mal fehlenden Impulse gleiche ich mit einem zusätzlichen Faktor aus den ich bei meiner wöchendlichen Zählerablesung ermittle und überwache. Nebenher messe ich den Regen, die Feuchte die Außentemperatur, den Luftdruck habe einen 32kb eeProm eingebaut und kann meine Daten ca 5 Tage speichern. Im AVR will ich dann noch versuchen I²C Temperatursensoren (LM75)einzusetzen. Ich hoffe es hilft dir weiter. Viel Erfolg noch mfg.uli

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    22.11.2005
    Ort
    Coburg
    Alter
    39
    Beiträge
    84
    Hi Juli,

    kannst Du evtl. mal den C-Control Code posten (oder zumindest den Zähler-Teil mit dem 5 Tage-Speicher)?

    Habe auch eine C-Control mit einem 32kb EEPROM und würde gerne ähnliches realisieren!
    Danke

    Gruß
    Christian

    [Meine Projekte]

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    06.08.2006
    Ort
    Delitzsch
    Alter
    76
    Beiträge
    54
    Hallo,

    da kann eigentlich kaum etwas auf dich zukommen, was du nicht packst.
    Welche Programmiersprache?
    Der ADC ist bei einer Spannungsdifferenz von 0,15 V ebenfalls nicht einfach stabil zum laufen( ohne Fehler) zu bekommen.
    Schau mal bei Juli( LED) da kannst du vielleicht den ADC umgehen, wenn nicht dann hast du ihn ja noch.

    Das Entprellen fällt bei LED bestimmt weg und mit deinen ATTiny kannst du in Bascom das mit Debounce lösen.

    viel Erfolg oder frage

    mfg

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    22.11.2005
    Ort
    Coburg
    Alter
    39
    Beiträge
    84
    Mich würde der BasicPlus Code für die C-Control von Juli interessieren!

    Den Zähl-Impuls vom Zähler würde ich direkt vom Zähler bekommen, da dieser eine S0 Schnittstelle (Open Kollektor Ausgang) hat!
    Da würde ich dann die 5V über einen Digital-Eingang nehmen!
    Danke

    Gruß
    Christian

    [Meine Projekte]

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •