FIS für Motorrad

@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

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

Hmm... Wenn du mir sagst was genau ich dir erklären soll sehr gerne. :)

Im Anhang ist noch mal ein Schaltungsaufbau wie er jetzt aussehen sollte.

An dem Datenblatt was du gefunden hast kann man daraus schliesen das es ein 3k NTC-Sensor ist. da er bei 25 °C 3000 Ohm hat. Mit diesem Datenblatt kannst du mit Hilfe des Online-Rechners die Koeffizienten berechnen. Einfach im oberen Teil des Rechners die Widerstandswerte aus dem Datenblatt und die dazugehörigen Temperaturen aus dem Datenblatt eintragen. Du brauchst zum Berechnen der Koeffizienten drei Widerstands/Temperatur-Paare. Welche du nimmst ist egal. Ich habe die bei 10°C, 25°C und 40°C zum rechnen verwendet.

Direkt darunter bekommst du die Koeffizienten angezeigt (A, B und C).

Diese habe ich dann in meinen Sketch hinter A_2, B_2 und C_2 eingetragen.

#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

Ein Stück darunter habe ich den Serienfestwiderstandswert definiert.

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

Mit diesen Werten und mit dem Wert der an Pin A0 gemessen wird dann die weitere Berechnung der Temperatur durchgeführt.

Was würdest du noch gerne wissen? :)

Spannungsteiler_Steckplatine.jpg|2889x1644

Empty imported post