INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
wieder mal belebtes Haus
12.10.2017, 10:12
Beitrag #49
RE: wieder mal belebtes Haus
Hallo Tommy,

Danke für den Hinweis, ich habe es beobachtet.
Habe im Moment nur viel zu tun mit den Vorbereitungen der Modellbahn-Börse am Sonntag.

Aber dann....

Grüße Ingo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.10.2017, 14:44
Beitrag #50
RE: wieder mal belebtes Haus
(12.10.2017 10:12)Ingo schrieb:  Hallo Tommy,
...Modellbahn-Börse am Sonntag.

Aber dann....

Grüße Ingo

WO ? Wie ? Wann?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.10.2017, 14:36
Beitrag #51
RE: wieder mal belebtes Haus
Hallo lufink,

sorry, habe hier tagelang nicht reingeschaut.
Unser Modellbahn-Club MECK (Modelleisenbahn-Club Kläden) hat am Sonntag seine 3. Modellbahn-Börse veranstaltet. Wie schon die letzten beiden Male zur Zufriedenheit etlicher Kunden und auch der Aussteller.
Die nächste Börse im Februar 18 ist von den Ständen (Tischen) her schon wieder ausgebucht.
Kläden liegt im Norden Sachsen-Anhalts, zwischen Stendal und Bismark.

Bei Interesse gibt es mehr Info´s.

Grüße Ingo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.10.2017, 16:07
Beitrag #52
RE: wieder mal belebtes Haus
Hallo Tommy,

heute hatte ich mal Ruhe, um mich mit der Laufschrift aus "RGB-OLED......." zu beschäftigen. Habe es allerdings nicht einarbeiten können, dazu fehlt mir wenigstens 1 Gehirnwindung.
Dann habe ich deinen Satz gelesen:

Zitat:Die Funktion scroll() rückt bei jedem Aufruf den Text um 1 Zeichen nach links. Da Du sie 2 mal aufrufst, sind es halt 2 Zeichen. Den Aufruf in Serial.println brauchst Du nicht.

Das war ja genau mein Problem.
Also alles mit "Serialprint" auskommentiert, und schon rückt die Laufschrift brav
um jeweils 1 Zeichen weiter, nicht mehr um 2.
Jetzt noch ein wenig mit dem "SCROLLINTERVALL" herumgespielt, ein wenig herunter gesetzt.

Nee, ist das schön !!!

Vielen herzlichen Dank für deine Hilfe !!!!!!!!

Grüße Ingo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.10.2017, 16:20
Beitrag #53
RE: wieder mal belebtes Haus
Schön, wenn es funktioniert. In dem anderen Thread zur Laufschrift habe ich auch noch eine Variante von Scroll mit einem Parameter vorgestellt, bei der man durch diesen wählen kann:
- nur den aktuellen Text ausgeben ohne vorrücken
- vorrücken und den neuen Text ausgeben.

Außerdem ist dort auch noch eine gekapselte Version, wenn man mehrere Lauftexte haben will.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle von mir veröffentlichten Codes unterliegen der GPL Version 3
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.10.2017, 16:31
Beitrag #54
RE: wieder mal belebtes Haus
so weit hatte ich es verstanden, hab es aber nicht hingekriegt.

Mit der jetzigen Variante bin ich aber sehr glücklich, und vor allen Dingen:

etwas gelernt !

Grüße Ingo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.10.2017, 16:39
Beitrag #55
RE: wieder mal belebtes Haus
(22.10.2017 16:31)Ingo schrieb:  Mit der jetzigen Variante bin ich aber sehr glücklich, und vor allen Dingen:

etwas gelernt !
Das ist das Wichtigste.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle von mir veröffentlichten Codes unterliegen der GPL Version 3
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.10.2017, 07:53
Beitrag #56
RE: wieder mal belebtes Haus
Hallo Tommy,

leider muss ich dich nochmal belästigen.
In dem Sketch hat sich ein Fehler (???) eingeschlichen.
Das Teil wird schon nachgebaut, gestern erhielt ich einen Anruf, die Preise werden nach 3 Minuten nicht verändert.

Zum Testen nach Änderungen habe ich in der Zeile
Code:
const uint32_t INTERVALL = 3 * 60 * 1000; // das wären 3 Minuten
immer aus der 1000 eine 100 gemacht, man ist ja ungeduldig.
Damit klappte es auch.

Ich habe jetzt etliche Male getestet, mit
Code:
const uint32_t INTERVALL = 32  * 1000; // das wären 3 Minuten
funktioniert es, ab
Code:
const uint32_t INTERVALL = 33 * 1000; // das wären 3 Minuten
ist Feierabend.

Ich habe dann deinen Sketch vom 23.09. genommen, für mein Display lauffähig gemacht, und kann diesen Effekt auch hier nachvollziehen.

Hättest du die Freundlichkeit, dir das Ganze mal anzuschauen ?

Anbei noch mal der aktuelle Sketch.

Code:
#include <TFT.h>
//Pins zuweisen
int rst = 8;
int dc = 9;
int cs = 10;
TFT tftDisplay = TFT(cs, dc, rst);

// wir arbeiten mit byte und tun bei der Anzeige nur so, als wären es Kommazahlen. Das spart Speicher.
uint8_t preisBasis = 132;  // = LKW
uint8_t grenzeUnten = 120, grenzeOben = 170;
uint8_t diesel = 2, benzin = 4, super = 6, superplus = 12, gas = -52; // Differenz der Kraftstoffe

char text[] = "    Bockwurst + Kaffee 1,60    ***    Autowaesche 5,60    ***"; // Scrolltext
const uint8_t laenge = 18;  //Länge des Ausschnittes

// Zeitsteuerung
uint32_t aktMillis, lastMillis;
uint32_t lastMillisScroll;
const uint32_t SCROLLINTERVALL = 300; // Scrollabstand in Sekunden
const uint32_t INTERVALL = 32 * 1000; // das wären 3 Minuten

// uint8_t zu scheinbarem Floatstring
char *byteToFloat(uint8_t in) {
static char preisStr[5];
   preisStr[4] ='\0';
   preisStr[1] ='.';  // oder ','
   preisStr[3] = in % 10 +'0';
   in /= 10;
   preisStr[2] = in % 10 +'0';
   in /= 10;
   preisStr[0] = in % 10 +'0';
   return preisStr;
}
// Ausgabe eine Zeile
void schreibPreis(int y, char* beschriftung, uint8_t preisZahl) {
int abstandLinksText = 5;
char *preis = byteToFloat(preisZahl);

   //Kraftstoffart klein schreiben
   tftDisplay.setTextSize(1);
   tftDisplay.text(beschriftung, abstandLinksText, y);

   //Preis gross schreiben
   tftDisplay.setTextSize(2);
   int abstandLinksPreis = 70; //durch Experimente ermittelt
   tftDisplay.text(preis, abstandLinksPreis, y);

   //eine kleine 9 schreiben
   tftDisplay.setTextSize(1);
   int abstandLinks9 = 120; //durch Experimente ermittelt
   tftDisplay.text("9", abstandLinks9, y);
}

//schreib die Preise

void schreibeNeu() {

//Hintergrund schwarz füllen
  tftDisplay.background(0, 0, 0);
  //Schriftfarbe schwarz setzen
  tftDisplay.stroke(0, 0, 0);

//Hintergrund schwarz füllen
  tftDisplay.background(0, 0, 0);
  //Schriftfarbe weiss setzen
  tftDisplay.stroke(255, 255, 255);
  
int y = 10;
int zeilenHoehe = 28; //Pixel pro Zeile; durch Experimente ermittelt
// neuen Basispreis berechnen
uint8_t diff = random(6) - 3;  // 3 Cent +- Differenz
uint8_t neu = preisBasis + diff;
   if (neu < grenzeUnten || neu > grenzeOben) {
     neu = preisBasis - diff;
   }
   preisBasis = neu;
  
   schreibPreis(y, "Diesel", preisBasis + diesel);
   y += zeilenHoehe;
   schreibPreis(y, "Benzin", preisBasis + benzin);
   y += zeilenHoehe;
   schreibPreis(y, "Super", preisBasis + super);
   y += zeilenHoehe;
   schreibPreis(y, "Super+", preisBasis + superplus);
}

// Berechnen des Scrollstücks
char * scroll() {
static char stueck[laenge+1];
   uint8_t len = strlen(text);  
   char first=text[0];
   uint8_t idx = 0;
   while (text[idx++] = text[idx]);
   text[len-1]=first;
   strlcpy(stueck,text,laenge+1);
   return stueck;
}

void setup() {

   tftDisplay.begin();
   //Hintergrund schwarz füllen
   tftDisplay.background(0, 0, 0);
   //Schriftfarbe rot setzen
   tftDisplay.stroke(0, 0, 255);
   //Display ist hochkant
   tftDisplay.setRotation(0);


   randomSeed(analogRead(A0));  // unbenutzter Analogeingang  
   schreibeNeu();
}


void loop() {
   aktMillis = millis();
   if (aktMillis - lastMillis >= INTERVALL) {
     lastMillis = aktMillis;
     schreibeNeu();
   }
   if (aktMillis - lastMillisScroll >= SCROLLINTERVALL) {
     lastMillisScroll = aktMillis;

// Bildschirm löschen und neue Ausgabe

tftDisplay.fill(0,0,0);
// breite = tftDisplay.width(); //ganze Breite
// x dürfte 0 sein, die beiden anderen musst Du experimentieren
// x und y sind die Koordinaten des Eckpunkts links oben.
tftDisplay.rect(0,116, 128, 18);  // x, y, Breite, Höhe

//    tftDisplay.stroke(0,0,0);
    tftDisplay.stroke(255,255,255);
    tftDisplay.setTextSize(1);
    int abstandLinksTextScroll = 10;
    int q = 121;
    tftDisplay.text(scroll(), abstandLinksTextScroll, q);
    tftDisplay.setTextSize(2);
    tftDisplay.text("Gute Fahrt!", 0, 140);
   }
}

Grüße Ingo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  wieder mal serielle Kommunikation Rettungsmaus 12 8.734 15.10.2014 18:47
Letzter Beitrag: Rettungsmaus

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste