Daten : Speichereffizent speichern und auswerten : Temperatur

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Alex_T wrote:

    ist es:
    T=a*U+b
    oder T=a*(U+b)

    T = Temperatur ( Fahrenheit / Celsius ? )
    a = Steigung ( in % ? )
    b = Datenblatt 3380 K
    U = Spannung in Volt?
    der Term ohne Klammern ist der richtige.
    Das ist eine ganz klassische lineare Gleichung, hast du das nicht in der Schule gehabt?
    a ist einfach ein Faktor und b ist der Offset

    Alex_T wrote:

    Ich müsste mir keine genauen Gedanken mehr um Kühlkörperdimensionierung oder Hitzeableitung machen sondern würde die Leistung einfach über einen NTC über die Temperatur regeln.
    Du machst dir Gedanken in die falsche Richtung. Wenn du einen Leistungstransistor herunterregeln musst, damit er nicht zu warm wird, brauchst du auch keinen Leistungs-Transistor.
    Berechne lieber den Kühlkörper, das stärkt den Geist ;)


    Pluto25 wrote:

    Bei 5V? Da Wären 10k Vorwiderstand besser:
    ja, genauso wird es normalerweise gemacht

    Alex_T wrote:

    Und hier ist der Sourcecode mit Problemen ohne Ende:
    da fehlt was
  • bitlogger wrote:

    Warum so kompliziert? Ich verwende für ähnliche Dinge (Teich, Zisterne) jeweils einen DS18B20 in wasserdichter Ausführung.
    Benötigt nur 2 Leitungen, liefert genaue Werte, ist kostengünstig.
    Ja, der NTC benötigt auch nur 2 Leitungen und liefert genaue Werte.
    Diesen mit einem AVR anzusteuern ist die Aufgabe und die meisten hier können am Lösungsweg bestimmt was lernen.
    Die Tabelle von Pluto in eine Funktion (T=f(U)) umsetzen und der NTC ist Grad-genau.
  • Grad-genau sind die meist nicht. Sie haben Fertigungstoleranzen unterschiedliche B-Werte, sind unlinear usw. Damit muss man einigen Aufwand mehr betreiben als mit den DS18B20 und ähnlichen Typen.
    Lernen kann man mit den DS18.... auch einiges, der Umgang mit diesen Bauelementen ist auch nicht kinderleicht.
    Eines gefällt mir an den von mir empfohlenen Sensoren nicht so ganz. Hat man mehrere davon in einer Anwendung,kann man die zwar über ihre ID-Nummer auswählen, zuordnen. Fällt aber einer aus, oder ist zu ersetzen, dann ist das nicht mehr so einfach wie mit den NTC's.

    Lernen könnte man dann, nicht die Bauteiltypische ID zu verwenden, sondern in den Scratch eine eigene Nummer programieren und Bauteil darüber zuordnen, identifizieren.

    Hier noch ein Link, bzw Suchauftrag zu den NTC - PTC Kennlinien:
    google.com/search?q=kennlinien…6BAgGEAE&biw=1684&bih=934
  • Ich benutze in meinen Steuerungen beides, für den Teich und die Heizung jeweils den DS18B20, einer liegt auch schon seit 2 Jahren in Teich und ist bisher dicht. Da diese vergossen sind, sollte es auch so bleiben.

    Wenn man genug Eingänge frei hat, kann man an jeden Eingang einen DS18B20 anschließen, dann hat man das Problem mit der Adresse nicht.

    Für die Steuerung der Pumpe und die Sonnenkollektoren benutze ich einen DS18B20 für die Speichertemperatur und einen NTC für die Kollektor Temperatur, da diese bis 140 ° hoch geht.

    Auf dieser Seite kann man sich die Werte für eine Data Tabelle berechnen lassen. Wen man die Daten des NTC hat und einen sehr genauen Vorwiederstand, wenigstens 0,1 % ist das Ergebnis sehr gut.

    preis-ing.de/en/extras/werkzeu…tor-for-ntc-lookup-table/
  • [quote] Bella-Amica schrieb:
    Auf dieser Seite kann man sich die Werte für eine Data Tabelle berechnen lassen. Wen man die Daten des NTC hat und einen sehr genauen Vorwiederstand, wenigstens 0,1 % ist das Ergebnis sehr gut.

    preis-ing.de/en/extras/werkzeu…tor-for-ntc-lookup-table/
    [/quote]Hallo,

    ich habe meine Daten auf der Seite eingegeben.
    Mein Problem ist nun.
    Dabei kommt fast immer negative Werte mit raus.
    Das kann doch nicht stimmen, oder?

    Grüße
    Alex

    Source Code

    1. /*
    2. * Die NTC Tabelle, bestehend aus 129 Temperaturstützpunkten.
    3. * Einheit:1 °C
    4. */
    5. int NTC_table[129] = {
    6. 650, 534, 418, 364, 330, 306, 288, 273, 261,
    7. 251, 242, 234, 226, 220, 214, 209, 204, 199,
    8. 195, 191, 187, 183, 180, 177, 173, 171, 168,
    9. 165, 162, 160, 157, 155, 153, 151, 148, 146,
    10. 144, 142, 140, 139, 137, 135, 133, 132, 130,
    11. 128, 127, 125, 123, 122, 120, 119, 117, 116,
    12. 115, 113, 112, 110, 109, 108, 106, 105, 104,
    13. 102, 101, 100, 98, 97, 96, 95, 93, 92, 91,
    14. 90, 88, 87, 86, 85, 83, 82, 81, 80, 78, 77,
    15. 76, 75, 73, 72, 71, 70, 68, 67, 66, 64, 63,
    16. 62, 60, 59, 58, 56, 55, 53, 52, 50, 49, 47,
    17. 46, 44, 42, 40, 39, 37, 35, 33, 31, 28, 26,
    18. 23, 21, 18, 15, 11, 7, 3, -2, -8, -17, -30,
    19. -43
    20. };
    21. /*
    22. * \brief Konvertiert das ADC Ergebnis in einen Temperaturwert.
    23. *
    24. * Mit p1 und p2 wird der Stützpunkt direkt vor und nach dem
    25. * ADC Wert ermittelt. Zwischen beiden Stützpunkten wird linear
    26. * interpoliert. Der Code ist sehr klein und schnell.
    27. * Es wird lediglich eine Ganzzahl-Multiplikation verwendet.
    28. * Die Division kann vom Compiler durch eine Schiebeoperation
    29. * ersetzt werden.
    30. *
    31. * Im Temperaturbereich von -15°C bis 30°C beträgt der Fehler
    32. * durch die Verwendung einer Tabelle 1.091°C
    33. *
    34. * \param adc_value Das gewandelte ADC Ergebnis
    35. * \return Die Temperatur in 1 °C
    36. *
    37. */
    38. int NTC_ADC2Temperature(unsigned int adc_value){
    39. int p1,p2;
    40. /* Stützpunkt vor und nach dem ADC Wert ermitteln. */
    41. p1 = NTC_table[ (adc_value >> 3) ];
    42. p2 = NTC_table[ (adc_value >> 3)+1];
    43. /* Zwischen beiden Punkten linear interpolieren. */
    44. return p1 - ( (p1-p2) * (adc_value & 0x0007) ) / 8;
    45. };
    46. /*
    47. Copyright (C) Preis Ingenieurbüro GmbH
    48. Licensed under the Apache License, Version 2.0 (the "License").
    49. you may not use this file except in compliance with the License.
    50. You may obtain a copy of the License at
    51. http://www.apache.org/licenses/LICENSE-2.0
    52. Unless required by applicable law or agreed to in writing, software
    53. distributed under the License is distributed on an "AS IS" BASIS,
    54. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    55. See the License for the specific language governing permissions and
    56. limitations under the License.
    57. */
    58. Overview
    59. Tools for Engineers
    60. Power of emitted thermal radiation
    61. C-code generator for NTC lookup table
    62. Self-heating of components (adiabatic)
    63. Self-heating of conductor paths (adiabatic)
    64. PCB capacitor
    65. Magnetic reluctance
    66. Thermal resistance
    67. Resistance
    68. Resistance of vias
    69. Upload
    70. Downloads for all products
    Display All
  • Ich kann den C-Code lesen, und verstehe was da passiert.
    Wir sind hier aber eigentlich im Bascom-Forum.

    Aber ich möchte dir trotzdem folgenden Hinweis geben.

    Ich würde mal drauf tippen, dass
    • entweder die berechneten ADC-Werte (Tabelleninhalt) nicht mit deiner Sensor-Beschaltung korrelliert,
    • oder die Berechnung in Zeile 44 nicht stimmt. Die Interpolation der 2 Punke ist für mich nicht nachvollziehbar.
    Wie sind denn deine C-Kenntnisse?
  • Alex_T wrote:

    int NTC_ADC2Temperature(unsigned int adc_value){
    int p1,p2;
    /* Stützpunkt vor und nach dem ADC Wert ermitteln. */
    p1 = NTC_table[ (adc_value >> 3) ];
    p2 = NTC_table[ (adc_value >> 3)+1];
    /* Zwischen beiden Punkten linear interpolieren. */
    return p1 - ( (p1-p2) * (adc_value & 0x0007) ) / 8;
    };
    Hallo,

    ich verstehe den Code nicht.
    Der Code ist aus dem Link von Bella-Amica dort ist so ein Tool das dass als C-Code ausgiebt.
    Ich hab mal vor einer Zeit eine weile lang in C-gebastelt. Inzwischen ist das anscheinend solange her das C-Code nur noch bedingt verstehe.

    Ich weiß nicht wie ich diesen Code am besten in Bascom übersetzen soll.
    Vielleicht mit einer for-Schleife in der ich den Wert aus der DAta Tabelle mit dem Wert des ADC vergleiche.
    Solange er kleiner als der TAbellen wert ist Wert+1 = Temperatur?

    Ich bin mir auch nicht sicher ob die Tabelle stimmt. Der ADC-Wert liegt bei mir zwischen 1016 und 874, die Tabelle scheint aber völlig andere Werte auszugeben.

    Obwohl die Daten stimmen müssten. Pull Up Resistor 1k ist doch ein ein 1k Widerstand an plus?

    Sobald ich die drei bestellten PT100 aus China bekomme - werd ich mir was basteln um die Werte so genau wie möglich zu ermitteln. Hab vor mir einiges mit diesen billigen NTCs zu basteln.

    Grüße
    Alex
  • Ist eigentlich ganz einfach, der Link berechnet nur die Werte für die Data Zeile.
    Es gibt auch irgendwo eine Seite die die Werte für Basic berechnet, habe ich nur nicht mehr gefunden.

    Wenn du es ganauer haben willst, lass die die Tabelle für 1023 Werte berechnen. Wichtig ist nur, das du den "ß" Wert kennst



    '--- Solar Temperatur ----------------------------------
    Dummy = Getadc(1) 'Wert von Solar einlesen

    Dummy = Dummy / 4 'Auf 255 bit setzen (Brauche ich nicht so exact)
    Temp_solar_ist = Lookup(dummy , Ntc_wert) 'NTC Temperatur aus Tabelle lesen


    '--------------------------------------------------------------------------------------------------------------------------------
    '--- Temperatur Tabelle 10k NTC Widerstand--------------------------------------------------------------------------------------
    '--------------------------------------------------------------------------------------------------------------------------------


    Ntc_wert:
    '--- Tabelle für 10k NTC mit 10k Pullup und ß=3950 -------------------------------------------------------------------------


    Data 290% , 281% , 239% , 197% , 175% , 161% , 150% , 142% , 135% , 129% ' '0...10
    Data 124% , 120% , 116% , 113% , 110% , 107% , 104% , 102% , 99% ' '11..19
    Data 97% , 95% , 93% , 91% , 90% , 88% , 87% , 85% , 84% , 82% , 81% ' '20..30
    Data 80% , 79% , 77% , 76% , 75% , 74% , 73% , 72% , 71% , 70% , 69% ' '31..41
    Data 68% , 68% , 67% , 66% , 65% , 64% , 64% , 63% , 62% , 61% , 61% ' '42..52
    Data 60% , 59% , 59% , 58% , 57% , 57% , 56% , 55% , 55% , 54% , 54% ' '53..63
    Data 53% , 53% , 52% , 51% , 51% , 50% , 50% , 49% , 49% , 48% , 48% ' '64..74
    Data 47% , 47% , 46% , 46% , 45% , 45% , 44% , 44% , 43% , 43% , 42% ' '75..85
    Data 42% , 42% , 41% , 41% , 40% , 40% , 39% , 39% , 39% , 38% , 38% ' '86..96
    Data 37% , 37% , 37% , 36% , 36% , 35% , 35% , 35% , 34% , 34% , 33% ' '97..107
    Data 33% , 33% , 32% , 32% , 32% , 31% , 31% , 30% , 30% , 30% , 29% ' '108..118
    Data 29% , 29% , 28% , 28% , 27% , 27% , 27% , 26% , 26% , 26% , 25% ' '119..129
    Data 25% , 25% , 24% , 24% , 24% , 23% , 23% , 23% , 22% , 22% , 22% ' '130..139
    Data 21% , 21% , 20% , 20% , 20% , 19% , 19% , 19% , 18% , 18% , 18% ' '140..150
    Data 17% , 17% , 17% , 16% , 16% , 16% , 15% , 15% , 15% , 14% , 14% ' '151..161
    Data 14% , 13% , 13% , 13% , 12% , 12% , 11% , 11% , 11% , 10% , 10% ' '162..172
    Data 10% , 9% , 9% , 9% , 8% , 8% , 8% , 7% , 7% , 6% , 6% , 6% , 5% , 5% ' '173..186
    Data 5% , 4% , 4% , 3% , 3% , 3% , 2% , 2% , 1% , 1% , 1% , 0% , 0% , -1% ' '187..200
    Data -1% , -2% , -2% , -2% , -3% , -3% , -4% , -4% , -5% , -5% , -6% ' '201
    Data -6% , -7% , -7% , -8% , -8% , -9% , -9% , -10% , -10% , -11% ' '222
    Data -11% , -12% , -13% , -13% , -14% , -14% , -15% , -16% , -16% ' '231
    Data -17% , -18% , -19% , -19% , -20% , -21% , -22% , -23% , -24% ' '240
    Data -25% , -26% , -27% , -28% , -29% , -30% , -32% , -33% , -35% ' '249
    Data -36% , -38% , -40% , -43% , -46% , -50% , -55% , -60% , -60% ' '258
  • Bella-Amica wrote:

    Ist eigentlich ganz einfach, der Link berechnet nur die Werte für die Data Zeile.
    Es gibt auch irgendwo eine Seite die die Werte für Basic berechnet, habe ich nur nicht mehr gefunden.

    Wenn du es ganauer haben willst, lass die die Tabelle für 1023 Werte berechnen. Wichtig ist nur, das du den "ß" Wert kennst



    '--- Solar Temperatur ----------------------------------
    Dummy = Getadc(1) 'Wert von Solar einlesen

    Dummy = Dummy / 4 'Auf 255 bit setzen (Brauche ich nicht so exact)
    Temp_solar_ist = Lookup(dummy , Ntc_wert) 'NTC Temperatur aus Tabelle lesen
    Nein, das ist es nicht ->Einfach.

    Mein Problem ist das dass Tool Werte für ADC von -43 bis +600 berechnet.
    ->ADC 1024stel nicht Temperatur. Bei einem gewählten Wertebereich von -10°C bis +30°C.

    Experimentell ermittelt geht der ADC aber nur von 1016 bis 873.
    Invertiert da Widerstand zwischen NTC und VCC sitzt und nicht wie üblich an GND.
    Auch habe ich nur ein 1k gewählt da ich Angst wegen meinen langen Leitungen hatte.

    Ich habe den NTC über einen 1k PullUp Widerstand verbunden und im Tool auch so angegeben. Dennoch gibt das Tool völllig Sinnfreie Werte aus.

    Das übertragen auf Bascom hab ich schon irgendwie zusammengebastellt.

    Nur das Tool funktioniert einfach nicht ->Webseite mein B-Wert ist 3380
    Hier das Datenblatt zu meinen NTC:
    pollin.de/productdownloads/D220757B.PDF


    Source Code

    1. /*
    2. * Die NTC Tabelle, bestehend aus 1024 Temperaturstützpunkten.
    3. * Einheit:1 °C
    4. */
    5. int NTC_table[1024] = {
    6. 1733, 1334, 935, 782, 695, 636, 593, 560,
    7. 534, 511, 492, 476, 462, 449, 438, 427, 418,
    8. 409, 401, 394, 387, 381, 375, 369, 364, 359,
    9. 354, 350, 346, 342, 338, 334, 330, 327, 324,
    10. 321, 318, 315, 312, 309, 306, 304, 301, 299,
    11. 297, 295, 292, 290, 288, 286, 284, 282, 280,
    12. 279, 277, 275, 273, 272, 270, 269, 267, 266,
    13. 264, 263, 261, 260, 258, 257, 256, 254, 253,
    14. 252, 251, 250, 248, 247, 246, 245, 244, 243,
    15. 242, 241, 240, 239, 238, 237, 236, 235, 234,
    16. 233, 232, 231, 230, 229, 228, 227, 226, 226,
    17. 225, 224, 223, 222, 222, 221, 220, 219, 218,
    18. 218, 217, 216, 216, 215, 214, 213, 213, 212,
    19. 211, 211, 210, 209, 209, 208, 207, 207, 206,
    20. 206, 205, 204, 204, 203, 203, 202, 201, 201,
    21. 200, 200, 199, 199, 198, 197, 197, 196, 196,
    22. 195, 195, 194, 194, 193, 193, 192, 192, 191,
    23. 191, 190, 190, 189, 189, 188, 188, 187, 187,
    24. 186, 186, 185, 185, 185, 184, 184, 183, 183,
    25. 182, 182, 182, 181, 181, 180, 180, 179, 179,
    26. 179, 178, 178, 177, 177, 177, 176, 176, 175,
    27. 175, 175, 174, 174, 173, 173, 173, 172, 172,
    28. 172, 171, 171, 171, 170, 170, 169, 169, 169,
    29. 168, 168, 168, 167, 167, 167, 166, 166, 166,
    30. 165, 165, 165, 164, 164, 164, 163, 163, 163,
    31. 162, 162, 162, 161, 161, 161, 160, 160, 160,
    32. 160, 159, 159, 159, 158, 158, 158, 157, 157,
    33. 157, 157, 156, 156, 156, 155, 155, 155, 154,
    34. 154, 154, 154, 153, 153, 153, 153, 152, 152,
    35. 152, 151, 151, 151, 151, 150, 150, 150, 150,
    36. 149, 149, 149, 148, 148, 148, 148, 147, 147,
    37. 147, 147, 146, 146, 146, 146, 145, 145, 145,
    38. 145, 144, 144, 144, 144, 143, 143, 143, 143,
    39. 142, 142, 142, 142, 141, 141, 141, 141, 140,
    40. 140, 140, 140, 140, 139, 139, 139, 139, 138,
    41. 138, 138, 138, 137, 137, 137, 137, 137, 136,
    42. 136, 136, 136, 135, 135, 135, 135, 135, 134,
    43. 134, 134, 134, 133, 133, 133, 133, 133, 132,
    44. 132, 132, 132, 132, 131, 131, 131, 131, 130,
    45. 130, 130, 130, 130, 129, 129, 129, 129, 129,
    46. 128, 128, 128, 128, 128, 127, 127, 127, 127,
    47. 127, 126, 126, 126, 126, 126, 125, 125, 125,
    48. 125, 125, 124, 124, 124, 124, 124, 123, 123,
    49. 123, 123, 123, 122, 122, 122, 122, 122, 121,
    50. 121, 121, 121, 121, 121, 120, 120, 120, 120,
    51. 120, 119, 119, 119, 119, 119, 119, 118, 118,
    52. 118, 118, 118, 117, 117, 117, 117, 117, 116,
    53. 116, 116, 116, 116, 116, 115, 115, 115, 115,
    54. 115, 115, 114, 114, 114, 114, 114, 113, 113,
    55. 113, 113, 113, 113, 112, 112, 112, 112, 112,
    56. 112, 111, 111, 111, 111, 111, 110, 110, 110,
    57. 110, 110, 110, 109, 109, 109, 109, 109, 109,
    58. 108, 108, 108, 108, 108, 108, 107, 107, 107,
    59. 107, 107, 107, 106, 106, 106, 106, 106, 106,
    60. 105, 105, 105, 105, 105, 105, 104, 104, 104,
    61. 104, 104, 104, 103, 103, 103, 103, 103, 103,
    62. 102, 102, 102, 102, 102, 102, 101, 101, 101,
    63. 101, 101, 101, 101, 100, 100, 100, 100, 100,
    64. 100, 99, 99, 99, 99, 99, 99, 98, 98, 98,
    65. 98, 98, 98, 97, 97, 97, 97, 97, 97, 97, 96,
    66. 96, 96, 96, 96, 96, 95, 95, 95, 95, 95, 95,
    67. 94, 94, 94, 94, 94, 94, 94, 93, 93, 93, 93,
    68. 93, 93, 92, 92, 92, 92, 92, 92, 91, 91, 91,
    69. 91, 91, 91, 91, 90, 90, 90, 90, 90, 90, 89,
    70. 89, 89, 89, 89, 89, 89, 88, 88, 88, 88, 88,
    71. 88, 87, 87, 87, 87, 87, 87, 87, 86, 86, 86,
    72. 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 84,
    73. 84, 84, 84, 84, 84, 83, 83, 83, 83, 83, 83,
    74. 83, 82, 82, 82, 82, 82, 82, 81, 81, 81, 81,
    75. 81, 81, 81, 80, 80, 80, 80, 80, 80, 79, 79,
    76. 79, 79, 79, 79, 78, 78, 78, 78, 78, 78, 78,
    77. 77, 77, 77, 77, 77, 77, 76, 76, 76, 76, 76,
    78. 76, 76, 75, 75, 75, 75, 75, 75, 74, 74, 74,
    79. 74, 74, 74, 73, 73, 73, 73, 73, 73, 73, 72,
    80. 72, 72, 72, 72, 72, 71, 71, 71, 71, 71, 71,
    81. 70, 70, 70, 70, 70, 70, 70, 69, 69, 69, 69,
    82. 69, 69, 68, 68, 68, 68, 68, 68, 67, 67, 67,
    83. 67, 67, 67, 66, 66, 66, 66, 66, 66, 65, 65,
    84. 65, 65, 65, 65, 64, 64, 64, 64, 64, 64, 63,
    85. 63, 63, 63, 63, 63, 62, 62, 62, 62, 62, 62,
    86. 61, 61, 61, 61, 61, 61, 60, 60, 60, 60, 60,
    87. 60, 59, 59, 59, 59, 59, 59, 58, 58, 58, 58,
    88. 58, 57, 57, 57, 57, 57, 57, 56, 56, 56, 56,
    89. 56, 56, 55, 55, 55, 55, 55, 54, 54, 54, 54,
    90. 54, 54, 53, 53, 53, 53, 53, 52, 52, 52, 52,
    91. 52, 51, 51, 51, 51, 51, 50, 50, 50, 50, 50,
    92. 50, 49, 49, 49, 49, 49, 48, 48, 48, 48, 48,
    93. 47, 47, 47, 47, 47, 46, 46, 46, 46, 46, 45,
    94. 45, 45, 45, 44, 44, 44, 44, 44, 43, 43, 43,
    95. 43, 43, 42, 42, 42, 42, 41, 41, 41, 41, 41,
    96. 40, 40, 40, 40, 39, 39, 39, 39, 39, 38, 38,
    97. 38, 38, 37, 37, 37, 37, 36, 36, 36, 36, 35,
    98. 35, 35, 35, 34, 34, 34, 34, 33, 33, 33, 33,
    99. 32, 32, 32, 32, 31, 31, 31, 31, 30, 30, 30,
    100. 29, 29, 29, 29, 28, 28, 28, 27, 27, 27, 26,
    101. 26, 26, 26, 25, 25, 25, 24, 24, 24, 23, 23,
    102. 23, 22, 22, 22, 21, 21, 21, 20, 20, 20, 19,
    103. 19, 19, 18, 18, 17, 17, 17, 16, 16, 16, 15,
    104. 15, 14, 14, 13, 13, 13, 12, 12, 11, 11, 10,
    105. 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3,
    106. 2, 2, 1, 1, 0, -1, -1, -2, -3, -3, -4, -5,
    107. -6, -7, -7, -8, -9, -10, -11, -12, -13, -14,
    108. -15, -17, -18, -19, -21, -22, -24, -26, -27,
    109. -30, -32, -35, -38, -41, -46, -52, -58
    110. };
    Display All
    Siehst du?
    Das Tool gibt Werte aus für ADC -58 bis +1733 - das ist doch völliger UNSINN!

    Wenn ich nur die Temperatur von -10 bis +30°C messen will müsste hier doch nur ein kleiner Teilbereich der 1024 erscheinen oder? und nicht über die 1024 hinauß oder?
    Den schließlich nutze ich ja nicht den kompletten Meßbereich des NTC also ist es doch unmöglich die vollen 1024 des ADC abzudecken. Den die Spannung kann doch nie von 0 bis 5 Volt am ADC sein.

    Grüße
    Alex
    Files
    • Ing-Tool-1.jpg

      (63.03 kB, downloaded 8 times, last: )
  • Entschuldige wenn das jetzt unhöflich Klingt: Du erscheinst beratungsresistent.

    Alex_T wrote:

    möglichst Speichereffizent
    und dann eine 2k Tabelle?
    Der Leitungswiderstand biegt die Kennlinie ein wenig gerader. Und stört gar nicht solange hier kein roter Riese ist. Ein höherer Vorwiderstand und fertig.
    Hier im Forum ist irgendwo eine Routine die sogar den B Wert errechnen kann. Dort ist auch ein Rechenweg den Wert präzise auszugeben. Mir ist das zu Flashhunrig aber es ist immer noch kleiner als Deine Tabelle. Welche Präzision wird angestrebt? Die Herren vom Eichamt schon bestellt? :D
    War nicht irgendwo die Rede von 1°C Genauigkeit?
  • Pluto25 wrote:

    Entschuldige wenn das jetzt unhöflich Klingt: Du erscheinst beratungsresistent.
    Inwiefern?
    Ich verstehe das ganze einfach nicht.
    Ich will die Werte von -10 bis +40°C haben demanch muss ich doch nur die 1024stel für diese Werte haben und die zwischenwerte kann ich dann doch einach abfragen mit z.B., oder?

    Source Code

    1. For Var_x = 1 To 50
    2. Var_temp_data = Lookup(var_x , Temperatur_tabelle)
    3. Var_zahl = Var_x + 1
    4. Var_temp_data_2 = Lookup(var_zahl , Temperatur_tabelle)
    5. If Var_temp_data >= Var_temp And Var_temp < Var_temp_data_2 Then
    6. Exit For
    7. Var_temp = Var_x
    8. End If
    9. Next For
    10. End
    11. 'Werte -10°C bis 40°C
    12. Temperatur_tabelle:
    13. Data 1001 , 1000 , 999 , 997 , 996 , 995 , 994 , 992 , 991 , 990
    14. Data 998
    15. Data 987 , 985 , 983 , 982 , 980 , 978 , 976 , 974 , 972 , 970
    16. Data 968 , 966 , 964 , 961 , 959 , 956 , 954 , 951 , 949 , 946
    17. Data 943 , 940 , 937 , 934 , 931 , 928 , 924 , 921 , 918 , 914
    18. Data 910 , 907 , 903 , 899 , 895 , 891 , 887 , 883 , 878 , 874
    Display All



    Das Tool dürfte doch dann nur Werte von 0 bis etwa 250 ausgeben (ADC-Wert)
    Da der NTC bei einer Messung von -10 bis 40°C niemals den ganzen Widerstandbereich des NTC abdecken kann oder?
    Es kann doch nie ein Wert von 0 oder 5 Volt anliegen, oder?
    Sondern nur ein begrenzter Wertebereich von vielleicht 0 bis 2 oder 3 Volt demanch kann der ADC auch nur z.B. 0bis 410.
    Bei meiner PullUp Variante müsste es dann z.B. 5 bis 3/2Volt sein.
    Da dieser Messbereich nur einen begrentzen Wertebereich des NTC abdeckt oder?

    The post was edited 1 time, last by Alex_T ().

  • Pluto25 wrote:

    und dann eine 2k Tabelle?Der Leitungswiderstand biegt die Kennlinie ein wenig gerader. Und stört gar nicht solange hier kein roter Riese ist. Ein höherer Vorwiderstand und fertig.
    Hier im Forum ist irgendwo eine Routine die sogar den B Wert errechnen kann. Dort ist auch ein Rechenweg den Wert präzise auszugeben. Mir ist das zu Flashhunrig aber es ist immer noch kleiner als Deine Tabelle. Welche Präzision wird angestrebt? Die Herren vom Eichamt schon bestellt? :D
    War nicht irgendwo die Rede von 1°C Genauigkeit?
    Sorry, hab den Rest deines Posts gerade erst gelesen.
    Um die Ursprungsfrage geht es inzwischen hier nicht mehr.

    Bella-Amica hat mir so einen Link zu einem Tool gezegt.
    Welches die ADC-Werte errechnen soll.
    Leider funktioniert das für mich überhaupst nicht und ich verstehe das Tool auch überhaupst nicht.
    Warum gibt dieses Tool Werte von minus irgendwas bis +1700 aus.
    Ich kann leider die Werte nur begrenzt Experimentell ermitteln.
    Da ich die NTCs vergossen habe und sich ihr Wert zu langsam ändert.

    Der Zeitverzug zwischen meinen Referenzthermometer und dem gebastelten liegt bei einigem.

    Bella-Amica wrote:

    preis-ing.de/en/extras/werkzeu…tor-for-ntc-lookup-table/
  • Alex_T wrote:

    Um die Ursprungsfrage geht es inzwischen hier nicht mehr.
    Dann sollten wir den Thread an dieser Stelle als beendet ansehen.
    Lösungsvorschläge zu der Ursprungsfrage gab es ja sehr viele. (ICH würde nach wie vor eine lineare Gleichung benutzen.)

    Wenn es Probleme mit dem verlinkten Tool geben sollte, dann kann vielleicht der Ersteller des verlinkten Tools helfen.