- 12V Akku mit 280 Ah bauen         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 37

Thema: Temperatur berechnen

  1. #21
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Anzeige

    E-Bike
    Was du da rausbekommst ist die Teilspannung eines Widerstandsteilers. Du solltest dir mal die Mühe machen. die Teilspannung für einzelne Stützpunkte auszurechnen, dann siehst du den Zusammenhang zwischen Teilspannung und Temperatur.

    Gruß
    Detlef

  2. #22
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    95
    Beiträge
    627
    werde ich mal ausrechnen - Suche aber erst noch den Rechenfehler. In Excel hat das so schön funktioniert...

  3. #23
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    95
    Beiträge
    627
    Fehler gefunden!

    Hatte eine Klammer in der Rechnung nicht beachtet
    Wie kann ich die Zahl auf eine Kommastelle begrenzen?
    Temp: 24.83618164°C

    Also dass funktioniert nicht: Print "Temp: " ; Temp , "###.#" ; "°C"



    Code:
    $regfile = "m8def.dat"                                      'AT-Mega8
    $crystal = 1000000                                          'Quarz: 1 MHz
    $baud = 2400                                                'Baudrate der UART: 2400 Baud
    
    '===============================================================================
    ' Variablen
    '===============================================================================
    Dim Result As Word
    Dim Ohm As Single
    Dim Temp1 As Single                                         'wegen den negativen Zahlen!!!
    Dim Temp2 As Single
    Dim Temp3 As Single
    Dim Temp As Single
    
    
    
    Config Portc = Input
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    
    
    
    
    Start Adc
    
    '-------------------------------------------------------------------------------
    'Programm:
    '-------------------------------------------------------------------------------
    
    Do
    
    Result = Getadc(1)
    Ohm = 2.0238 * Result
    
    'Temp = 3730 / (Log(ohm) + 5.59017600439636)
    Temp1 = Log(ohm)
    Temp2 = Temp1 + 5.59017600439636
    Temp3 = 3730 / Temp2
    Temp = Temp3 - 273
    
    Print "Result: " ; Result
    Print "ohm: " ; Ohm
    
    Print "Temp1: " ; Temp1
    Print "Temp2: " ; Temp2
    Print "Temp3: " ; Temp3
    Print "Temp: " ; Temp , "###.#" ; "°C"
    
    Wait 1
    
    Loop
    
    End

  4. #24
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Das Formatieren macht man in Bascom mit Fusing:

    Fusing(Temp, "###.#")

    Gruß
    Detlef

  5. #25
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    95
    Beiträge
    627
    Aber wie bekomme ich dann noch den text davor und dahinter?
    Print "Temp: " ; Temp ; "°C"

    Es hagelt Fehlermeldungen.
    Print Fusing "Temp: " ;(temp , "#.&" ) ; "°C"

  6. #26
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Print "Temp: " ; Fusing(temp , "###.#" ) ; "°C"

    Gruß
    Detlef

  7. #27
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    95
    Beiträge
    627
    Vielen Dank für die schnellen und guten Antworten!

    Die Temperaturmessung ist nun fertig!!!

    Danke, Tobias

  8. #28
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Kontrolliere mal den Fehler der Temperaturmessung indem du in 5 °C Schritten aus dem Datenblatt die Widerstandswerte einsetzt und dann die Teilspannung am ADC berechnest. Ich bin ziemlich sicher, dass du da mit einem großen Fehler rechnen musst, es sei denn, du beschränkst dich auf normale Raumtemperaturen.

    Gruß
    Detlef

  9. #29
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Hallo,

    mich hatte interessiert, auf welche Genauigkeit man mit einem so nichtlinearen Element wie einem NTC kommen kann.

    Als Beispiel habe ich die Schaltung von TobiasBlome genommen:
    Ein NTC von +5 V an den ADC-Eingang des AVR und von dort ein Widerstand von 1 kOhm nach Masse.

    Die Berechnung erfolgte in Excel:
    1. Spalte: Die Isttemperatur in °C
    2. Spalte: Der Faktor Widerstand NTC bei Temperatur zu Widerstand bei 25 °C
    3. Spalte: Berechneter NTC-Widerstand in Ohm
    4. Spalte: Der Teilungsfaktor des Widerstandsteilers am ADC-Eingang
    5. Spalte: Teilungsfaktor * Maximalwert des ADC (1023) = Ergebnis des ADC
    6. Spalte: Ergebnis aus ADC - Offset
    7. Spalte: Ergebnis 7. Spalte * Faktor in °C
    8. Spalte: 7. Spalte - 1. Spalte = Linearitätsfehler in °C

    Offset und Faktor habe ich für den Bereich 0 °C bis 35 °C optimiert, für andere Bereiche müssen die Werte angepasst werden.
    Aus der Tabelle und dem Diagramm ist zu sehen, dass der Linearitätsfehler im Bereich 0 bis 35 °C bei max. +/-0,4 °C liegt.

    Bei 0 °C bis 50 °C würde der Fehler einer optimierten Korrektur schon bei +/-1 °C liegen.

    Ergebnis:
    Für die Berechnung der Temperatur ist kein Logarithmus erforderlich. Die Anpassung erfolgt durch einfache Addition und Multiplikation.

    Gruß
    Detlef

    Edit:
    Was ich bei der Berechnung nicht berücksichtigt habe, ist die Eigenerwärmung des NTC. Sie beträgt bei der verwendeten Schaltung bei 25 °C schon fast 1 °C!
    Mögliche Abhilfe:
    Verwendung eines hochohmigeren NTSs, der aufgrund des niedrigeren Stromes auch eine geringere Verlustleistung und damit Erwärmung hat.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken diagramm_0_35.jpg   tabelle_0_35.jpg  

  10. #30
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    95
    Beiträge
    627
    Hallo,
    da hast du vollkommen recht: Es wäre sinnvoller gewesen einen 10k NTC zu benutzen(den NTC hab ich so ohne nachzudenken gekauft-zum testen). Ich möchte meinen PC-Gehäuselüfter damit regeln - also 20-50?!°C. Deswegen muss er nicht sooo genau sein. Im Datenblatt steht folgendes:

    Max. power at 25 °C = P25 = 450mW
    Resistance tolerance = DR/RN = +/-5%/+/-10%
    Rated temperature = TN = 25°C
    B value tolerance = DB/B = +/-3%


    Zur Eigenerwärmung:
    bei 50°C habe muss der NTC 0,034W vernichten, ich denke das geht
    bei 70°C sind das aber schon 0,089W und
    bei100°C sind das schooooon 0,264W! Das ist zuviel!!!

    ausserdem ist das ein Spannungsteiler und da hat der Kohleschichtwiderstand bei 1k schon +/-50Ohm!
    -> bei 25°C sind das 2,56V bzw. 2,44V und das sind ja auch schon wieder 2-3°C? Unterschied - also könnte man überlegen ob man statt dem Kohleschichtwiderstand ein Trimmer einbaut und den mit einem Messgerät "eicht" oder vielleicht die Temperatur an ein anderes Termometer angleicht?!

    Wenn man eine genaue Temperatur benötigt sollte man lieber fertige Sensoren nutzen bei denen der Messwert schon digital ausgegeben wird z.B. den DS18S20 -> kostet ca. 7 Euro das Stück

    Soviel dazu.

    Hat einer eine Idee wie ich nun mit dem Single Wert den Lüfter ein und aus schalte?
    Ich möchte das über PWM machen und da brauche ich glaub ich einen Wert zwischen 0-254 (0%-100%)

    If Temp => 25 Then
    PWM = 50
    If Temp => 30 Then
    PWM = 100
    IF PWM => 35 Then
    PWM = 150
    ...

    End


    Das sieht umständlich aus und der Lüfter wird warscheinlich hoch und runter "eiern" oder?
    Wie würdet ihr das machen?
    Tobias

    P.S. wie hast du denn die Bilder hineinbekommen?

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test