Welche Fehlermeldung ?
Warum zeigst du uns die nicht ?
In meinen Augen ist es nicht die Lib selbst, sondern das Zubehör. Und das sind die Schriften. Man sollte heraus finden, was die Schrift selbst an Speicher frisst.
Vielleicht hilft das Speicher zu sparen.
Gruß
Pucki
Ja, ist manchmal etwas unübersichtlich hier das Forum je nach dem mit welche, Gerät ich es betrachte. In Zukunft werde ich versuchen die relevanten Infos direkt zu erwähnen.
Die Fehlermeldung kam erst als ich meine Klasse Disp aufgelöst und die Methoden in die Main gezogen hab. Dort hat der Beispielcode von Adafruit über den Serial Monitor den Fehler gezeigt
Ich könnte jetzt versuchen den Speicher für meine eigenen Klassen zu reduzieren. Bin es nicht gewohnt so optimiert zu programmieren. Wenn das nicht ausreicht, dann probiere ich eine andere Lib mit weniger Schriften.
Etwas enttäuscht bin ich vom Uno aber schon. So viele Geräte sind nicht angeschlossen. Das war meine Idee für einen Einstieg um mit meinen Töchtern größere Dinge zu machen. Aber immerhin habe ich was gelernt.
Wäre es auch eine Möglichkeit einen kleinen esp für den Display zu verwenden und mit i2c die Werte zum Anzeigen rüber zu senden?
Vielen Dank für eure Antworten.
Ja, das wäre ein Möglichkeit. Da kannst du zwischen I2C und seriell (UART) als Übertragung wählen. Oder alles mit dem ESP machen. Ich würde den ESP8266 als Wemos D1 mini oder den NodeMCU empfehlen.
Halt, du möchtest den ESP als Anzeigetreiber verwenden und bekommst die Daten vom Uno ? Dann geht nur seriell. Der ESP8266 geht nicht (einfach) als I2C Slave.
Und dann noch Master fürs Oled, geht nicht. Also seriell.
du solltest ein wenig an deinen Erwartungen schrauben.
Du hast da einen Microcontroller mit 2K SRAM. Wahrscheinlich hat deine Waschmaschine mehr - und die wäscht nur!
Am Uno gilt es jedes einzelne Byte zu sparen.
Der Uno kann viel aber du musst eben mit den gegebenen Resourcen haushalten.
Zwei Dinge die mir auffallen:
- überprüfe jedes int ob das ein vorzeichenbehafter Wert mit 2 byte sein muss.
- besonders dort wo zu arrays anlegts ... braucht das alles int?!?
- Google mal nach Arduino F-Makro und ersetze alle Fixtexte damit.
Vielen vielen Dank für die schnellen und hilfreichen Antworten von euch. Die haben mir geholfen das Problem aufzuzeigen. Ebenso habe ich gute Tipps zu alternativen Bibliotheken, Variablentypen und ebenso zu anderen Microcontrollern erhalten. Da werde ich mich jetzt ebenfalls mal umsehen.
Meine Erwartungen an den Arduino schraube ich runter und versuche mich mal an den arrays. Das könnten auch 2 Bytes sein. Muss nicht mal ein int Array sein. Das speichert nur 0 und 1.
Verabschiede sich von der Adafruit, die ist zu Fett nehme die GitHub - greiman/SSD1306Ascii: Text only Arduino Library for SSD1306 OLED displays und F-Makro für alle Statische Ausgaben
F-Makro verschiebt die Texte in Flashspeicher. wen das funktioniert alle Serial ausgaben kommentieren, dadurch wird viel Speicher gespart, Serial Monitor wird ja meistens nur bei testen gebraucht, mach ich immer so, funktioniert ein Abschnitt, weg damit
Dann könntest du 8 Zustände in einem Byte speichern. Jedes Bit für einen Zustand.
Binär sind das sogar 256.
Ein 0 oder 1 (z.B. LOW oder HIGH) für 8 Variablen ( z.B. 8 Pin Zustände) in einem Byte.
Die Zustände der 8 Variablen können zusammen 256 Möglichkeiten abbilden.
Vertraue diesen Jumperkabeln auf keinen Fall! Mich hat das mal mehrere Wochen arbeit gekostet, auf den Fehler eines Jumperkabels zu kommen, bei den der eine Stecker nur kontakt zur Kabelisolation, anstadt zum inenleiter hatte. Da gleichzeitig auch bei der verwendeten Software ein hinweis enthalten war, dass es mit dem Zusatzmodul an I2C manchmal zu Problemen führt, hab ich den Fehler, nach dem ich sicher war, die Pins richtig verbunden zu haben, also SDA -> SDA, SCL -> SCL, VCC -> VCC, GND -> GND, immer in der Software und deren Konfig gesucht. Erst als ich dan mal probeweise das Modul mitsammt den dranhängenden Jumperkabeln an nem Uno angeschlossen hab, an dem grad davor ein Anderes Modul mit gleicher Funktion gehangen hat, bin ich dahintergekommen, das da was mit dem Modul nicht stimmt hab dann aufs geratewohl mal die kabel durgeklingelt und festgestellt, das SCL am Modul nicht ankommt. Kabel getauscht und alles war ok. Seither ckecke ich die Jumperkabel immer erst durch, bevor ich sie in nem Experiment benutze.
hihi. Ich wollte nicht mein üblichen Spruch mit der Durchgangsprüfung (BEEP-Mode) anbringen. ABER gerade wenn Steckboards im Spiel sind, sollte man das zu persönlichen Norm machen.
Gruß
Pucki
Bei mir war noch nicht mal ein Steckboard im Einsatz. Da war Nur ein Modul mit nem I2C-FRAM drauf, das ich als EEPROM Ersatz an nem 3d-Drucker Mainboard anschliessen wollte, da der afm Mainboard verbaute Prozessor kein internes EEPROM besitze und dieses nur im Flash emuliert, wenn kein externes vorhanden ist. Allerdings hatte Marlin (die FW des Druckers) , in der damalig aktuellen Vesion einen BUG im Umgang mit externen I2C EEPROMS, der sich unterschiedlich auswirkte. Inzwischen ist das aber endlich behoben. Ich hatte also das Mdul, das eingelötete Stiftleisten hat mittels Jumperkabel mit dem Mainboard , das da ebenfals ne Stiftleiste hat, verbunden. und bekam dan einfach dieses verflixte modul nicht zum laufen. Direktes aufstecken ging nicht, da die Pinfolge nicht passte. Das das Modul selbst funktioniert wusste ich durch vorherige tests an nem Nano über ein Steckbrett.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.