Go Down

Topic: Anfänger, neu im Forum  (Read 4988 times) previous topic - next topic

P_Extruder

...ich möchte es nur Schrott für Schritt lernen
Schaut bisher eher nach Schritt für Schrott aus  :smiley-twist:


Alfaone79

so, mit dem Anzeigen der Zahlen funktioniert es nun schon.....
Die sache mit dem menü noch nicht.

aber nun habe ich schon wieder ein neues Problem,
möchte eine Uht mit Temperatur Anzeige haben, das 1. Problem ist das im meinem OLED SSD1327 Display
in diesem Sketch ein nur 8 pixel hoher breich angezeigt wird und ich nicht weiß warum.
2. wie bekomme ich die Temperatur in dem Sketch intigriert?

Code: [Select]
#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>
#include <RtcDS1307.h>
#include <RTClib.h>

RTC_DS1307 RTC;
U8G2_SSD1327_EA_W128128_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);


void setup () {
  u8g2.begin();
//  Serial.begin (115200);
  Wire.begin();
}

void loop () {
  DateTime now = RTC.now();
  u8g2.clearBuffer();          // clear the internal memory
  u8g2.setFont(u8g2_font_crox2hb_tr);  // choose a suitable font
  u8g2.setCursor(24,50);
  if (now.day() < 10) { u8g2.print("0");}
  u8g2.print(now.day(), DEC);
  u8g2.print('.');
  if (now.month() < 10) { u8g2.print("0");}
  u8g2.print(now.month(), DEC);
  u8g2.print('.');
  u8g2.print(now.year(), DEC);
 
  u8g2.setFont(u8g2_font_crox2hb_tr);
  u8g2.setCursor(10,8);
  if (now.hour() < 10) { u8g2.print("0");}
  u8g2.print(now.hour(), DEC);
  u8g2.print(':');
  if (now.minute() < 10) { u8g2.print("0");}
  u8g2.print(now.minute(), DEC);
  u8g2.print(':');
  if (now.second() < 10) { u8g2.print("0");}
  u8g2.print(now.second(), DEC);

  u8g2.sendBuffer();          // transfer internal memory to the display
  delay (1000);

agmue

#48
Oct 12, 2018, 09:42 pm Last Edit: Oct 12, 2018, 09:43 pm by agmue
Du verwendest U8G2_SSD1327_EA_W128128_1_HW_I2C, was "page buffer, size = 128 bytes" bedeutet. Dann mußt Du auch seitenweise mit firstPage() und nextPage() arbeiten, siehe #38.

Alternativ kannst Du mit "full framebuffer" arbeiten, wenn Dein µC genug davon hat.
Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

Alfaone79

Also müsste ich demnach
 u8g2.firstPage();
Nach u8g2.clearBuffer einfügen?

agmue

Das reicht nicht, da muß auch noch die do/while-Schleife mit nextPage() rein.
Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

Alfaone79

Ohje, wie füge ich die Schleife hinzu

agmue

Siehe meinen Beitrag #38. Ändere die Zeile mit meinem Display in die Zeile mit SSD1327, dann sollte es laufen. Davon ausgehend ergänzt Du die weitere Funktionalität.
Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

Alfaone79

Ich weiß leider nicht wie ich es "umbauen" kann, es bleibt immer der schmale Streifen

agmue

Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

Alfaone79

..... aber auch der klappt nicht

postmaster-ino

Hi

'Geht nicht' ist eine äußerst fundierte und wohl überlegte Fehlerbeschreibung.
Somit musst Du mit der Hilfe: 'Doch, bestimmt sogar' klar kommen.

MfG
Dein Problem, Dein Sketch, Deine Bilder.
Ob ich ohne Diese an Deinem Problem arbeiten will, entscheide aber immer noch ich.
Große Buchstaben? Immer wieder, neben Punkt und Komma, gerne gesehen.

agmue

Das "Umbauen", also die Sache mit den Pages, funktioniert.
Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

Alfaone79

Guten morgen zusammen,
habe den Sketch nun dem entsprechend umgebaut

Code: [Select]
#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>
#include <RtcDS1307.h>
#include <RTClib.h>

RTC_DS1307 RTC;

U8G2_SSD1327_EA_W128128_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); // ESP32 Thing, HW I2C with pin remapping

void setup () {
 
  //Serial.begin (115200);
  Wire.begin();
  u8g2.begin();
}

void loop () {
  DateTime now = RTC.now();
  u8g2.clearBuffer();          // clear the internal memory
  u8g2.setFont(u8g2_font_crox2hb_tr);  // choose a suitable font
  u8g2.setCursor(24,10);
  if (now.day() < 10) { u8g2.print("0");}
  u8g2.print(now.day(), DEC);
  u8g2.print('.');
  if (now.month() < 10) { u8g2.print("0");}
  u8g2.print(now.month(), DEC);
  u8g2.print('.');
  u8g2.print(now.year(), DEC);
 
  u8g2.setFont(u8g2_font_helvR24_tn);
  u8g2.setCursor(2,43);
  if (now.hour() < 10) { u8g2.print("0");}
  u8g2.print(now.hour(), DEC);
  u8g2.print(':');
  if (now.minute() < 10) { u8g2.print("0");}
  u8g2.print(now.minute(), DEC);
  u8g2.print(':');
  if (now.second() < 10) { u8g2.print("0");}
  u8g2.print(now.second(), DEC);

  u8g2.sendBuffer();          // transfer internal memory to the display
  delay (1000);
}

 
aber am Display hat sich nichts verändert.

Was ist noch falsch???

agmue

Ersetze "_1_" durch "_F_", dann sollte es gehen.
Die Vorstellungskraft ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)

Go Up