Seite 205 von 218 ErsteErste ... 105155195203204205206207215 ... LetzteLetzte
Ergebnis 5.101 bis 5.125 von 5440

Thema: [Caravan] masch´s OPC Caravan

  1. #5101
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    Zitat Zitat von RStwo Beitrag anzeigen
    Das Min-Wert verhalten sieht aber etwas komisch aus. Geht erst auf 0 runter, dann wieder auf 0,4 rauf.

    So wie ich den Code geschrieben hatte, würde er auch immer nen Wert falsch setzen.
    Da die einzige Bedinung ja aktuelle Wert kleiner als letzter war. Oder hast noch einen Vergleich mit dem Min-Wert eingefügt?
    Ich bilde unter 0,5bar Mittelwerte und aktuell fehlt in der Berechnung des Druckwertes eine 10er-Potenz damit ich das besser testen kann.
    Das reagiert dadurch so leicht bzw. die Werte springen sehr schnell, eben weil die angezeigten Werte 10mal größer als real sind.

    Zitat Zitat von hacky1312 Beitrag anzeigen
    Das mit dem minimal Wert ist doch allgemein eine Sache, da am Anfang immer 0 bar anliegen. Oder hab ich da ein Denkfehler? Ich würde irgendwo ein Taster einbauen der die Variable für min auf 99 setzt und für Max auf 0. So hast auch eine Möglichkeit die Werte zu resetten.
    Genau so ist das im Prinzip auch, setze im Code grobgesagt über "float" max auf 0.0 und min auf 10.0 (bar).
    Ich brauchte halt eine Bedingung, dass das auch funktioniert wenn der min-Anfangswert direkt schon bei 0.0 steht, weil eben Motor aus = 0.0 bar.
    Würde ich das Programm bei laufendem Motor neustarten, hätte es auch vorher schon perfekt funktioniert, aber genau das wollte ich nicht (bzw. extra Taster).

    Butzel89, danke! Bisschen Spielerei muss halt immer sein
    Geändert von masch (18.05.2017 um 07:17 Uhr)
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

  2. #5102
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    Die AGT-Anzeige war jetzt einfach und ist soweit fertig. Ging jetzt schnell
    Hier der kleine Testlauf dazu:



    Jetzt fehlt nur noch bei beiden Anzeigen eine Warnfunktion. Das sollte aber einfach sein
    Schade nur, dass sich mit der Bibliothek die ich verwende (u8g2) das Display nicht invertieren lässt (hab zumindest nichts gefunden).
    Wäre zumindest noch eine Option gewesen das (auch) darüber zu realisieren.
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

  3. #5103
    Member Avatar von g-Terror
    Mitglied seit
    23.05.2007
    Ort
    Hamburg
    Auto
    OPC 1 NO267; OPC 2 Caravan; Chevrolet Camaro; 1,6i Comfort (X18XE1)[RIP]
    Alter
    42
    Beiträge
    520
    Währe es nicht vielleicht möglich das Generatorsignal oder den original Öldruckschalter als Startsignal für die min und max Anzeige zu verwenden?
    Dadurch hattest du dann ohne separaten Taster ein "reset" der Anzeige nach Motorstart.
    Eventuell noch mit einem programmierten Delay damit erst nach vollständigen Öldruckaufbau erst der min- Öldruck erfasst wird.
    Zitat Mercedes Baureihenchef Gunnar Güthenke: "Bevor die G-Klasse rund wird, bekommt die Erde Ecken"


    OPC1 NO267


    OPC Caravan


    78er Camaro


    X18XE1 115KW RIP

  4. #5104
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    Theoretisch alles möglich, nur wird der Aufwand dann ungleich größer.
    1. Der Arduino kann mit 12V Signalen erstmal nichts anfangen, muss man per stepdown, Spannungsteiler o.ä. runterwandeln.
    2. Zusätzliche delays verzögern immer den gesamten loop, also auch die Signalverarbeitung bzw. -Berechnung.
    Beste Möglichkeit ist wirklich das über den Code zu lösen.
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

  5. #5105
    Member Avatar von RStwo
    Mitglied seit
    28.08.2013
    Auto
    Astra-G-Cab-Z22SE Astra-K-5T-B14XFL
    Alter
    37
    Beiträge
    1.479
    Schaltet Öldruck nicht nach Masse?
    Dann bräuchtest nur PullUp von der Arduino Versorgung und Diode zur Leitung.
    Grüße, der selbsternannte Messpapst

    Rene´s Astras

  6. #5106
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    Jopp, das ist auch so.
    Das Signal wäre zumindest schon mal am Tacho.
    Nur hat der Schalter glaub ich 0,3bar, weiß gerade nicht ob das taugen würde.
    Ich hätte halt so gedacht die min-Wert-Abfrage erst ab 1 bar starten zu lassen (zum Testen war es 0,5 bar).
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

  7. #5107
    Member Avatar von RStwo
    Mitglied seit
    28.08.2013
    Auto
    Astra-G-Cab-Z22SE Astra-K-5T-B14XFL
    Alter
    37
    Beiträge
    1.479
    Denke würde beides gut funktionieren.
    Ich würde den Öldruckschalter aber nur mit drauflegen, wenn ich die Öl-Kontrollleuchte selber ansteuern will.

    Also die Auswertung über 1Bar zu starten ist wahrscheinlich der bessere Weg.
    Ich würde da nen Boolean setzen/Auswerten und das was in der PN stand eventuell wieder rausnehmen.
    Solange das Boolean nicht gesetzt ist kannst ja deine Warnfunktion aufrufen, noch als kleinen Selbsttest quasi.
    Geändert von RStwo (18.05.2017 um 14:57 Uhr)
    Grüße, der selbsternannte Messpapst

    Rene´s Astras

  8. #5108
    Member Avatar von hacky1312
    Mitglied seit
    26.03.2009
    Ort
    Hannover
    Auto
    320d F31 Touring
    Alter
    34
    Beiträge
    1.080
    Das ist programmiertechnisch an sich kein Problem die Anzeige erst ab 1 Bar laufen zu lassen, nur wird dann wahrscheinlich immer 1 Bar dort stehen (es sei denn die Pumpe baut den Druck schneller auf, als Sensor und Arduino das registrieren können). Aber probier es erstmal aus, bevor da wilde Lösungen gebaut werden. Das Display fügt sich auf jeden Fall sehr schön ins Tacho ein. Sind das diese 0,96" OLED Displays?
    MfG Heiko.





    Opel Astra Limousine Cosmo Edition
    Z19DTH BJ 08/08 | Xenon | CD 70 Navi | UHP | CID | Klimaautomatik | Teilleder | Sitzheizung | Mittelarmlehne |
    Eibach Prokit | OPC Lenkrad | 18" 5-Stern Felgen | Comfort Unit | BMW KZB | BMW Antenne |
    Pioneer TS-Q 172 Vollaktiv | Hertz ES250.3 D4 in Reserverradmulde an Steg QM 120.2 | DSP von Carhifi Store Bünde |

  9. #5109
    Member Avatar von Averell
    Mitglied seit
    22.06.2014
    Ort
    Neukirchen-Vluyn
    Auto
    Polo 9N, Z16SE-Caravan, Z20LET OPC II-Caravan, Astra K Sportstourer BiTurbo-Diesel
    Beiträge
    220
    Sehr interessante und innovative Umsetzung.
    Was ich bei meinen analogen Anzeigen zu schätzen gelernt habe ist die einstellbare Warnleuchte.
    Wäre es nicht eine Alternative Funktion, im Warnbereich die Displays auf rot umzuschalten?
    Ich kann das immer aus dem Augenwinkel wahrnehmen, wenn z. B. der Ladedruck jenseits der 1,4 Bar geht, dann leuchtet die Anzeige und ich habe die Augen trotzdem auf der Straße.
    Ein akustischer Alarm wäre auch eine Möglichkeit.
    Meine Galerie: Averell's OPC-II Caravan

    Die Menschen lassen sich lieber durch Lob ruinieren als durch Kritik verbessern. (George Bernhard Shaw)

  10. #5110
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    RStwo, ich finde das jetzt eigentlich ganz gut wie es funktioniert. Muss ich dann mal in der Praxis rausfinden wie praktikabel das aktuell ist.

    hacky1312, aktuell ist halt angedacht gewesen, dass der Min-Wert erst ausgewertet wird, wenn der Druck wenigstens mal 1.0 bar erreicht hat.
    Die Max-Werte setze ich einfach so:
    PHP-Code:
    float min_bar 0.0;
    if (
    max_bar <= pressure_bar){               // Maximaldruckberechnung
        
    max_bar pressure_bar;

    Wenn ich das analog mit den Min-Werten so mache:
    PHP-Code:
    float min_bar 10.0;
    if (
    min_bar >= pressure_bar){               // Minimaldruckberechnung
        
    min_bar pressure_bar;

    Funktioniert das genau dann wenn ich beim loop-Start schon einen Wert habe. Hab ich aber nicht, weil bei Zündung "ein" (=Start des loops) kein Druck am Öl anliegt.
    Folglich habe ich einfach, wie mir Rene empfohlen hat, eine Variable dazu gesetzt:
    PHP-Code:
    float min_bar 10.0;
    float pressure_barLast 1.0;
    if (
    pressure_barLast >= pressure_bar){        // Minimaldruckberechnung
        
    min_bar pressure_bar;

    Der Min-Wert wird also erstmals nach erreichen von mindestens 1.0 bar gesetzt.
    Bessere Ideen dazu?

    Und ja es handelt sich bei dem Display um ein OLED SSD1306 in 0,96".
    Die Größe passt aber nicht 100%ig zu dem Ausschnitt im Tacho.
    In der Breite fehlt Einiges an darstellbarer Fläche und in der Höhe kann man etliche Zeilen nicht nutzen.
    Insgesamt ist das aber wenn man das beim Layout einbezieht, wie man sehen kann, trotzdem sehr passabel.

    Averell, danke!
    Leider gibt es die Displays in der Größe nur in OLED weiß oder (Hell-)Blau bzw. auch noch einen Hybrid aus oberer Displaybereich gelb, Unterer (Hell-)Blau.
    Mit der Farbumschaltung ginge also leider nicht.
    Ich weiß aber was du meinst. Meine LD- und Öl-Temperaturanzeige kann das auch und das ist schon sehr sehr gut zum "Ablesen".
    Akustisch finde ich persönlich nicht so schön, das kann dann auch mal untergehen (je nach Lautstärke), aber defintiv nerven.
    Geändert von masch (18.05.2017 um 16:29 Uhr)
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

  11. #5111
    Member Avatar von Tomahawk
    Mitglied seit
    16.12.2013
    Auto
    Z20LET Coupé
    Beiträge
    831
    Wie hast du denn vor die Controller zu verbauen? An den Tacho oder irgendwo hin damit du dran kommst ohne immer den Tacho aus und wieder ein zu bauen?

    Gesendet von meinem ALE-L21 mit Tapatalk

  12. #5112
    Member Avatar von hacky1312
    Mitglied seit
    26.03.2009
    Ort
    Hannover
    Auto
    320d F31 Touring
    Alter
    34
    Beiträge
    1.080
    Also jetzt eine Quick & Dirty Programm Lösung die mir einfallen würde wäre zusätzlich ein Boolean einzubauen.
    z.B.
    PHP-Code:
    boolean active false;
    float min_bar 0.0// Damit das Display am Anfang 0 anzeigt
    float max_bar 0.0;
    float pressure_barLast 1.0
    PHP-Code:
    if (max_bar <= pressure_bar){               // Maximaldruckberechnung
        
    max_bar pressure_bar;


    PHP-Code:
    if (min_bar >= pressure_bar && active){               // Minimaldruckberechnung
        
    min_bar pressure_bar;


    PHP-Code:
    if (pressure_barLast pressure_bar && !active){        // Aktivieren der Minimalberechnung
        
    delay (10000);         // Hier ist die Anzeige dann aber wirklich für 10 Sekunden eingefroren und zeigt nichts an, gibt sicher schönere Lösungen mit Timern und Interrupts, bin bei Arduino noch nicht so drin, könnte mich da aber mal schlau machen
        
    min_bar pressure_bar
        
    active true;

    So ist es dann, dass sobald der Druck von 1 Bar überschritten wurde 10 Sekunden gewartet wird, bis das Speichern des Minimalwertes aktiviert wird, damit erstmal Öldruck aufgebaut wird.

    PHP-Code:
    if (pressure_barLast pressure_bar && active){        // Deaktivieren der Minimalberechnung
        
    min_bar 0.0;    
        
    active false;

    Sobald der Wert unter 1 Bar sinkt wird die Auswertung für Minimum wieder gestoppt, der Wert auf 0 gesetzt und sobald der Druck wieder über 1 Bar steigt beginnt die Initialisierung mit den 10 Sekunden von vorne.
    Geändert von hacky1312 (18.05.2017 um 17:29 Uhr)
    MfG Heiko.





    Opel Astra Limousine Cosmo Edition
    Z19DTH BJ 08/08 | Xenon | CD 70 Navi | UHP | CID | Klimaautomatik | Teilleder | Sitzheizung | Mittelarmlehne |
    Eibach Prokit | OPC Lenkrad | 18" 5-Stern Felgen | Comfort Unit | BMW KZB | BMW Antenne |
    Pioneer TS-Q 172 Vollaktiv | Hertz ES250.3 D4 in Reserverradmulde an Steg QM 120.2 | DSP von Carhifi Store Bünde |

  13. #5113
    Member Avatar von RStwo
    Mitglied seit
    28.08.2013
    Auto
    Astra-G-Cab-Z22SE Astra-K-5T-B14XFL
    Alter
    37
    Beiträge
    1.479
    Zitat Zitat von masch Beitrag anzeigen

    PHP-Code:
    float min_bar 10.0;
    float pressure_barLast 1.0;
    if (
    pressure_barLast >= pressure_bar){        // Minimaldruckberechnung
        
    min_bar pressure_bar;

    Ah verstehe, du hast also den "aktuellen Druck" nicht wieder dem "letzten Druck" zugewiesen.
    In meiner ersten Nachricht hatte ich sowieso nen Denkfehler, dafür sorry.

    Wie wäre es so:
    Dann läuft der Druck einmal im besten Fall hoch und minimalwerte werden erst nach dem ersten abfallen registriert.
    Die Anzeige kann so auch hier mit min und max auf 0.0 beginnen.

    PHP-Code:
    float max_bar 0.0;
    float min_bar 0.0;
    boolean getmin false;

    if (
    max_bar <= pressure_bar){               // Maximaldruckberechnung
        
    max_bar pressure_bar;
    }  

    if (
    getmin==true) {                      // Minimaldruckberechnung
      
    if (min_bar >= pressure_bar){
        
    min_bar pressure_bar;
      }
    }

    //Dann prüfen ob Druck abgefallen
    if (getmin==false {
      if (
    max_bar pressure_bar){
        
    getmin true;
        
    min_bar pressure_bar;
      }

    Geändert von RStwo (18.05.2017 um 17:29 Uhr)
    Grüße, der selbsternannte Messpapst

    Rene´s Astras

  14. #5114
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    Tomahawk, den Nano´s setze ich mit in den Tacho bzw. hinten unter die schwarze Abdeckung wahrscheinlich. Sind ja nicht groß, mal zum Vergleich:

    Auf Anraten von hacky1312, kommt als Versorgung tatsächlich nochmal ein stepdown@5V/3A vor beide Nanos. Auch im/am Tacho dann.
    Mit nachträglich programmieren ist dann natürlich Essig, wenn das aber gut läuft und dafür teste ich das so gut es geht schon vorher, dann sehe ich da eigentlich weniger Gründe das nicht so zu verbauen.

    hacky1312, eine Sache gefällt mir an dem Code nicht, ich hab dann immer als min-Wert 1.0 bar?!
    Aber ich nehme das mal zur Kenntnis und nehme das mal in meine Gedankengänge mit auf.
    Der Ansatz ist schon gut.

    RStwo, du hast mir allein schon deshalb geholfen, weil es manchmal sehr gut ist wenn man von teilweise eventuell eingefahren Vorgehensweisen abweicht.
    Da hilft halt nur Input von Außen. Auch deinen Code werde ich mir in einer ruhigen Minute mal ansehen, sieht auf den ersten Blick aber sehr plausibel aus

    Vielen Dank euch beiden!
    Geändert von masch (18.05.2017 um 17:21 Uhr)
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

  15. #5115
    Member Avatar von hacky1312
    Mitglied seit
    26.03.2009
    Ort
    Hannover
    Auto
    320d F31 Touring
    Alter
    34
    Beiträge
    1.080
    Ja so wie der Code ist, setzt er sobald der Messwert unter 1 Bar fällt alles wieder zurück. Kannst die Schwelle natürlich auch anpassen oder halt die Funktion komplett weglassen, dann wird der Min. Wert erst zurückgesetzt, sobald der Arduino einmal aus war. Hab jetzt an den Fall gedacht, dass der Motor zwischendurch ausgemacht wird, der Arduino aber aktiv bleibt. Genau so kann man sich auch über die 10 Sekunden Delay Gedanken machen (hab keine Ahnung wie lange die Pumpe braucht um erstmal Druck aufzubauen).
    MfG Heiko.





    Opel Astra Limousine Cosmo Edition
    Z19DTH BJ 08/08 | Xenon | CD 70 Navi | UHP | CID | Klimaautomatik | Teilleder | Sitzheizung | Mittelarmlehne |
    Eibach Prokit | OPC Lenkrad | 18" 5-Stern Felgen | Comfort Unit | BMW KZB | BMW Antenne |
    Pioneer TS-Q 172 Vollaktiv | Hertz ES250.3 D4 in Reserverradmulde an Steg QM 120.2 | DSP von Carhifi Store Bünde |

  16. #5116
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    Druck ist halt eigentlich quasi sofort mit dem Starten des Motors da, sieht man ja an der vorhandenen Öldrucklampe im Auto wie schnell das geht.
    Der Arduino wird an Klemme 15 hängen. mit Motor aus ist der also auch weg. Das interessiert dann aber eh nicht mehr.
    Bei
    PHP-Code:
    float min_bar 10.0 
    zeigt er nach dem Start übrigens im Display trotzdem 0.0 an Sieht man auch im Video.
    Das delay geht im Loop halt auch nicht, dann aktuallisiert er mir die Werte nur alle 10 Sekunden.
    Wie gesagt, Input von außen ist gut für mich. Ich gucke mir das auf jeden Fall an
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

  17. #5117
    Member Avatar von RStwo
    Mitglied seit
    28.08.2013
    Auto
    Astra-G-Cab-Z22SE Astra-K-5T-B14XFL
    Alter
    37
    Beiträge
    1.479
    Wenn es hilft ist ja schon mal gut. Ich selber bin beim Arduino ja auch nicht so bewandert.

    Im PIC weiß ich ja nahezu exakt, wann meine Funktionen durchlaufen werden.
    Da würde ich eine Variable setzen z.B. Int GetMinWait = 40 //Bei Durchlauf alle 1/4s -> 10s Wartezeit
    Dann diese Dekrementieren bis 0 erreicht ist und dann GetMin wenn nötig auf True setzen.

    Wenn ich den Code lese ist klar warum der auf 0.0 geht.
    Weil beim Start ja Pressure_BarLast immer größer ist als Pressure_Bar.
    Geändert von RStwo (18.05.2017 um 17:41 Uhr)
    Grüße, der selbsternannte Messpapst

    Rene´s Astras

  18. #5118
    Member Avatar von hacky1312
    Mitglied seit
    26.03.2009
    Ort
    Hannover
    Auto
    320d F31 Touring
    Alter
    34
    Beiträge
    1.080
    Zitat Zitat von masch Beitrag anzeigen
    Das delay geht im Loop halt auch nicht, dann aktuallisiert er mir die Werte nur alle 10 Sekunden.
    Ja das Delay ist etwas unschön, da würd er aber nur einmal drin landen, bis die Berechnung er Minimalwerte aktiv ist. Also keine Sorge, dass er das bei jedem Loop durchläuft. Wie gesagt gibt sicher auch schönere Lösungen, entweder mit nem Zähler oder Timern.

    Die Lösung von rstwo, zu warten bis die Maximalwerte wieder sinken gefällt mir aber auch ganz gut.
    MfG Heiko.





    Opel Astra Limousine Cosmo Edition
    Z19DTH BJ 08/08 | Xenon | CD 70 Navi | UHP | CID | Klimaautomatik | Teilleder | Sitzheizung | Mittelarmlehne |
    Eibach Prokit | OPC Lenkrad | 18" 5-Stern Felgen | Comfort Unit | BMW KZB | BMW Antenne |
    Pioneer TS-Q 172 Vollaktiv | Hertz ES250.3 D4 in Reserverradmulde an Steg QM 120.2 | DSP von Carhifi Store Bünde |

  19. #5119
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    Zitat Zitat von RStwo Beitrag anzeigen
    Wenn ich den Code lese ist klar warum der auf 0.0 geht.
    Weil beim Start ja Pressure_BarLast immer größer ist als Pressure_Bar.
    Ähmm, joar. Wenn ich so drüber nachdenke hast du Recht
    Eigentlich bin ich mit der gerade vorhandenen Lösung ja ganz zufrieden

    Zitat Zitat von hacky1312 Beitrag anzeigen
    Ja das Delay ist etwas unschön, da würd er aber nur einmal drin landen, bis die Berechnung er Minimalwerte aktiv ist. Also keine Sorge, dass er das bei jedem Loop durchläuft. Wie gesagt gibt sicher auch schönere Lösungen, entweder mit nem Zähler oder Timern.
    Gefühlt würde ich sagen, dass die Werteermittlung immer ein Delay hat. Müsste ich mal real testen.

    Eine Frage aber nochmal zum Code oben mit:
    PHP-Code:
    //Dann prüfen ob Druck abgefallen
    if (getmin==false {
      if (
    max_bar pressure_bar){
        
    getmin true;
        
    min_bar pressure_bar;
      }

    Kann es sein, dass max_bar nie kleiner als pressure_bar werden kann?
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

  20. #5120
    Member Avatar von RStwo
    Mitglied seit
    28.08.2013
    Auto
    Astra-G-Cab-Z22SE Astra-K-5T-B14XFL
    Alter
    37
    Beiträge
    1.479
    Max_Bar ist dort nur zur Vergleich, meinst du Min_Bar?
    Der Code wird ja nur einmal durchgegangen, danach kommt er da nicht wieder hin.
    Deshalb muss da das Boolean auch abgefragt werden.
    Grüße, der selbsternannte Messpapst

    Rene´s Astras

  21. #5121
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    Ah okay, verstehe ich. Ich werde das heute Nacht mal testen was er da dann draus macht.
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

  22. #5122
    Member Avatar von RStwo
    Mitglied seit
    28.08.2013
    Auto
    Astra-G-Cab-Z22SE Astra-K-5T-B14XFL
    Alter
    37
    Beiträge
    1.479
    Zitat Zitat von masch Beitrag anzeigen
    Ähmm, joar. Wenn ich so drüber nachdenke hast du Recht
    Eigentlich bin ich mit der gerade vorhandenen Lösung ja ganz zufrieden
    Da muss ich nochmal drauf eingehen, war eben nur am Smartphone.
    Code ist ja aktuell so:

    PHP-Code:
    float min_bar 10.0;
    float pressure_barLast 1.0;
    if (
    pressure_barLast >= pressure_bar){        // Minimaldruckberechnung
        
    min_bar pressure_bar;

    Das Problem ist das er hier immer den Minimalwert setzt, so bald pressure_bar kleiner gleich 1.0 ist.
    Ich hatte da aber auch einen Denkfehler und das meinte ich auch das sich die Anzeige komisch verhält.
    Es hätte eher in die Richtung gehen sollen:

    PHP-Code:
    float min_bar 10.0;
    float pressure_barLast 0.0//Muss zwingend auf 0.0 -> sonst min_bar 0.0

    // Minimaldruckberechnung
    if (pressure_barLast pressure_bar){          // Wert muss fallen, sonst kann es kein Minimum sein
      
    if(min_bar >= pressure_bar){                      // Vergleich mit Min_Bar hat gefehlt, muss aber sein
        
    min_bar pressure_bar;
      }
    }  
    pressure_barLast pressure_bar;  //Aktuellen Wert immer abspeichern. 

    Die Lösung mit dem Boolean würde ich aber bevorzugen, aber eventuell auch minimal noch erweitern.
    Einfach aus dem Grund das sonst Druckspitzen beim Anlassen eventuell schon den Min-Wert setzen.
    Wie sich das am realen Sensor verhält ist aber immer so ne sache, im Moment hast was anderes zum testen dran?

    PHP-Code:
    //Dann prüfen ob Druck abgefallen
    if (getmin==false && pressure_bar 2.0) { //2.0 eventuell anpassen, je nach Öldruck
      
    if (max_bar pressure_bar){
        
    getmin true;
        
    min_bar pressure_bar;
      }

    Geändert von RStwo (18.05.2017 um 18:39 Uhr)
    Grüße, der selbsternannte Messpapst

    Rene´s Astras

  23. #5123
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    Okay, ich spiele das später von Zuhause mal durch.
    Fix aufspielen ist kein Problem, habe 3 Systeme fertig mit Display liegen, wobei 2 Displays schon im Test-Tacho verbaut sind.
    1 mit Drucksensor, 1 mit MAX31855 und K-Sonde und ein nackiges Board ohne Sensor.
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

  24. #5124
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    Also final kann ich sagen, dass diese Variante für den Min-Wert nicht funktioniert:
    PHP-Code:
    float min_bar 10.0;
    float pressure_barLast 0.0;                     //Muss zwingend auf 0.0 -> sonst min_bar 0.0

                                                         // Minimaldruckberechnung
    if (pressure_barLast pressure_bar){         // Wert muss fallen, sonst kann es kein Minimum sein
      
    if(min_bar >= pressure_bar){                   // Vergleich mit Min_Bar hat gefehlt, muss aber sein
        
    min_bar pressure_bar;
      }
    }  
    pressure_barLast pressure_bar;              //Aktuellen Wert immer abspeichern. 
    Der Min-Wert bleibt stetig bei 0,0. Hab jetzt gedanklich noch nicht eroiert, woran das liegt.
    Ich habe bei der Übernahme hoffentlich auch keinen Fehler gemacht...

    Dafür funktioniert diese Funktion mit der Boolschen Variable als Gesamtes perfekt (Hoffe ich habe keinen fehler beim Zusammenkopieren gemacht):
    PHP-Code:
    float min_bar 0.0;
    boolean getmin false;

    if (
    getmin==true) {                         // Minimaldruckberechnung
      
    if (min_bar >= pressure_bar){
        
    min_bar pressure_bar;
    }
    }                                           
    if (
    getmin==false && pressure_bar 1.0) {  //2.0 eventuell anpassen, je nach Öldruck -> 1.0 reicht
      
    if (max_bar pressure_bar){
        
    getmin true;
        
    min_bar pressure_bar;
    }

    if    (
    pressure_bar<0.1) {                  // Druckanzeige in Ruhe = 0 bar
           
    pressure_bar=0.0;
           
    min_bar 0.0;

    Eigentlich ne Menge Code für eine triviale Min-Wert-Anzeige
    Schön ist halt auch (loop-delay ist 250ms), dass sehr kurze Spitzen nicht in die Bewertung eingehen.

    Insgesamt also vielen lieben Dank für die Unterstützung!
    Geändert von masch (18.05.2017 um 23:00 Uhr) Grund: Hatte natürlich einen Fehler beim Kopieren gemacht :D
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

  25. #5125
    Themenersteller

    Member Avatar von masch
    Mitglied seit
    28.01.2004
    Beiträge
    7.123
    Funktions-Video dazu:

    Denke das kann man wirklich so lassen
    Dummheit ist bisweilen enorm kreativ in ihrer Zerstörungskraft.

Lesezeichen

Berechtigungen

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