sketch_nov30a.ino (267 Bytes)
Wenn alles in der ino Datei steht geht die Anzeige. Bei Auslagerung in eine andere Datei kommt keine Anzeige .
Ich stehe da auf dem Schlauch.
sketch_nov30a.ino (267 Bytes)
Wenn alles in der ino Datei steht geht die Anzeige. Bei Auslagerung in eine andere Datei kommt keine Anzeige .
Ich stehe da auf dem Schlauch.
where's the other file?
@kal-lan ,
![]()
Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
mfg ein Moderator.
Dann machst du was falsch!
Moin @kal-lan ,
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include "segmentdisplay.h"
void setup() {
// lcd.init(170, 320);
//lcd.fillScreen(ST77XX_BLACK);
Serial.begin(115200);
Serial.print("Connecting to ");
}
void loop() {
SegmentWrite();
}
solange Du die weiteren Files nicht veröffentlichst, wird sich das auch hier im Forum nicht ändern lassen ... ;-)
Gruß
ec2021
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include "segmentdisplay.h"
void setup() {
// lcd.init(170, 320);
//lcd.fillScreen(ST77XX_BLACK);
Serial.begin(115200);
Serial.print("Connecting to ");
}
void loop() {
SegmentWrite();
}
segmentdisplay.cpp
#include "segmentdisplay.h"
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#define ICON_SIZE 13
#define LCD_MOSI 23 // SDA Pin on ESP32 D23
#define LCD_SCLK 18 // SCL Pin on ESP32 D18
#define LCD_CS 15 // Chip select control pin on ESP32 D15
#define LCD_DC 2 // Data Command control pin on ESP32 D2
#define LCD_RST 4 // Reset pin (could connect to RST pin) on ESP32 D4
#define LCD_BLK 32 // Black Light Pin on ESP32 D32
#define LCD_WIDTH 170
#define LCD_HEIGHT 320
Adafruit_ST7789 lcd = Adafruit_ST7789(LCD_CS, LCD_DC, LCD_RST);
// put your main code here, to run repeatedly:
int x = 80 ;
void SegmentWrite(){
Serial.print("Segmentwrite ");
lcd.setRotation(1);
lcd.fillCircle(156, 80, 5, ST77XX_RED);
lcd.fillCircle(156, 120, 5, ST77XX_RED);
lcd.setRotation(1);
lcd.fillRoundRect(x + 15, 100, 35, 15, 7, ST77XX_BLACK);
lcd.setRotation(0);
lcd.fillRoundRect(15, x + 10, 45, 15, 7, ST77XX_RED);
lcd.fillRoundRect(15, x + 40, 45, 15, 7, ST77XX_RED);
lcd.fillRoundRect(65, x + 10, 45, 15, 7, ST77XX_RED);
lcd.fillRoundRect(65, x + 40, 45, 15, 7, ST77XX_RED);
lcd.setRotation(1);
lcd.fillRoundRect(x + 15, 50, 35, 15, 7, ST77XX_RED);
//lcd.fillRoundRect(x + 15, 100, 35, 15, 7, ST77XX_BLACK);
lcd.fillRoundRect(x + 15, 150, 35, 15, 7, ST77XX_RED);
}
segmentdisplay.h
#ifndef _segmentdisplay_h_
#define _segmentdisplay_h_
#include "Arduino.h"
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
//void SegmentWrite( uint8_t z, uint8_t x);
void SegmentWrite();
#endif
alle drei in jeweils einem Tab -> kompiliert fehler- und warnungsfrei
Trotz Fehlerfreier Kompilierung geht die Anzeige nicht
Ideen ?
Das mal aktivieren:
// lcd.init(170, 320);
Ja.
Aehm... Warum willst Du den Teil auslagern?
Übersichtlicher Gestaltung nicht alles an einem Strang
C:\Users\Loehl\OneDrive\Dokumente\Arduino\sketch_nov30a\sketch_nov30a.ino:7:2: error: 'lcd' was not declared in this scope
7 | lcd.init(170, 320);
Dann, solltest du das passend deklarieren!
So sieht es aus jetzt
ino
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include "segmentdisplay.h"
void setup() {
LcdInit();
Serial.begin(115200);
Serial.print("Connecting to ");
}
void loop() {
delay(500);
SegmentWrite();
delay(500);
}
cpp
#include "segmentdisplay.h"
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#define ICON_SIZE 13
#define LCD_MOSI 23 // SDA Pin on ESP32 D23
#define LCD_SCLK 18 // SCL Pin on ESP32 D18
#define LCD_CS 15 // Chip select control pin on ESP32 D15
#define LCD_DC 2 // Data Command control pin on ESP32 D2
#define LCD_RST 4 // Reset pin (could connect to RST pin) on ESP32 D4
#define LCD_BLK 32 // Black Light Pin on ESP32 D32
#define LCD_WIDTH 170
#define LCD_HEIGHT 320
Adafruit_ST7789 lcd = Adafruit_ST7789(LCD_CS, LCD_DC, LCD_RST);
// put your main code here, to run repeatedly:
int x = 80 ;
void SegmentWrite(){
Serial.print("Segmentwrite ");
lcd.setRotation(1);
lcd.fillCircle(156, 80, 5, ST77XX_RED);
lcd.fillCircle(156, 120, 5, ST77XX_RED);
lcd.setRotation(1);
lcd.fillRoundRect(x + 15, 100, 35, 15, 7, ST77XX_BLACK);
lcd.setRotation(0);
lcd.fillRoundRect(15, x + 10, 45, 15, 7, ST77XX_RED);
lcd.fillRoundRect(15, x + 40, 45, 15, 7, ST77XX_RED);
lcd.fillRoundRect(65, x + 10, 45, 15, 7, ST77XX_RED);
lcd.fillRoundRect(65, x + 40, 45, 15, 7, ST77XX_RED);
lcd.setRotation(1);
lcd.fillRoundRect(x + 15, 50, 35, 15, 7, ST77XX_RED);
//lcd.fillRoundRect(x + 15, 100, 35, 15, 7, ST77XX_BLACK);
lcd.fillRoundRect(x + 15, 150, 35, 15, 7, ST77XX_RED);
}
void LcdInit(){
delay(500);
lcd.init(170, 320);
lcd.fillScreen(ST77XX_BLACK);
delay(500);
}
,h
#ifndef _segmentdisplay_h_
#define _segmentdisplay_h_
#include "Arduino.h"
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
//void SegmentWrite( uint8_t z, uint8_t x);
void LcdInit();
void SegmentWrite();
#endif
Danke stehe grad nicht mehr auf dem Schlauch
Dann laß die Ideen sprudeln ![]()
Was mich wundert, warum nimst du für das Display die sehr langsame Adafruit Bibliothek und dazu, nutzt ein ESP32.
Nimm die TFT_eSPI, dann kann man mit dem TFT vernimsftig arbeiten.
Aber für das Demo ist die Adafruit genau die richtige, da sieht man was, die TFT_eSPI häte das erlädigt unter 0.2 Sekunde.
Wenn das nur in der cpp steht, kennt sonst keiner das Objekt lcd.
Mögliche Abhilfe: in der .h noch eine Zeile
extern Adafruit_ST7789 lcd ;
OT:
Weiß hier jemand, warum Adafruit hier (in den Beispielen) den Copy oder Verschiebe Konstruktor nutzt?
Adafruit_ST7789 lcd {LCD_CS, LCD_DC, LCD_RST};
Sollte doch vollkommen reichen
Mir ist nur aufgefallen, dass Adafruit dies bei vielen ihrer Libs machen.