- Labornetzteil AliExpress         
Ergebnis 1 bis 6 von 6

Thema: Temperatur auf Display ausgeben läuft - fast

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.260
    Das ist bei den LCD's oft so.
    Ich schreib die aktuellen Zeichen in einen String mit der Länge einer Zeile.
    Nicht beutzte Zeichen werden mit leezeichen aufgefüllt.
    Dann erst wird dieser zum Display übertragen.
    Das bewirkt, falls Zeichen hinter der aktuellen Anzeige stehen bleiben, werden diese durch ein Leerzeichen überschrieben.
    Noch was, die String Variable mus 1Byte länger sein, als eigentlich für die Zeichen benötigt werden, weil "C" noch ein String - Endezeichen einfügt.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Es scheint sich um ein Farb-Grafik-LCD, zu handeln. Da wird es ein paar mehr Möglichkeiten geben als bei einem Text-LCD. Der jetzige unerwünschte Modus ist eine Art additives Schreiben, oder eben mit ODER-Verknüpfung - auch das hat seine Berechtigung.

    @HX8357C:
    Klappere doch die Liste der textbezogenen Grafikbefehle bzw. Steuercodes nach irgendwas ab wie Texthintergrundfarbe, Transparenz, Löschung ab.

  3. #3
    Unregistriert
    Gast
    hallo,
    in den Examples wird offenbar
    tft.fillScreen(HX8357_BLACK);
    verwendet.
    Auf anchen Displays (austesten!) funktioniert auch ein Zeilen-orientierter Befehl von

    tft.setTextColor(HX8357_BLACK, HX8357_BLACK);

    in Verbindung mit

    tft.drawString(" ",x,y,f)

    und dann wieder

    tft.setTextColor(HX8357_BLACK, HX8357_WHITE);

    was dann etwas schneller wäre als das ganze Display komplett zu löschen.

    - - - Aktualisiert - - -

    hallo,
    in den Examples wird offenbar
    tft.fillScreen(HX8357_BLACK);
    verwendet.
    Auf anchen Displays (austesten!) funktioniert auch ein Zeilen-orientierter Befehl von

    tft.setTextColor(HX8357_BLACK, HX8357_BLACK);

    in Verbindung mit

    tft.drawString(" ",x,y,f)

    und dann wieder

    tft.setTextColor(HX8357_BLACK, HX8357_WHITE);

    was dann etwas schneller wäre als das ganze Display komplett zu löschen.

    - - - Aktualisiert - - -

    ps,
    der Link zum Code:
    https://github.com/Bodmer/TFT_HX8357...Char_times.ino

    (wenn das auch deine lib ist)

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    05.03.2011
    Ort
    Neuburg a.d. Donau
    Alter
    64
    Beiträge
    7

    Reden Solved: Temperatur auf Display ausgeben läuft!

    Problem solved!
    Herzlichen Dank für eure Hilfe.
    Aus dem setup() habe ich die Befehlszeile :

    tft.setTextColor(TFT_BLUE); // TFT_WHITE = Black - TFT_BLUE = White

    entfernt. Das hat die Farben durcheinander gewürfelt. Weißer Hintergrund mit schwarzer Schrift funktioniert.

    Ich nutze dieses Display: https://eckstein-shop.de/Mega-2560-3...d-fuer-Arduino
    Es liest zwei Dallas-DS18B20 Temperatursensoren aus. http://playground.arduino.cc/Learning/OneWire
    Auf beiden Seiten findet ihr die zugehörige library.

    Hier nun der funktionierende Code:

    Code:
       
    
    /*
      
      Test the tft.print() viz the libraries embedded write() function
      Make sure all the required fonts are loaded by editting the
      User_Setup.h file in the TFT_ILI9341 library folder.
    
      #########################################################################
      ###### DON'T FORGET TO UPDATE THE User_Setup.h FILE IN THE LIBRARY ######
      #########################################################################
      changed by dh4mbm 2016.11.06 uses Dallas DS18B20 temperature sensor and MEGA 2560
       
    */
    
    #include <OneWire.h>
    #include <DallasTemperature.h>
    
    #define ONE_WIRE_BUS_1 2           // use Arduino Pin 2
    #define ONE_WIRE_BUS_2 4           // use Arduino Pin 4
    
    OneWire oneWire_in(ONE_WIRE_BUS_1); 
    OneWire oneWire_out(ONE_WIRE_BUS_2);
    
    DallasTemperature sensor_inhouse(&oneWire_in);
    DallasTemperature sensor_outhouse(&oneWire_out);
    
    #include <TFT_HX8357.h> // Hardware-specific library
    byte fontSize4 = 4; //  26 px, FontSize 4, 6, 7, 8  
    byte fontSize6 = 6; // 48 px
    
    TFT_HX8357 tft = TFT_HX8357();       // Invoke custom library
    
    int timer1 = (3000);
    
    void setup(void) {
      tft.init();
      tft.setRotation(1);
      sensor_inhouse.begin();  
      sensor_outhouse.begin(); 
    
     
    
      /* Fill screen with colour so we can see the effect of printing with and without
        code color
      */
      tft.fillScreen(TFT_BLACK); // TFT_YELLOW = Blue - TFT_BLUE = YELLOW - TFT_BLACK = White    
      tft.setCursor(40, 48, fontSize4); //shift Cursor in Pixel (Collum, Row, Fontsize)
      tft.setTextFont(fontSize4);
      tft.println("Dallas TwoPin_DS18B20");
      
        // (cursor will move to next line automatically during printing with 'tft.println'
      //  or stay on the line is there is room for the text with tft.print)
      
      tft.setCursor(40, 172, fontSize4); //shift Cursor in Pixel (Collum, Row, Fontsize)
      tft.print("Inhouse: ");
      tft.setCursor(380, 172, fontSize4); //shift Cursor in Pixel (Collum, Row, Fontsize)
      tft.print("Degree ");
      
      tft.setCursor(40, 248, fontSize4);
      tft.print("Outhouse: ");
      tft.setCursor(380, 248, fontSize4); //shift Cursor in Pixel (Collum, Row, Fontsize)
      tft.print("Degree ");
    
    }
    
    void loop() {   
    
    tft.setCursor(40, 98, fontSize4); // Spalte, Zeile, Font
      tft.println("Requesting temperatures...");
      sensor_inhouse.requestTemperatures();
      sensor_outhouse.requestTemperatures();
      
      tft.setCursor(190, 172, fontSize6);     //shift Cursor in Pixel (Collum, Row, Fontsize)
      tft.setCursor(190, 172, fontSize6);     
      tft.print(sensor_inhouse.getTempCByIndex(0));
    
      tft.setCursor(190, 172, fontSize6); 
      tft.setCursor(190, 248, fontSize6);
      tft.print(sensor_outhouse.getTempCByIndex(0));
    }
    Geändert von DH4MBM (10.11.2016 um 00:05 Uhr)

Ähnliche Themen

  1. Nibobee (fast) nichts läuft - Anfänger
    Von BeeAnfaenger im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 24
    Letzter Beitrag: 31.01.2013, 18:30
  2. [ERLEDIGT] LM75 Auswerten und Temperatur über terminal ausgeben?
    Von Ferdinand im Forum C - Programmierung (GCC u.a.)
    Antworten: 13
    Letzter Beitrag: 03.06.2012, 20:25
  3. Lego Cybermaster läuft fast wieder
    Von schrauber 93 im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 19.01.2010, 17:34
  4. Temperatur auf drei 7-Segment-Anzeigen ausgeben
    Von TomEdl im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 15.09.2009, 19:18
  5. Variablen auf Display ausgeben
    Von palermo im Forum C - Programmierung (GCC u.a.)
    Antworten: 20
    Letzter Beitrag: 22.12.2006, 09:55

Stichworte

Berechtigungen

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

Solar Speicher und Akkus Tests