FIS für Motorrad

Hi

Vll. hilfts: NTC Negativer Temperatur Coeffizient (im Deutschen mit K geschrieben) PTC Positiver Temperatur Coeffizient

Bei Positiver Temperatur-Änderung hat ein PTC eine Positive Widerstands-Änderung (Temp und R 'gehen in die gleiche Richtung') Bei Positiver Temperatur-Änderung hat ein NTC eine Negative Widerstands-Änderung (die 'Richtungen' sind vertauscht)

Metalle sind PTCs

MfG

@Nowe101 Du hast in deinem Fritzing-Bild einen dicken Fehler. Da wird +3,3 V und +5 V zusammengeschlossen. Kurzschluss.

Deswegen sind diese Fritzing-Bilder nicht gern gesehen.

@HotSystems

:o Danke für den Hinweis! Schon ausgebessert.

Nowe101:
@HotSystems

:o Danke für den Hinweis! Schon ausgebessert.

Prima…gerne.

okay, besten dank.

habe den sensor nun so einmal verkabelt.. muss ich nur mal nach einem sketc suchen um die werte zuerhalten

Hallo Aceli,

Wenn es sich tätsächlich um einen NTC-Sensor handelt könntest du folgenden Sketch versuchen. Du müsstest nur die Koeffizienten A_2, B_2, C_2 und den FESTWIDERSTAND_2 auf deine Werte ausbessern.

Dieser Sketch ist auf einen einzelnen 10 kOhm NTC-Sensor ausgelegt und einen 10 kOhm Festwiderstand ausgelegt!

Die Ausgabe der Messwerte erfolgt über die Serielle Schnittstell. Zu sehen im Serial Monitor Es wird alle 5 Sekunden ein Messwert ausgegeben.

#define MESSFUEHLER A0  // Messfühler

#define EINZELMESSUNGEN 25  // Das verändern der Zahl ändert auch die Anzahl der Einzelmessungen.

#define A_2 1.130480394e-03   // A-Koeffizient des Messfühlers
#define B_2 2.338982432e-04   // B-Koeffizient des Messfühlers
#define C_2 0.8863706422e-07  // C-Koeffizient des Messfühlers

#define FESTWIDERSTAND_2 10000  // Widerstandswert des Serienfestwiderstandes des Messfühlers

uint16_t SUM_EM_2[EINZELMESSUNGEN];

void setup(void) {
  Serial.begin(9600);
}

void loop(void) {
  uint8_t i;
  float DURCHSCHNITT_2;
  float R2_2, lnR2_2;
  float TEMP_2;

// Hier werden die Einzelmessungen des Messfühlers vorgenommen.
// Zwischen den Messungen gibt es eine Wartezeit von 10 Millisekunden.
    
  for (i=0; i< EINZELMESSUNGEN; i++) {
   SUM_EM_2[i] = analogRead(MESSFUEHLER);
   delay(10);
  }

// Berechnung des Durchschnittswertes aller Einzelmessungen des Messfühlers.
    
  DURCHSCHNITT_2 = 0;
  for (i=0; i< EINZELMESSUNGEN; i++) {
     DURCHSCHNITT_2 += SUM_EM_2[i];
  }
  DURCHSCHNITT_2 /= EINZELMESSUNGEN;

// Berechnung der Temperatur mit Steinhart-Hart Gleichung

  R2_2 = FESTWIDERSTAND_2* (1023.0 / (float)DURCHSCHNITT_2 - 1.0);
  lnR2_2 = log(R2_2);
  TEMP_2 = (1.0 / (A_2 + B_2*lnR2_2 + C_2*lnR2_2*lnR2_2*lnR2_2));  // Steinhart-Hart Gleichung. T  = 1 / {A + B[ln(R)] + C[ln(R)]^3}
  TEMP_2 =  TEMP_2 - 273.15;

// Der nachfolgende Teil sendet die Daten zusätzlich über den seriellen Port.

  Serial.print("Temperatur:     ");
  Serial.print(TEMP_2);          // Hier wird der Temperaturwert des Messfühlers vom Arduino an den seriellen Port gesendet.
  Serial.println(" °C");
  Serial.println();
  

// Nach 5 Sekunden Wartezeit wird eine neue Messung der Temperaturen vorgenommen.

  delay(5000);
}

Schöne Grüße

so werte werden angezeigt.... 218/219

Wenn es sich um einen NTC-Fühler handelt könntest du einmal versuchen mit den Werten von dem Bild im Anhang zu arbeiten. Dort sind die Messwerte von verschiedene NTC-Sensoren enthalten.

Der Wert bei 25°C ist der Nominalwert des NTC-Sensors. (soll Heißen ein 1 kOhm NTC hat bei 25°C 1000 Ohm.)

Mit diesen Werten zu verschiedene Temperaturen kannst du dir mit hilfe des Online-Kalkulators die Koeffiziente A, B, C ausrechnen lassen und sie im Sketch verwenden.

Bitte beachten das diese Werte Standartwerte sind. Jeder Sensor hat eine Toleranz. Die Werte können also von den Standartwerten geringfügig abweichen. was bei der Messung bzw. bei der Anzeige der Temperatur schon etwas ausmachen kann.

Kennlinien.jpg|933x744

so werte werden angezeigt.... 218/219

Hmmm... Scheinen etwas hoch zu sein die Temperaturwerte.

Hast du den Sketch von mir verwendet oder selbst einen gefunden?

Scheint so das es kein 10 kOhm NTC ist oder ein ganz anderer Sensortyp.

Du könntest mal versuchen mit den Werten von einem anderen NTC's zu arbeiten bzw. auch den Festwiederstand dann in der Schaltung und im Sketch anzupassen.

Ist halt alles eher ein Schätzspiel...

Was müsste den für ein Wert kommen ?!

Was müsste den für ein Wert kommen ?!

Wenn du meine Sketch verwendest und den Schaltaufbau dazu sollt diese Ausgabe am Serial Monitor herauskommen:

Temperatur: 26.48 °C

Die Temperatur ist natürlich abhängig davon von dein Sensor gerade liegt. Aber ich nehme mal an. dass er gerade irgendwo in deiner Nähe liegt. Also sollte er ungefähr die Umgebungstemperatur ausgeben.

Eigenartig .... teste es gleich nochmal

Also in dem Nachbar Thread hat jemand eine Liste gefunden mit den zwei Sensoren die ich habe

Allerdings widerstandswerte und die Temperaturen .

Kann man da anknüpfen ?

Ducati Sensoren.jpg|800x467

Hi

Da wir ja 'nahezu 25°C haben' - sollte der so zu messende Widerstand des NTC den benutzten Typ ergeben. Messwert ca. 1kΩ -> NTC 1K Messwert ca. 25kΩ -> NTC 25kΩ

MfG

PS: Die müsstest Du in dem Online-Rechner eintragen können - und damit testen, ob Dein Sensor 'so tut'.

Poste mal einen Link zu dem Thread.

Mit den Widerstandswerten und den zugehörigen Temperaturen kann man sehr gut arbeiten. Die bräuchte man nur in den Onlinerechner eintragen und man hat seine Koeffizienten die man braucht. Viel mehr benötigt man eigentlich auch gar nicht.

Edit: Da war ich mal zu langsam beim tippen :D

datei ist eingefügt!

also sensor 5-5a und 6 wie es aussieht…

ach hatte eben nochmal geschaut… wegen dem temperatur : XXX. Grad… da steht nur 1023 oder halt dann halt ca 210

Versuch es mal mit diesem Sketch.

Beim Schaltungsaufbau musst du noch den 10 kOhm Serienfestwiderstand gegen einen 2,2 kOhm Widerstand tauschen.

#define MESSFUEHLER A0  // Messfühler

#define EINZELMESSUNGEN 25  // Das verändern der Zahl ändert auch die Anzahl der Einzelmessungen.

#define A_2 1.401592401e-03   // A-Koeffizient des Messfühlers
#define B_2 2.375252635e-04   // B-Koeffizient des Messfühlers
#define C_2 0.9880580930e-07  // C-Koeffizient des Messfühlers

#define FESTWIDERSTAND_2 2200  // Widerstandswert des Serienfestwiderstandes des Messfühlers

uint16_t SUM_EM_2[EINZELMESSUNGEN];

void setup(void) {
  Serial.begin(9600);
}

void loop(void) {
  uint8_t i;
  float DURCHSCHNITT_2;
  float R2_2, lnR2_2;
  float TEMP_2;

// Hier werden die Einzelmessungen des Messfühlers vorgenommen.
// Zwischen den Messungen gibt es eine Wartezeit von 10 Millisekunden.
    
  for (i=0; i< EINZELMESSUNGEN; i++) {
   SUM_EM_2[i] = analogRead(MESSFUEHLER);
   delay(10);
  }

// Berechnung des Durchschnittswertes aller Einzelmessungen des Messfühlers.
    
  DURCHSCHNITT_2 = 0;
  for (i=0; i< EINZELMESSUNGEN; i++) {
     DURCHSCHNITT_2 += SUM_EM_2[i];
  }
  DURCHSCHNITT_2 /= EINZELMESSUNGEN;

// Berechnung der Temperatur mit Steinhart-Hart Gleichung

  R2_2 = FESTWIDERSTAND_2* (1023.0 / (float)DURCHSCHNITT_2 - 1.0);
  lnR2_2 = log(R2_2);
  TEMP_2 = (1.0 / (A_2 + B_2*lnR2_2 + C_2*lnR2_2*lnR2_2*lnR2_2));  // Steinhart-Hart Gleichung. T  = 1 / {A + B[ln(R)] + C[ln(R)]^3}
  TEMP_2 =  TEMP_2 - 273.15;

// Der nachfolgende Teil sendet die Daten zusätzlich über den seriellen Port.

  Serial.print("Temperatur:     ");
  Serial.print(TEMP_2);          // Hier wird der Temperaturwert des Messfühlers vom Arduino an den seriellen Port gesendet.
  Serial.println(" °C");
  Serial.println();
  

// Nach 5 Sekunden Wartezeit wird eine neue Messung der Temperaturen vorgenommen.

  delay(5000);
}

Könntest du das etwas genauer erklären ? Für jemanden der totaler Anfänger is ?

Hab den Vorpost und den Sketch gerade noch mal editiert. Zum Testen und damit rechnen sollte ein 2,2 kOhm Serienfestwiderstand ausreichen.

Okay und als serienfestwiderstand ist der Widerstand im Schaltplan gemeint .

Muss ich mal schauen ob ich einen 2,2 habe