-         

Ergebnis 1 bis 9 von 9

Thema: Kapazitätsanzeige bzw Ah Anzeige programmieren

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2008
    Beiträge
    21

    Kapazitätsanzeige bzw Ah Anzeige programmieren

    Anzeige

    Hallo,
    ich will mir für die Überwachung eine größeren Akkus Systems (48V 100A)
    eine Kapazitätsanzegie bauen ( mit Mega.
    Die Hardware steht schon, aber ich bekomme die Programmierung nicht hin.

    Diese Antwort aus einem anderen Forum ist zwar logisch, aber wie um alles in der Welt setze ich das um?
    Das problem ist halt, das die Zahlen recht groß und unhandlich werden und ich somit ständig Probleme mit den Einheiten und variablentypen habe.

    "Welche Rechnung ? die Amperestunden ? Das ist der Aufsummierte Wert * Irgendwas. Nehmen wir an, ein ADC Wert von 1024 entspricht A [Ampere] und wird addieren alle 10ms. Dann entspricht das A *(1/1024)*(1/100)*(1/3600) Amperestunden, pro Eintrag. Das Irgendwas ist demnach (1/1024)*(1/100)*(1/3600) Amperestunden. "

    Ich nutze zwar Turbo Pascal aber ein Beispiel in einer anderen Sprache würde mir sicher auch weiterhelfen

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Also ich würde wenn irgend möglich mit ganzen Zahlen rechnen.
    Wenn ich deine Angaben richtig verstanden habe, dann heisst das doch, dass wenn du eine Stunde lang immer den vollen Ausschlag aufsummieren würdest, etwa ein Wert von 368.000.000 kommen würde.
    Eine Long variable kann bis zu 2.147.483.647, also etwa 6 Stunden, bevor sie überläuft. Reicht das? Welchem Strom entspricht der Wert 1023?
    Die Anzeige ist dann Spielerei. Wichtiger ist, wie du mitteln willst, oder willst du die geleisteten Amperestunden seit der letzten Ladung anzeigen?
    ...größeren Akkus Systems (48V 100A) du meinst doch bestimmt 100Ah, oder?

    Gruß

    Rolf

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.02.2005
    Ort
    NRW-Bergisches Land
    Beiträge
    311
    Ich habe da so eine Akkuanzeige von C. Die war recht simpel aufgebaut.
    Shunt > Spg/Freq Wandler IC (meine AD654) > Zähler IC als Teiler > Kleines LCD Schritzählermodul > fertig.
    Wenn du so einen externen U/F Wandler nimmst, ist der rest sehr simpel.
    Impulse zählen und ins Verhältnis zu Ah oder mAh bringen.
    Möchtest du nur die entnommene Kapazität oder auch die hinzugefügte Kapazität ermitteln (Auf / Ab zählen beim Laden / Entladen).

    Brauchst ja nicht mit einer Variabel hinkommen. Wenn die eine "Voll" ist kannste die nächste incrementieren und bei der ersten wieder bei 0 anfangen.
    Gruß RePi!


    *** Holzhacken ist deshalb so beliebt, weil man bei dieser Tätigkeit den Erfolg sofort sieht. ***
    *** (Albert Einstein) ***

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.09.2004
    Alter
    38
    Beiträge
    188
    Hallo Corado,

    warscheinlich bist du CITYEL Fahrer wie ich, ich habe das Ding schon soweit fertig, also meld Dich.

    Gruß

    Jens

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    31.03.2004
    Beiträge
    57
    Hallo,
    ich weiss nicht, ob du schon weitergekommen bist. Ich hab mir noch mal deinen Ansatz angesehen, der scheint mir (fast) ok.
    Ich präzisiere ihn an einigen Stellen, kann sein, du hast das auch schon so gesehen.:
    " Nehmen wir an, ein ADC Wert von 1024 entspricht 1 A [Ampere] und wird alle 10ms gemessen. Dann entspricht der ADC-Wert*(1/1024)*(1/100)*(1/3600) dem Ergebnis in Amperestunden pro Einzelmessung. Diese Einzelmessungen müssen mit jeder neuen Messung aufaddiert werden. Das Ergebnis ist ist dann die Ladung in Ah über den gemessenen Zeitraum "

    Ich nehme an, das Programmieren ist nicht das Problem für dich.
    Grüße von Jens

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.09.2004
    Alter
    38
    Beiträge
    188
    Hallo, die Messung ist soweit fertig.
    Meine Aufmerksamkeit gilt nun der Übertragung der Strom und Spannungswerte via RS232. Da die RS232 nur 8 Bit übertragen kann, ich aber einen 10 Bit AD Wert habe, frage ich mich, wie ich diesen am komfortabelsten versende. Ich könnte den AD Wandler nu parametrieren (auf 8 Bit), aber ich will die Messung genauer haben. Da ja 2 Bit eigentlich nur Rauschen sind wäre die Auflösung ja nur noch 6Bit effektiv, das ist mir zu wenig.

    Hat jemand einen Lösungsansatz?

    Gruß

    Jens

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.02.2005
    Ort
    NRW-Bergisches Land
    Beiträge
    311
    Was haben die 8 Datenbit der RS232 Schnittstelle mit deiner Messwerterfassung zu tun?
    Überhaupt nichts!
    Über 232 kannst du Strings, Integer oder was auch immer übertragen und das in beliebiger Länge.
    Es ist nur wichtig für die beiden Seriellen Teilnehmer zu wissen, das nach dem Startbit nun 8 (oder 7 oder 6..) Datenbit folgen und im Anschluß die Übertragung durch ein (oder 1,5 oder 2) Stopbit abgeschlossen wird.
    Wie oft das daraufhin wiederholt wird, hängt von der zu übertragenden Datenmenge ab.
    Gruß RePi!


    *** Holzhacken ist deshalb so beliebt, weil man bei dieser Tätigkeit den Erfolg sofort sieht. ***
    *** (Albert Einstein) ***

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.892
    Zur seriellen Datenübertragung:

    Beim Openformat von LogView wurde das so gemacht.

    Es kommt ein Framekenner = $
    danach folgt der gewünschte Kanal = 1
    danach der Modus = 1
    darauf folgt ein Zeitstempel = 123
    nun werden nacheinander die gewünschten Messwerte übertragen: 245,43211,...
    Dann wird noch eine Prüfsumme gebildet 00
    Jetzt noch ein <CR><LF> als Endekenner für den Datensatz = <CR><LF>

    So ein Frame sieht also dann so aus:

    $1,1,123,245,43211,......,00<CR><LF>

    Alle Zeichen werden als ASCII Codes übertragen und sind somit mit einem Terminalprogramm dierkt lesbar.
    Wenn Du dieses Format übernimmst kannst Du für die Auswertung deiner Daten das Programm "LogView" ( http://www.logview.info ) verwenden, dazu muss nur eine .ini Datei auf deine Messwerte angepasst werden.
    Für die Kapazitätsanzeige würde ich die aufsummierten Kapazitätsmesswerte übertragen - aber das musst Du selber entscheiden.

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    15.09.2004
    Alter
    38
    Beiträge
    188
    Also meine Daten, die ich loggen will sind Strings mit 10 Stellen.
    Ich wußte nicht, ob der Bascom Compiler dazu in der Lage ist Daten, die größer sind als ein Byte direkt auf die RS zu legen. Ich dachte, man müßte hier "manipulieren" und die Bits eines Strings byteweise auf die Schnittstelle legen, aber gut, wenn Bascom das kann....danke Repi.

    Ich möchte nicht die Kapazitätswerte, sondern Strom, Spannung und Zeit loggen und dann als Entladekennlinie z.B. in Excel oder direkt in einem eigens kreierten VB Programm darstellen etc.

    Mein Strom und Spannungswert sin dabei Strings(10 stellig).
    Ich müßte jetzt nur noch wissen, wie das mit den MSComControls in VB läuft, aber das gehört warscheinlich in einen anderen Thread.


    Danke erstmal

    Gruß

    Jens

Berechtigungen

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