- LiFePO4 Speicher Test         
Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 37 von 37

Thema: Temperatur berechnen

  1. #31
    Murus
    Gast
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Für den Lüfter:
    Ich würde mir da eine Funktion zusammenstricken und mit dieser den PWM-Wert aus der Temperatur berechnen.
    Die Funktion sollte dann wohl exponentiell aussehen ==> je höher die Temperatur, umso höher die Lüfterdrehzahl.
    Etwas lineares geht natürlich auch...

  2. #32
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    Naja
    so aufwendig dachte ich gar nicht.

    Also wenn der Lüfter vielleicht mit 25%, 50%, 75% oder 100% dreht reicht mir dass aus(also 4Stufen).

    Ich dachte nur:

    1. If Schleife größer als 25° -> Lüfter 25%
    2. If Schleife größer als 30° -> Lüfter 50%
    3...

    und so läuft der Lüfter hoch und das fängt bei jedem Zyklus wieder von vorne an - oder nicht?


    Tobias

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

    wie wär's mit

    Code:
    Select Case Temp
       Case 25 to 39
           Lüfter 25
       Case 40 to 59
           Lüfter 50
       Case 60 to 79
           Lüfter 75
       Case 80 to 100
          Lüfter 100
       Case >100
          Feuerwehr
    End Select
    Gruß
    Detlef

  4. #34
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    Sehr schöner Befehl.
    Die Feuerwehr hab ich mal weggelassen

    Wenn sich Temp erhöht geht der Lüfter mit "Drehzahl" an. Wenn der Lüfter nun kühlt und Temp kleiner wird geht der Lüfter aus - er soll aber nun eine Stufe langsamer drehen...

    Select Case Temp
    Case 25 To 29
    Pwm1 = 25
    Case 30 To 34
    Pwm1 = 50
    Case 35 To 39
    Pwm1 = 75
    Case Is > 40
    Pwm1 = 100
    Case Else
    Pwm1 = 0
    End Select

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

    wenn eine Übereinstimmung gefunden ist, wird Select verlassen. Wenn die Temperatur beim nächsten Durchlauf kleiner ist, wird auf die ensprechende Stufe zurückgeschaltet, nicht ausgeschaltet.

    Gruß
    Detlef

  6. #36
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    94
    Beiträge
    627
    Aber nicht bei mir - er schaltet nich zurück sondern auf 0

    Also ich habe nun:

    Case 10 To 24
    Pwm1 = 0
    dazugeschrieben und die
    Case Else
    Pwm1 = 0
    habe ich weggelassen. Warum hat er denn die Else Schleife nicht genommen?



    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
    Dim Pwm1 As Byte
    
    
    Config Portc = Input
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    
    
    
    
    Start Adc
    
    '-------------------------------------------------------------------------------
    'Programm:
    '-------------------------------------------------------------------------------
    
    Do
    
    Result = Getadc(1)
    Ohm = 2.0238 * Result
    
    Temp1 = Log(ohm)
    Temp2 = Temp1 + 5.59017600439636
    Temp3 = 3730 / Temp2
    Temp = Temp3 - 273
    Print "Temp: " ; Fusing(temp , "###.#" ) ; "°C"
    
    Wait 1
    
    Select Case Temp
       Case 10 To 24
           Pwm1 = 0
       Case 25 To 29
           Pwm1 = 25
       Case 30 To 34
           Pwm1 = 50
       Case 35 To 39
           Pwm1 = 75
       Case Is > 40
          Pwm1 = 100
       'Case Else
       '   Pwm1 = 0
    End Select
    
    Print "PWM1: " ; Pwm1
    Loop
    
    End

  7. #37
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Merkwürdig, da bin ich auch überfragt.

Seite 4 von 4 ErsteErste ... 234

Berechtigungen

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

LiFePO4 Speicher Test