- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 25

Thema: ADC-Werte von 535 bis 550. ist das normal??

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von igelstein Beitrag anzeigen
    dank Dir einmal herzlich.
    ich nehme an, das ist eine ganz piepnormale "grundschaltung". wo kann ich sowas nachlesen (hab schon mächtig geguglt AVR rauf und RN runter), um das forum nicht mit anfänger-nichtwissen zuzukleistern?
    lg
    Marcel
    http://www.rn-wissen.de/index.php/ADC_%28Avr%29

    Gruß Richard

  2. #2
    Benutzer Stammmitglied Avatar von igelstein
    Registriert seit
    08.02.2011
    Ort
    pinnenhöfen 3
    Alter
    78
    Beiträge
    38
    dank Dir, Richard.
    hätt ich das vor einem monat gehabt...!
    jetzt hab ich den ADC ruhig (s.o.) und auch schon umgerechnet (ist es wirklich so kompliziert, dass man sich aus dem ADC (0-1023) erstens den widerstand (OHM sei dank) und daraus die temperatur (hier seien Steinhart&Hart lobend erwähnt) berechnen muss? und das in BASCOM??? ich habs gemacht, es funktioniert; aber da müsz ja einen direkteren weg geben?
    noch was: ist der simulator mit LCD-code immer so gebremst?
    aber eigentlich gehör ich da ja schon in ein anderes forum.
    danke und lg
    Marcel

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Hast Du in simulations Code ganz oben en $SIM stehen? dann optimiert der Compiler für den Simulator.
    Das muss vor dem Brennen natürlich wieder RAUS also noch einmal ohne $SIM neu kompilieren vor dem
    "Brennen"!

    Gruß Richard

  4. #4
    Benutzer Stammmitglied Avatar von igelstein
    Registriert seit
    08.02.2011
    Ort
    pinnenhöfen 3
    Alter
    78
    Beiträge
    38
    Zitat Zitat von Richard Beitrag anzeigen
    Hast Du in simulations Code ganz oben en $SIM stehen?Gruß Richard
    nein, hab ich - noch - nicht. probier ich.
    für Tobika:
    Code:
    $regfile = "m32def.dat"
    $crystal = 8000000
    $baud = 9600
    $hwstack = 32
    $swstack = 10
    $framesize = 40
     Config Lcd = 16 * 2
     Config Lcdbus = 4
     Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.6 , Rs = Portc.4
       'Konfiguration entspricht der hardware vom evalboard Deltawave Atmega32
    Dim W As Word                                               'ADC-wert, zwischen 0 und 1023
    Dim Temp_ausgabe As Single
    Dim V_an_adc As Single
       'Messbereich ca 10°-90°
       '=>kalibrierung für ca 40°, Spannungsteiler R1(NTC R25=5k)[20°]: 6.247k, R2: 2,18k,
      Const Prescale_value = 0.0048828                            '5V/1024
    Dim Formel As Single
    Dim A As Single                                             'A, B, C: parameter für steinhart-hart-gleichung
    Dim B As Single
    Dim C As Single
    Dim R As Single
    Dim Lnr3 As Single
    Dim Blnr3 As Single
    Dim Widerstand As Single
     Led1 Alias Portb.0
     Led2 Alias Portb.1
     Led3 Alias Portb.2
     Led4 Alias Portb.3
     Led5 Alias Portb.4
     Led6 Alias Portb.5
     Led7 Alias Portb.6
     Led8 Alias Portb.7
     
     Config Led1 = Output
     Config Led2 = Output
     Config Led3 = Output
     Config Led4 = Output
     Config Led5 = Output
     Config Led6 = Output
     Config Led7 = Output
     Config Led8 = Output
      
    A = 0.002946983         'ABC-werte für 50° müssen erst in einer gleichung für 3 var berechnet werden (EXCEL-datei von mir)
    B = 0.000250322
    C = 0.000001374
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Start Adc
    Do
       'Print "preScal = " ; Prescale_value
       W = Getadc(0)
                Locate 1 , 1 : Lcd "w =" ; W
                Print "w =" ; W
       V_an_adc = Prescale_value * W : Print "V_an_ADC= " ; V_an_adc       'Volt an ADC
                'Spannungsteiler:    Rx= R1*U / (U-U2) - R1 : Rx= 11 / (5 - U2) - 2,2
                'wobei U=Uges, R1=2,18k,  Rx gesucht, U2= w [aus Getadc(0)]
                   Widerstand = 5 - V_an_adc
                   Widerstand = 11 / Widerstand
                   R = Widerstand - 2.18 : Print "Widerstand (R)= " ; R
     
                                      'R1(NTC):R25=5k, R2 = 2,18k
                                      'Rx= R = 1 /{a + B * Log(R) + C *[log(R)] ^ 3} steinhart-gleichung (wiki), siehe unten
                                      'die ganzen prints waren kontrolle für UART
       Lnr3 = Log(r) : Print "log(R)= " ; Lnr3
       Formel = Lnr3 ^ 3 : Print "(log(R))^3= " ; Formel
       Formel = Formel * C : Print "(log(R))^3 * C= " ; Formel
       Blnr3 = B * Lnr3 : Print "b*log(R)= " ; Blnr3 : Print "A, B, C= " ; A , B , C
       Formel = Formel + Blnr3
       Formel = Formel + A : Print Formel
       Formel = 1 / Formel : Print Formel
       Temp_ausgabe = Formel - 273.15                           'Formel = Formel - 273.15
                                                                'Formel = Formel * 10
                                                                'Formel = Round(formel)
                                                                'Temp_ausgabe = Formel / 10
       Locate 2 , 1 : Lcd Temp_ausgabe ; ""
       If Temp_ausgabe > 10 Then
       Led1 = 1
    '...etc weitere LEDs
       Loop
    End
    hier jetzt einmal nur der code und die formel-links.
    bei bedarf EXCEL-berechnung für ABC-parameter (für andere widerstandswerte) anfordern.
    danke Euch und liebe grüße
    Marcel

    http://home.arcor.de/fuenfundachtzig/thermo/thermo.htm
    http://de.wikipedia.org/wiki/Hei%C3%9Fleiter
    http://www.elexs.de/kap2_4.htm
    Geändert von igelstein (20.03.2011 um 19:15 Uhr)

  5. #5
    Benutzer Stammmitglied Avatar von igelstein
    Registriert seit
    08.02.2011
    Ort
    pinnenhöfen 3
    Alter
    78
    Beiträge
    38
    nachdem der code doch ziemlich flickwerk ist, hier das wesentliche. die formeln 1., 2., 3. sind aus den oben genannten quellen:
    2. entsteht aus 1. durch umformen.

    diese hab ich dann für meine zwecke eingerichtet: (4.)

    3. ist die Steinhart-Hart-Gleichung, mit der man die (in meinem fall extrem) nicht-lineare kennlinie des NTC hinbiegt.

    Hast Du in simulations Code ganz oben en $SIM stehen?
    habs probiert: und DANKE!
    dafür verlangt Bascom jetzt für eine einfache log-datei die CONFIG_AVR-DOS.bas und die sprengt dann meinen SRAM. es ist zum ...
    fürchte aber, dass das problem mit TurboPascal auch nicht geändert wird, denn die muss ja auch die unit "dos" hochladen?!. SRAM erweitern? anderen µC? zum installateur gehen?
    jedenfalls dank ich Euch einmal.
    lg
    Marcel
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken 1_formel_fuer_RN.jpg   3_formeln_fuer_RN.jpg  
    Geändert von igelstein (22.03.2011 um 11:23 Uhr) Grund: rechtschreibung, ergänzung

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von igelstein Beitrag anzeigen
    habs probiert: und DANKE!
    dafür verlangt Bascom jetzt für eine einfache log-datei die CONFIG_AVR-DOS.bas und die sprengt dann meinen SRAM. es ist zum ...
    fürchte aber, dass das problem mit TurboPascal auch nicht geändert wird, denn die muss ja auch die unit "dos" hochladen?!. SRAM erweitern? anderen µC? zum installateur gehen?
    jedenfalls dank ich Euch einmal.
    lg
    Marcel
    ????? Was verstehst Du unter "umfangreiche Log Datei"? Warum will AVR-DOS installiert werden? Soll der µC eine Log Datei erstellen? Oder hast Du irgendwo Hardware Debug eingestellt? RÄTSEL...so etwas hatte (ich) jedenfalls unter $SIM noch nie.

    Gruß Richard

  7. #7
    Benutzer Stammmitglied Avatar von igelstein
    Registriert seit
    08.02.2011
    Ort
    pinnenhöfen 3
    Alter
    78
    Beiträge
    38
    servus,
    "einfache" logdatei
    Code:
     open "xy.log" for output as #1"
    .
    ja, der µC soll eine temperatur-log erstellen. und auf den open-befehl hat er die INCLUDE-datei verlangt, weil "Error 211: External routines not found". daraufhin hab ich diverse foren geblättert, und dort war eindeutig zu lesen: es muss diese DOS-bas includiert werden. hab ich gemacht, und die hat mein SRAM nicht derpackt.
    ps: ich habs natürlich auch mit open-festplatten-pfadangabe versucht.
    lg
    Marcel
    Geändert von igelstein (22.03.2011 um 15:05 Uhr) Grund: formatierung

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    (ist es wirklich so kompliziert, dass man sich aus dem ADC (0-1023) erstens den widerstand (OHM sei dank) und daraus die temperatur (hier seien Steinhart&Hart lobend erwähnt) berechnen muss? und das in BASCOM??? ich habs gemacht, es funktioniert; aber da müsz ja einen direkteren weg geben?
    Wie hast du das denn genau gemacht?

    Ich finds aber immer wieder erstaunlich wie Bascom Programmierer reagieren, wenn sie doch mal was selbst machen müssen...

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Das liegt daran das keiner weiß was z.B. "Print" auf derm µC wirklich macht, bei C ist das etwas aber nicht wirklich anders. Wer ernsthaft Beruflich oder als totaler freak programmieren will kommt zumindest um ASM Grundlagen nicht herum denn da schaufelt man die Bit's quasi von Hand in die entsprechenden Register. Aber das ist ein Steiniger Weg, vor allem wenn auch noch verschiedene µC programmiert werden sollen dessen Register unterschiedlich verteilt sind.

    Gruß Richard

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Ja da hast du aufjedenfall recht, nur wollte ich darauf noch nicht einmal hinaus.
    Für meine jetztigen Projekte benutze ich .NET C# und das ist alles, nur nicht hardwarenah

    Naja, aber ich bin was das angeht mal still, das wird sonst wieder ne lange Diskusion.

    @igelstein
    Wie sieht denn nun dein Code zum "umrechnen" aus?

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test