- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Arduino IDE findet Display-Treiber nicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    144

    Arduino IDE findet Display-Treiber nicht

    Hallo zusammen.

    Bei aktuellem Fehler benötige ich eure Tipps.

    Nach langer Abstinenz beschäftige ich wieder mit der Teensy(3.2)-Programmierung.
    Derzeit baue ich einen Spg-Messer mit Verhältnis-, Strom-, Leistungs- und Stromrichtungsberechnungen.
    Diese Werte sollen in einem Display VELLEMANN VMA438 (I2C) angezeigt werden.
    Um dessen Treiber geht bei den Compiler-Fehler.

    Meine Lösungsversuche:
    • ARDUINO IDE habe ich von V1.xx auf V2.3.3 erneuert.
    • Unter /Sketch/Bibilothek einbinden/ , habe ich "Adafruit SSD1306" gewählt.
    • Als ich das Display vor Ewigkeiten (unter IDE V1.xx) mit nachfolgendem Code programmierte, klappe die Ansteuerung problemlos.


    Code:
    #include <_Teensy.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>
    #include <splash.h> 
    #include <Fonts/FreeSans9pt7b.h>
    #include <Fonts/FreeSans12pt7b.h>
    #include <Fonts/FreeSansBold9pt7b.h>
    #include <Fonts/FreeSansBold12pt7b.h>
    ...
    display.setFont(&FreeSans12pt7b);     //Schriftart, Schriftgröße
    ...
    Primäre Fehlermeldung bei "IDE/Überprüfen";
    • Compilation error: 'class Adafruit_SSD1306' has no member named 'setFont'
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    144
    Nachsatz:
    Ich verstehe nicht warum es in dieser Fehlermeldung geht?
    Treiber nicht gefunden? Synthax-Fehler im Code? Zuweisungsproblem? Falsche Deklaration?
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.207
    Ich schätze einfach, die Lib unterstützt das nicht.
    Macht bei den kleinen Oled's auch nicht allzuviel Sinn.
    GGf. kann man ne andere Bibliothek benutzen, aber mal ehrlich: da nimmt man auch ein etwas höher auflösendes Display.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    144
    =Rabenauge;670827...
    Macht bei den kleinen Oled's auch nicht allzuviel Sinn.
    GGf. kann man ne andere Bibliothek benutzen, aber mal ehrlich: da nimmt man auch ein etwas höher auflösendes Display.
    @Rabenauge, merke ich jetzt auch...
    Nachdem alles läuft, ist bei Texten das Darstellungslimit sehr schnell erschöpft. Nach 3 Zeilen hört der Sinn auf.

    Welche Standardgrößen mit I2C sind empfehlenswert (und kostengünstig)?
    128x128px,
    oder 128x160px ?

    Mir geht es primär um die Darstellung mehrerer Messwerte, zzgl. Ein-Wort-Beschreibung dieser MW.
    Geändert von frabe (07.11.2024 um 09:14 Uhr)
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    144
    Moin "Rabenauge"
    Diese Displays habe ich noch in der Schublade - vorerst muss ich Versuchsweise das nutzen was da ist...

    Welche und woher bekomme ich eine passende/kompatible Lib?

    Liegt die Inkompatibilität an der akt IDE 2.3.3 ?

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    897
    Liegt die Inkompatibilität an der akt IDE 2.3.3 ?
    Aus der Ferne:
    Die Bibliotheken sind ja alle über Git im Netz einsehbar und veröffentlicht. Soweit ich verstanden habe, erbt der Datentyp Adafruit_SSD1306 die setFont()-Funktion von Adafruit_GFX.

    Leider hast Du just die Deklaration Deines "display"-Objektes aus dem obigen Quellcode herausgelöscht. Kann also sein, dass Du versehentlich das display als irgendwas völlig Anderes deklariert hast.
    Kann aber auch sein, dass der Compiler uralte, mehrfach installierte Bibliotheken auf Deiner Platte findet. Da kannst Du mal über die Dateisuche nach "Adafruit_GFX.h" stöbern und in den Dateien verifizieren, dass sie auch wirklich alle das setFont() enthalten.

    An der IDE kann es nur indirekt liegen, wenn sie dem Compiler beim Start falsche Pfade vorgibt. Aber da würde ich zuletzt suchen. Das wäre wahrscheinlich schon früher aufgefallen.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    144
    Hallo "Holomino"

    Ich habe Anfang Okt´24 die alte IDE-Version gelöscht und die IDE V2.3.3 neu installiert. Somit sollte der integrierte Compiler "nagelneu" sein.

    Habe die Platten mal nach "adafruit_gfx.h"" durchsucht - und 3 mal gefunden.
    Alle innerhalb diverser Ordner der gelöschten Arduino-Version v1.8.5 - teils unterschiedliche Dateigrößen zw. 6-12kB
    Keiner dieser "adafruit_gfx.h" beinhaltete "setfont"!

    "Adafruit_SSD1306.h" ist 1 ,al vorhanden. Aber auch der beinhaltet kein "setfont".
    Könnte hier der Generalfehler liegen?

    Folgend die gesamte Deklaration und Einrichtung des Displays - fällt euch hier ein Fehler auf?
    Code:
    #include <_Teensy.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>           //Display-Ansteuerung
    #include <splash.h> 
    #include <Fonts/FreeSans9pt7b.h>        //Schriftarten, Sans, 9px hoch, normal
    #include <Fonts/FreeSans12pt7b.h>       //Schriftarten, Sans, 12px hoch, normal
    #include <Fonts/FreeSansBold9pt7b.h>    //Schriftarten, Sans, 9px hoch, fett
    #include <Fonts/FreeSansBold12pt7b.h>   //Schriftarten, Sans, 12px hoch, fett
    
    #define OLED_RESET -1                       //Display; Reset pin # (or -1, da kein Reset-Pin am Display)
    #define SCREEN_WIDTH 128                    //Display; OLED display Breite, in pixels
    #define SCREEN_HEIGHT 64                    //Display; OLED display Höhe, in pixels
    
    const int ADC_Aufloesung = 8192;            //Auflösungsstufen bei ADC=13bit (2^13bit) = 0,61mV
    ...
    
    //Display initianlisieren
    Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);   //Display, VELLEMAN VMA438
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    897
    Stronk!
    Du könntest versuchen, die Libs direkt aus den Git-Repositories zu ziehen:
    https://github.com/adafruit/Adafruit-GFX-Library
    und
    https://github.com/adafruit/Adafruit_SSD1306

    Da ist jeweils ziemlich weit oben eine mit "<>Code" beschriftete knallgrüne Schaltfläche, wo Du nach dem Draufklicken "Download ZIP" wählen kannst. In diesen Quellen jedenfalls ist das setFont() auch deklariert.
    In Arduino installiert bekommst Du den Kram dann über Sketch->Bibliothek einbinden->ZIP Bibliothek hinzufügen.
    (Zumindest bei meiner alten Arduino-Version läuft das so)

    Wenn das nicht funzt oder immer noch nichts bringt:
    Im Git steht auch drin, wann der/ die Entwickler das letzte mal dran herumgefummelt haben.
    Da steht bei der GFX zumindest was von vor drei Wochen und damit bestehen also gute Chancen, dass das Projekt noch aktiv ist und man bei (ganz liebevoll geschilderten) Fragen oder Problemen nicht nur Antworten bekommt, sondern auch ein bisschen über die Gründe hört. Unter "issues" kannst Du fragen und vorher auch schauen, ob es zu Deinem Problem nicht sogar schon eine Äußerung gibt.

    Aber sei lieb zu diesen Menschen. Das ist Open Source und viele machen das freiwillig.

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    144
    DAAAAAANKE
    Dein Hinweis war Gold wert - ich hatte endlich einen "Anpack" - habe alle adafruit_gxf.h und adafruit_ssd1306.h gelöscht und über IDE/Bibliotheksveraltung neu installiert.
    Diese Fehlermeldung ist weg!

    Jetzt habe ich eine Andere - wahrscheinlich ein Syntaxfehler;

    Fehlermeldung;
    Code:
    Compilation error: no matching function for call to 'Adafruit_SSD1306::println(const char [14], int&, int, const char [3])'
    Beispielcode,
    wobei die "2" die Nachkommastellen begrenzen soll. Steckt hier der Fehler?
    Solldarstellung im Display, Bsp: "Spannung MW2: 3,36 V"
    Code:
    int Vmw1 = 0;
    ...
    display.println("Spannung MW2:", Vmw1, 2, " V");
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    897
    Ok, die Fehlermeldung besagt, dass es in dem display-Objekt keine zu den übergebenen Parametern passende println-Funktion gibt. (In C++ nennt sich das Funktionsüberladung, wenn mehrere gleichnamige Funktionen mit unterschiedlichen Parametern angeboten werden)

    Offensichtlich erbt der Typ "Adafruit_GFX" über "print.h" das println vom irgendwo im Arduino-Core verborgenen "Print"-Typ.

    Das Miese: Den "Print"-Datentyp finde ich zwar als Git, aber ohne Kommentare und die Parameternamen sagen mir auch nix.
    Das Gute: Wenn's im Core liegt, gibt's üblicherweise auch eine Hilfe als Referenz (suchmaschinere mal nach "Arduino Print").
    Das Miese: Irgendwas hat zur Zeit die Referenz zerschossen, zumindest bei mir.
    Das Gute: Es gibt noch ein Serial.Println() in der Referenz. Das sieht ganz ähnlich aus.

    Da müsstest Du sehen, was mit dem println() geht und was Du davon brauchen kannst.

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Programm findet Controler nicht
    Von Barung im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 26.04.2009, 14:04
  2. Windows findet Datei von Treibersoftware nicht
    Von Da_Vinci13 im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 11.02.2009, 16:09
  3. Probleme mit Lib (findet Funktionen nicht)
    Von facile im Forum Asuro
    Antworten: 4
    Letzter Beitrag: 07.02.2009, 12:34
  4. WinAvr findet Atmega32 nicht
    Von bugmenot im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 12.12.2008, 18:20
  5. Compiler findet Labels nicht???
    Von EDatabaseError im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 07.11.2006, 17:44

Stichworte

Berechtigungen

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

12V Akku bauen