mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Strommessung mit TLC549 und TLC272 als Messverstärker


Autor: runni (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

baue an einer Schaltung zur Strommessung mit einem TLC549, damit die 
Messwerte stabiler und leicht zu verarbeiten sind ist U-Ref 2,56V und 
der Eingang wird mit einem 1:10 Verstärker vom Shunt angehoben.

Meine Frage: gibt es etwas Besonders bei dem Messverst. zu beachten oder 
kann ich den so lassen? (Funktionieren tuts schon)

Danke.

MfG, R.N.

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist 1:11, RK/RE + 1

Autor: runni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, R8 also 11,11k, hab da jetzt ein Poti zum testen ist mir deshalb 
nicht aufgefallen.
Danke.

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für die Tiefpaßschaltungen würde ich 10k / 100nF nehmen. Deine fgr. 
liegt bei 15 Hz.

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, bin heute ein bischen langsam, für die VREF würde ich ein REF 
Element verwenden, 2 Potis sind 2 zuviel ;-))

Autor: runni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke.

So hypergenau muss es nicht werden, soll als Anzeige in mein WoMo.
Gibt es denn Ref.Quellen mit 2,56V am Ausgang?
Der Prototyp läuft auf dem Steckbrett eigentlich ganz ok. Was kann man 
denn am Eingang des ADC als Multiplexer nehmen? 4053?

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
4053 ist in Ordnung, ja es gibt 2,56 V REF Elemente.

Du mußt es auch nicht zu genau nehmen, sollte nur ein Hinweis sein.

Wie gesagt, 10K / 100 nF würde ich dennoch vorschlagen, wie oft wird 
denn die Messung ausgeführt ? /Sek. ?

Autor: runni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Programm macht momentan soviele Messungen wie es schaft :-), das 
sind so ca. 130 Messungen/Sek., momentan wird noch ein Balkenanzeige 
zusätlich zur Ausgabe des Wertes realisiert, die fällt aber später weg. 
War nur ein Test, dann sind so 300 Mess./Sek. möglich, was aber durch 
die Anzahl der genutzten Kanäle des Mux geteilt werden muss.
Ich denke um die Schaltung universell einsetzten zu können, das der 4051 
mit 8 Eingängen optimal ist.
Der 8051 läuft mit 11,059MHz, ggf. versuch ich mal die 89LP4051, hab ich 
noch da, werde die aber einbremsen müssen da sonst das LM162 Display 
schlapp macht.

Autor: runni (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hab das Teil mit einem 4051 erweitert, es funktioniert auch fast alles.
Ein Problem, der 4051 reagiert komisch, das Umschalten ist immer um ein 
versetzt:

y - x0 sollte eigentlich a0 b0 sein, ist aber a1 b0, also immer eins 
weiter. Kann ich mir nicht erklären, sieht auch am Oszi ok aus.

hier der Quellcode "MCS-51 Assembler V 4 Andreas Roth"
#cpu = 80C31  ; @12 MHz
  
#bit clk = p3.3, data = p3.4, cs = p3.5, muxa = p1.0, muxb = p1.1
#byte adc_read0, adc_read1, adc_read2, adc_read3

;LCD
#bit d0=p1.4, d1=p1.5, d2=p1.6, d3=p1.7
#bit rs=p1.2, en=p1.3
#bit nibble_write
#byte write_pause
  
; Initialisierung

acall init_lcd

start:
  
;Kanal 0 Messen
setb muxa    ;mux auf Eingang 0 (eigentlich 1)
clr muxb
acall warten  ;warten bis mux umgeschalten hat
acall adc    ;wandeln
mov adc_read0, a  ;Ergebniss sichern
acall warten  ;warten bis nächster Kanal gewählt werden kann
  
;Kanal 1 Messen
clr muxa    ;mux auf Eingang 1 (eigentlich 2)
setb muxb
acall warten  ;warten bis mux umgeschalten hat
acall adc    ;wandeln
mov adc_read1, a  ;Ergebniss sichern
acall warten  ;warten bis nächster Kanal gewählt werden kann
  
;Kanal 2 Messen
setb muxa    ;mux auf Eingang 2 (eigentlich 3)
setb muxb
acall warten  ;warten bis mux umgeschalten hat
acall adc    ;wandeln
mov adc_read2, a  ;Ergebniss sichern
acall warten  ;warten bis nächster Kanal gewählt werden kann
  
;Kanal 3 Messen
clr muxa    ;mux auf Eingang 3 (eigentlich 0)
clr muxb
acall warten  ;warten bis mux umgeschalten hat
acall adc
mov adc_read3, a  ;Ergebniss sichern
;acall warten  ;warten bis nächster Kanal gewählt werden kann
  
  
acall lcd_out
  
jmp start

end
; * * * Hauptprogramm Ende * * *
  
adc: 
 mov a, #0h
 clr clk
 clr cs
 for r4=#8
        setb clk
;acall warten
      if bit data
        setb c
      else
        clr c
         end if
     rlc a
     clr clk
;acall warten
 next
 setb cs
 setb clk
ret
  
lcd_out:
  
  clr rs  ;LCD auf Instruktion Register umschalten
  mov a, #80h  ;Befehl nach Akku
  acall write_lcd  ;Befehl an LCD senden
  
  ;Anzeigen der Spannungen in Zeile 1
  
  mov a, #'V'
  acall put_char
  mov a, #':'
  acall put_char
  
  mov a, adc_read0  ;Wert  nach Akku
  acall hex_to_dec  ;Wandeln nach BCD
  
  mov a, r1
  if a = #0      ;führende 0 löschen
    mov a, #' '
  else
    add a, #30h
  end if
  acall put_char
  mov a, r2
  add a, #30h
  acall put_char
  
  mov a, #','
  acall put_char
  
  mov a, r3
  add a, #30h
  acall put_char
  
  mov a, #' '
  acall put_char
  
  mov a, #'V'
  acall put_char
  mov a, #':'
  acall put_char
  
  mov a, adc_read3  ;Wert  nach Akku
  acall hex_to_dec  ;Wandeln nach BCD
  
  mov a, r1
  if a = #0      ;führende 0 löschen
    mov a, #' '
  else
    add a, #30h
  end if
  acall put_char
  mov a, r2
  add a, #30h
  acall put_char
  
  mov a, #','
  acall put_char  
  
  mov a, r3
  add a, #30h
  acall put_char
  
  mov a, #c0h
  clr rs
  acall write_lcd
  
  ;Anzeigen der Ströme in Zeile 2
  
  mov a, #'A'
  acall put_char
  mov a, #':'
  acall put_char
  
  mov a, adc_read1  ;Wert  nach Akku
  acall hex_to_dec  ;Wandeln nach BCD

  mov a, r1
  add a, #30h
  acall put_char
  mov a, #','
  acall put_char
  mov a, r2
  add a, #30h
  acall put_char
  mov a, r3
  add a, #30h
  acall put_char

  mov a, #' '
  acall put_char

  mov a, #'A'
  acall put_char
  mov a, #':'
  acall put_char

  mov a, adc_read2  ;Wert  nach Akku
  acall hex_to_dec  ;Wandeln nach BCD

  mov a, r1
  add a, #30h
  acall put_char
  mov a, #','
  acall put_char
  mov a, r2
  add a, #30h
  acall put_char
  mov a, r3
  add a, #30h
  acall put_char

ret

hex_to_dec:     ;Ausgangswert im Akku, Ergebniss in r1,2,3
  mov b,#10d 
  div ab 
  mov r3,b   
  mov b,#10d 
  div ab 
  mov r1,a 
  mov r2,b 
ret
  
bcd_to_hex:
  push  b      ; Save B
  push  acc      ; Save Value
  anl  a,#0f0h      ; Keep High Bits
  swap  a      ; Get To Low
  mov  b,#10      ; 10 Decimal
  mul  ab      ; Multiply
  mov  b,a      ; Store In B
  pop  acc      ; Recover BCD Value
  anl  a,#00fh      ; Keep Low Nybble
  add  a,b      ; Add In High
  pop  b      ; Recover B
ret    ; Return To Caller

warten:
  for r0=#01h
    for r5=#3ch   ; ~80 us
    next
  next
ret


  

Autor: runni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach ja, es fehlt noch die include Datei fürs LCD, die ist ja für den Mux 
nicht wichtig.
Sollte wer Interesse daran haben, www.elste.org unter 
Akku-Kapazitätsmessgerät.

Autor: Ralf N. (runni) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ein Bild von dem Teil.

P.S. ja ich habe auch einen Login, das Passwort aber nicht immer im Kopf

Autor: juppo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich arbeite auch gerade mit dem TLC549

Habe da folgendes Problem

Ref Spannung ist 2,5 V über LM385

Die Daten die eingelesen werden geben

1,25 V              0-255
1,25 -2,5 V nochmal 0-255

Variabeln sind als unsigned char deklariert und eingelesen werden 8 Bits

Hat jemand ne Idee

Schönes Wochenende

Juppo

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.