Ganganzeige mit Nextion

Hallo zusammen,

ich baue gerade eine Ganganzeige die in Abhängigkeit von Drehzahl und Geschwindigkeit
den eingelegten Gang auf einem Nextion Display anzeigen soll.

Bisher sieht meine funktionierende Auswertung mit switchCase dafür so aus:


  Ganganzeige = smoothWertA0 ;  // Nextion n00 = Geschwindigkeit, UNO PIN A0
  switch (smoothWertA0)
  {
    case  1 ...   68 :  Ganganzeige = 1; break; // bei 8000 U/min
    case  69 ... 115 :  Ganganzeige = 2; break;
    case 116 ... 168 :  Ganganzeige = 3; break;
    case 169 ... 230 :  Ganganzeige = 4; break;
    case 231 ... 320 :  Ganganzeige = 5; break;
    default: Ganganzeige = 0; break;
  }
  Serial.print("n01.val=");     // ("n01.val=");
  Serial.print(Ganganzeige);    // (smoothWertA0);

  Serial.write("\xFF\xFF\xFF");
  smoothWertA0_ALT = smoothWertA0;

Allerdings wird hier zZ auch nur die gefahrenen Geschwindigkeit verwendet....

Geschwindigkeit bei Leerlauf zB im 1.Gang = 7.28 Kmh, bei max Drehzahl = 61.64.kmh.

Da das gleiche Tempo (abgesehen vom Tempo bei Leerlauf) aber auch in allen anderen Gängen, - dafür aber mit entsprend anderer Drehzahl - erreicht werden kann,
stellt sich die Frage wie sich das am einfachsten mit dem UNO umsetzen lässt ?

würde mich über Eure Ideen / Denkanstösse freuen !

Grüße

Zündfunken abfragen.

Hi my_xy_projekt,

die Drehzahl frage ich schon an anderer Stelle ab. - Die ist also schon vorhanden.

Mir ist nur nicht klar wie ich Drehzahl / Geschwindigkeit und Ganganzeige dann im Code miteinander verknüpfen kann...

Da wäre ein Beispiel sehr hilfreich !

Grüße

Ne, dafür fehlt was.
erzähl mal die Übersetzungsverhältnisse je Gang.

Hallo,
na ja wenn Du Geschwindigkeit und Drehzahl hast kannst Du sowas wie eine Übersetzung als Konstante für jeden Gang ausrechen.
und dann
Drehzahl * Ubersetztung = Geschwindigkeit
Kann aber sein das ich Dein Problem nicht ganz verstanden habe.

Heinz

Hi,

nehme mal an das Du diese meinst? , Übersezungsverhältnisse :

1.Gang = 3.6
2.Gang = 2.13
3.Gang = 1.46
4.Gang = 1.07
5.Gang = 0.78
Rückwärts =3.50
Achsübersetzung = 3.89

Hier gibts dafür nen guten Rechner :

KLICK

Grüße

Wie sowas gerechnet wird, ist mir schon klar - sonst würde ich nicht nach den Ausgangswerten fragen.
Wenn Du die Ausgangsgrößen hast, dann frage ich mich warum Du erst auf Geschwindigkeit interpolierst.
Du kennst die Upm der Achse und die dazu gehörige Drehzahl des Motors.
Der zurückgelegte Weg ist nur eine Rechengröße und für die Gangberechnung irrrelevant.

Hallo,
jaaa fast dann fehlen noch die Räder :wink:

Hi Rentner,

Du warst zu schnell :smile: ...
siehe Post #6, den Rechner hab ich verwendet.

Im Moment werden Tempo und Drehzahl noch durch 2 getrennt Potis simuliert.
Die Werte sind also vorhanden.
In meinem switchCase werte ich zZ ja nur die Geschwindigkeit aus.
Damit die Ganganzeige richtig funktioniert brauchts natürlich noch die Drehzahl.

Drehzahl geht bis 8000, Tacho bis 320.... Wie kombiniere ich beides im Sketch ?

Grüße

Räder sind vorhanden :wink:,
mit Lenkrad 5, mit Reserverad sogar 6...

Ich glaube so wird das nix.
Wenn es um ein reales Fahrzeug geht kannst Du doch mal während des Fahrens ein paar Werte aufschreiben.
1.Gang eine Drehzahl und die Geschwindigkeit dazu
2. ""
usw .

Beispiel Drehzahlmesser 2000U/min Tacho 110Km/h.
dann bekommst Du doch einen Faktor zwischen Drehzahl und Geschwindigkeit. Also das ist Dreisatz 5 Klasse.

Warum nicht?
Er hat ja die Geschwindigkeit - woher auch immer - und das Übersetzungsverhältnis und die Drehzahl.

@stingray05 oder hast Du nur die Drehzahl und versuchst Dir da was zusammenzureimen?

Du brauchst zwei Drehzahl-Messwerte.
Einmal Achse, einmal Motor.

Indem Du für jeden Gang anhand von aktueller Drehzahl, Übersetzungsverhältnis, Achsübersetzung und Radumfang eine Geschwindigkeit ausrechnest.
Die gemessene Geschwindigkeit sollte dann in der Nähe von genau einem der berechneten fünf Werte (jedenfalls bei Vorwärtsfahrt) liegen.
Und damit kannst Du dann auf den Gang rückwärts schließen.

can bus abfragen = alle - daten vorhanden, bei neueren Fahrzeugen sogar Gangnumer.

Hi Rentner,

das sind tatsächlich reale Fahrzeugdaten.

Glaub wir reden da aber etwas aneinander vorbei.
Eckdaten für Tempo bei Leerlauf / für max Drehzahl (für jeden Gang), oder auch für das gleiche Tempo bei anderen MotorDrehzahlen gibt der Rechner im Link aus.
Alle anderen Daten wie Gang- / Achsübersetzung und Abrollumfang zur Verwendung im verlinkten Rechner sind auch vorhanden.

Vorhanden ist ja die Drehzahl und die gefahrene Geschwindigkeit.
Gesucht wird der jeweils eingelegte Gang...

Im 1.Gang bei 3000 U/m sind das dann zB 25,68 kmh.
Die gleiche Geschwindigkeit lässt sich aber auch in anderen Gängen fahren...

Wie setz ich das am sinnvollsten im Sketch um, - Arrays ?
Die würden dann aber ziemlich groß...

Grüße

leider kein CAN Bus - so gerade eben OBD 1...

Hallo,
na ja langsam wird es klarer .
Einfache Lösung
Drehzahl bekannt , Geschwindigkeit bekannt gesucht Gang

Dazu musst Du einmalig einen Faktor ermitteln zwischen Drehzahl und Geschwindigkeit für jeden Gang mit dem realen Fahrzeug.
angenommen
1 Gang 1500U/min 30Km/h -> 1500/30=50
2 Gang 1500U/min 50Km/h -> 1500/50=30
3.Gang 1500U/min 70Km/h -> 1500/50=21,4
4 Gang 1500U/min 110Km/h-> 1550/110=13,6
konnen auch andere Werte sein ist nur ein Beispiel
nun hast Du diese Werte. die Du in deinem Sketch verwenden kannst.

Also wo du jetzt den analogen Wert im swich verwendet hast verwendest Du nun den ermittelten Faktor mit einer kleinen Tolleranz die sich allerdings nicht überschneiden darf.

z.B 45-55 , 25-35 , 17-24, 10-17
in dem Sketch berechnest Du aus Drehzahl und Geschwindigkeit den Faktor. Der ist ja für alle Geschwindigkeiten in einem Gang gleich. Damit bekommst Du dann den Gang der gerade eingelegt ist.

Du kannst auch mit den angegeben Übersetzungen rechnen, dann fehlt die aber noch der Weg der bei einer Umdrehung des Rades zurückgelegt wird, kann man auch ermitteln. Strich machen am Rad und auf dem Boden, schieben einen Umdrehung , Weg messen .

Heinz

Ja - aber eben nicht mit derselben Drehzahl.
Heinz hat doch mit seiner Tabelle eine Näherung für den "Faktor" aus den Übersetzungen und dem Reifen schon angegeben - in seinem Beispiel 50, 30, 21.4 und 13.6 (ist ein altes Auto mit vier Gängen :slight_smile: ).
Wenn Du Drehzahl und Geschwindigkeit hast, teilst Du die durcheinander und bekommst z.B. 28.7 raus. Dann wette ich darauf, dass Du mit Heinz' Auto im zweiten Gang fährst - denn das liegt am Nächsten an 30.

Ich behaupte, das der Weg vollkommen egal ist. :wink:
Der Faktor muss ja nicht ermittelt werden - der ist bekannt.
Motordrehzahl und Übersetzungsverhältnis. Und die Anzeige des Tacho.
Also wieder runterbrechen: Tachowert entspricht ((Motordrehzahl/Übersetzungsverhältnis)/x) Wobei x jetzt irgendwas sein kann.

Ganz ohne Weg.

@stingray05 gibt es bei den anderen Gängen auch 8000Upm die Grenze?

Drehzahlgrenze ist bei allen Gängen 8000 U /min.