Passende Librarys für den HC-12 Funkmodul und einem LCD/TFT Display

Bei dem von dir gewählten Display brauchst du nur die "Treiber-Library", damit dein Controller damit arbeiten kann. Um das von dir gezeigte Layout zu erstellen, braucht es keine Library, nur deine Programmierarbeit.
Du musst alles selbst im Controller (Arduino) programmieren, damit es so wie du zeigst, aussieht.
Und ja, das kann dann individuell angepasst werden.

In der Arduino IDE scheint es diese Lib nicht zu geben, im Internet fand ich dazu auch nichts.
Aber dafür soll wohl die Arduino GFX Lib mit dem ST7796 Controller Kompatibel sein. Die schwierigkeit wird dann wohl das Layout werden

Dir hat doch @fony schon etwas dazu geschrieben.
Ich kenne das Display nicht, kann daher nichts dazu beitragen.
Und "spezielle" Hardware Libraries wirst du so auch nicht in der IDE finden.

Ja, ich habe auf LCDwiki geschaut wie @fony es mir gesagt hat, die LIb`s die man dort herunterladen kann kann ich nicht in die Arduio IDE einbinden, dann erscheint die Fehlermeldung das die Lib nicht Gültig ist.

Ist für SPI Displays :wink:
Hier ist die Lib unter Program Download, runterladen irgend wo den Ordner auspacken, danach auf ->1.Demo -> Demo_Arduino_Mega -> Install libraries
dort sind die Treiber versteckt, Die drei Ordner auswählen und in dein Lib Ordner kopieren :wink:
unter github findet man die auch :wink:

Gemach wie ich geschrieben habe? Lesen muss man schon.
Ist nicht die einzige was so komisch wird eingebunden :wink:
Die drei Dateien in Libordner kopieren

Und wen dein Display da ist habe was vorbereitet, damit man weis wie Lib zu handhaben ist, Rest darfst du machen :wink:

/* Beispiel für Forum 
 *  https://forum.arduino.cc/t/passende-librarys-fur-den-hc-12-funkmodul-und-einem-lcd-tft-display/1172499/25
* für 3,95" LCDWicki Display mit ST7796 Treiber
*/
#include "RTClib.h"
RTC_DS3231 rtc;

#include <LCDWIKI_GUI.h> //Core graphics library
#include <LCDWIKI_KBV.h> //Hardware-specific library
//the definiens of 8bit mode as follow:
//die Definitionen des 8bit-Modus wie folgt:
//if the IC model is known or the modules is unreadable,you can use this constructed function
LCDWIKI_KBV tft(ST7796S, 40, 38, 39, 43, 41); //model,cs,cd,wr,rd,reset

//Farbpalette
#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

//Anfangs Koordinaten für Zeichnen auf Display
//x1, y1 ist oben links
//   x1,   y1,   x2,  y2  Die Lib nutzt keine Breite und Höhe sonst wurde stehen w für x2, und h für y2
uint16_t x1 = 40; uint16_t y1 = 60;
uint16_t x2 = 440; uint16_t y2 = 120;
//Hilfs Koordinat wegen schreiberei
uint16_t x3 = x2 - x2 / 2 + x1 / 2;

void setup() {
  Serial.begin(9600);
  if (! rtc.begin()) {
    Serial.println("RTC3231 nicht gefunden");
    Serial.flush();
    while (1) delay(10);
  }

  tft.Init_LCD();
  tft.Fill_Screen(BLACK);  //Hintergrund Farbe
  tft.Set_Rotation(1); 
  tft.Set_Text_colour(WHITE);
  tft.Set_Draw_color(WHITE);

  //   Grundgerüst wird gezeichnet
  tft.Draw_Rectangle( x1, y1, x2, y2);//Großer Rechteck
  tft.Draw_Rectangle( x1, y2, x3, y2 + y1); //Erster kleiner Rechteck links
  tft.Draw_Rectangle( x3, y2, x2, y2 + y1); //Erster kleiner Rechteck rechts
  tft.Draw_Rectangle( x1, y2 + y1, x3, y2 * 2); //Zweiter kleiner Rechteck links
  tft.Draw_Rectangle( x3, y2 + y1, x2, y2 * 2); //Zweiter kleiner Rechteck rechts

}

void loop() {
  DateTime now = rtc.now();
  tft.Set_Text_colour(WHITE);
  tft.Set_Text_Size(3);
  tft.Set_Text_Mode(0);//Löschen und Überschreiben alten Wert
  tft.Set_Text_Back_colour(BLACK);
  tft.Print_Number_Int((now.hour()), 60, 75, 2, ' ', 10);
  tft.Set_Text_Size(4);
  tft.Print_String(":",  98, 70);
  tft.Set_Text_Size(3);
  if (now.minute() < 10) {
    tft.Print_String ("0", 122, 75);
    tft.Print_Number_Int((now.minute()), 142, 75, 2, ' ', 10);
  }
  else tft.Print_Number_Int((now.minute()), 122, 75, 2, ' ', 10);
  tft.Print_String("Uhr", 165 , 75);
  tft.Print_Number_Int((now.day()), 240, 75, 2, ' ', 10);
  tft.Print_String(".", 272 , 75);
  if (now.month() < 10) {
    tft.Print_String("0", 294, 75);
    tft.Print_Number_Int((now.month()), 314, 75, 2, ' ', 10);
  }
  else tft.Print_Number_Int((now.month()), 294, 75, 2, ' ', 10);
  tft.Print_String(".", 328 , 75);
  tft.Print_Number_Int((now.year()), 348, 75, 4, ' ', 10);

}

Musste mir die Doku aufmachen, seit 2J mit der Lib nichts gemacht.
Das Display hängt jetzt normalerweise am einem ESP32.

Jetzt noch eine Version mit formatierter Anzeige :wink:
mit viel weniger schreiberei, darfst Testen

/* Beispiel für Forum
    https://forum.arduino.cc/t/passende-librarys-fur-den-hc-12-funkmodul-und-einem-lcd-tft-display/1172499/25
  für 3,95" LCDWicki Display mit ST7796 Treiber
*/
#include "RTClib.h"
RTC_DS3231 rtc;

#include <LCDWIKI_GUI.h> //Core graphics library
#include <LCDWIKI_KBV.h> //Hardware-specific library
//the definiens of 8bit mode as follow:
//die Definitionen des 8bit-Modus wie folgt:
//if the IC model is known or the modules is unreadable,you can use this constructed function
LCDWIKI_KBV tft(ST7796S, 40, 38, 39, 43, 41); //model,cs,cd,wr,rd,reset

//Farbpalette
#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

//Anfangs Koordinaten für Zeichnen auf Display
//x1, y1 ist oben links
//   x1,   y1,   x2,  y2  Die Lib nutzt keine Breite und Höhe sonst wurde stehen w für x2, und h für y2
uint16_t x1 = 40; uint16_t y1 = 60;
uint16_t x2 = 440; uint16_t y2 = 120;
//Hilfs Koordinat wegen schreiberei
uint16_t x3 = x2 - x2 / 2 + x1 / 2;

void setup() {
  Serial.begin(9600);
  if (! rtc.begin()) {
    Serial.println("RTC3231 nicht gefunden");
    Serial.flush();
    while (1) delay(10);
  }
  tft.Init_LCD();
  tft.Fill_Screen(BLACK);  //Hintergrund Farbe
  tft.Set_Rotation(1);
  tft.Set_Text_colour(WHITE);
  tft.Set_Draw_color(WHITE);

  //   Grundgerüst wird gezeichnet
  tft.Draw_Rectangle( x1, y1, x2, y2);//Großer Rechteck
  tft.Draw_Rectangle( x1, y2, x3, y2 + y1); //Erster kleiner Rechteck links
  tft.Draw_Rectangle( x3, y2, x2, y2 + y1); //Erster kleiner Rechteck rechts
  tft.Draw_Rectangle( x1, y2 + y1, x3, y2 * 2); //Zweiter kleiner Rechteck links
  tft.Draw_Rectangle( x3, y2 + y1, x2, y2 * 2); //Zweiter kleiner Rechteck rechts

}

void loop() {
  DateTime now = rtc.now();
  tft.Set_Text_colour(WHITE);
  tft.Set_Text_Size(3);
  tft.Set_Text_Mode(0);//Löschen und Überschreiben alten Wert
  tft.Set_Text_Back_colour(BLACK);
  static char uhr[8 ];
  sprintf(uhr, "%.2d:%.2d ",
          now.hour(), now.minute());

  tft.Print_String(uhr, 60, 75);
  static char jahr[12];
  sprintf(jahr, "%.2d.%.2d.%.2d ",
          now.day(), now.month(), now.year());
  tft.Print_String("Uhr", 168 , 75);
  tft.Print_String(jahr, 240, 75);
}
1 Like

Da sage ich schonmal vielen dank :grin:
Sobald das Display da ich werde ich Testen und Präsentieren

Darf ich fragen woher die Real Time Clock die infos für die Uhrzeit herholt ? ich vermite mal die lib nutzt die HC-12 Module als empfänger, so wie vom Prinzip her eine radio controlled uhr funktioniert ?

EDIT:
Ich hab verstanden das ist ein extra Modul mit einer Knopfzelle

Wenn du eine RTC kaufen willst dan nicht die DS1307 ist sehr ungenau.Die DS3231geht wie ein Sweizer😁

Mein Display ist heute angekommen, mit dem Code von dir hab ich nur ein weißen Hintergrund

mach

LCDWIKI_KBV tft(ILI9488, 40, 38, 39, 43, 41); 

nicht das du Hast den mit ILI bekommen, habe beide, und kurioser weise mit ILI funktioniert der auch nur die Farben sind nicht echt, zu grell

Alles Zurück du hast ja keine RTC deshalb mach das mall so :wink: eine Minute bitte
Es sollte nur der Rahmen angezeigt werden

/* Beispiel für Forum
    https://forum.arduino.cc/t/passende-librarys-fur-den-hc-12-funkmodul-und-einem-lcd-tft-display/1172499/25
  für 3,95" LCDWicki Display mit ST7796 Treiber
*/
#include "RTClib.h"
RTC_DS3231 rtc;

#include <LCDWIKI_GUI.h> //Core graphics library
#include <LCDWIKI_KBV.h> //Hardware-specific library
//the definiens of 8bit mode as follow:
//die Definitionen des 8bit-Modus wie folgt:
//if the IC model is known or the modules is unreadable,you can use this constructed function
LCDWIKI_KBV tft(ILI9488, 40, 38, 39, 43, 41); //model,cs,cd,wr,rd,reset

//Farbpalette
#define BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

//Anfangs Koordinaten für Zeichnen auf Display
//x1, y1 ist oben links
//   x1,   y1,   x2,  y2  Die Lib nutzt keine Breite und Höhe sonst wurde stehen w für x2, und h für y2
uint16_t x1 = 40; uint16_t y1 = 60;
uint16_t x2 = 440; uint16_t y2 = 120;
//Hilfs Koordinat wegen schreiberei
uint16_t x3 = x2 - x2 / 2 + x1 / 2;

void setup() {
  Serial.begin(9600);
/*  if (! rtc.begin()) {
    Serial.println("RTC3231 nicht gefunden");
    Serial.flush();
    while (1) delay(10);
  }
  */
  tft.Init_LCD();
  tft.Fill_Screen(BLACK);  //Hintergrund Farbe
  tft.Set_Rotation(1);
  tft.Set_Text_colour(WHITE);
  tft.Set_Draw_color(WHITE);

  //   Grundgerüst wird gezeichnet
  tft.Draw_Rectangle( x1, y1, x2, y2);//Großer Rechteck
  tft.Draw_Rectangle( x1, y2, x3, y2 + y1); //Erster kleiner Rechteck links
  tft.Draw_Rectangle( x3, y2, x2, y2 + y1); //Erster kleiner Rechteck rechts
  tft.Draw_Rectangle( x1, y2 + y1, x3, y2 * 2); //Zweiter kleiner Rechteck links
  tft.Draw_Rectangle( x3, y2 + y1, x2, y2 * 2); //Zweiter kleiner Rechteck rechts

}

void loop() {
/* DateTime now = rtc.now();
  tft.Set_Text_colour(WHITE);
  tft.Set_Text_Size(3);
  tft.Set_Text_Mode(0);//Löschen und Überschreiben alten Wert
  tft.Set_Text_Back_colour(BLACK);
  static char uhr[8 ];
  sprintf(uhr, "%.2d:%.2d ",
          now.hour(), now.minute());

  tft.Print_String(uhr, 60, 75);
  static char jahr[12];
  sprintf(jahr, "%.2d.%.2d.%.2d ",
          now.day(), now.month(), now.year());
  tft.Print_String("Uhr", 168 , 75);
  tft.Print_String(jahr, 240, 75);
*/
}

Funktioniert Kurioserweise immer noch nicht, ich hoffe nicht das das Panel direkt kaputt ist

Laut eBay ist der Chipsatz ein ST7796S sollte eigl. Funktionieren

ACHSO

Baue mall das zusammen Moment, eigentlich ohne der RTC sollte funktionieren.
Frage was stecht auf der Verpackung normale weise ist der Treiber aufgeschrieben

Doch ILI 9488
Den Letzten Sketch nehmen und auf ILI ändern

Ja, widersprüchlich zu dem was in der Artikelbeschreibung steht

Meine Habe geschrieben das die gibt es zwei mall, je nach dem was der packt landet in Versand