• Hallo Zusammen, Aufgrund der aktuellen Situation setzten wir die Möglichkeit aus, sich mit Gmail zu registrieren. Wir bitten um Verständnis Das RCMP Team

Gefahren Arduinogesabbel :)

BAXL

Admin
Mitarbeiter
Hey tausend Dank!:thumbsup:

Wenn ich so die Größe der Buchstaben auf Deinem Foto ansehe, dann schwahnt mir, dass mein Display für die Anzahl der Anzeigedaten wohl auch zu klein sein wird:(. Die größeren Display haben leider idR. keinen I2C Anschluß und ich muß ganz viel verkabeln.
 

DFENCE

Mitglied
Mein Display ist das 0.96" Display also das kleine, du hast das große. Doch die Großen Displays haben I2C es gibt auch eins mit SPI Schnittstelle, Das wäre nen 1.8" TFT Display, das gibts genauso mit i2c
Das ist nen Vollwertiges TFT Farbdisplay
WhatsApp Image 2019-11-08 at 11.44.12.jpeg WhatsApp Image 2019-11-08 at 11.44.22.jpeg
 

BAXL

Admin
Mitarbeiter
wenn meins (1,3") das Große sein soll, dann ist das 0,98" Display sicher winzig :D.
Ist Dein 1,8" Display von AZ-Delivery?
 

DFENCE

Mitglied
zJa wirklich groß ist es nicht :D Aber man kann coole sachen mit machen. Ich hatte mal nen kleinen 20Watt Verstärker gebastelt aus nen handvoll teile und das Display genutzt als Analoge Austeuer Anzeige, muss das Video suchen, das sah echt Cool aus. Dafür sind diese Displays auch wirklich klasse.

Das 1.8"er müsste ich schon bei AZ Gekauft haben, bin aber nicht mehr 100% Sicher, ich hab mit dem Teile Sammeln und den Arduinos angefangen bevor es AZ gab und hab quasi alles von Amazon gekauft was innerhalb 24 Stunden Lieferbar war und irgendwann kamen die teile alle von AZ :D
 

DFENCE

Mitglied
Ja darauf haste mich das letzte mal schon Hingewiesen, hab ich auch nicht Vergessen ich hab nur noch nicht weiter dran gebastelt. :cool:
 

BAXL

Admin
Mitarbeiter
:rolleyes:Es wäre auch zu schön und zu einfach gewesen.
Ich habe das Beispielprogramm von Defence geladen, noch die fehlenden Libs nachinstalliert und was kam raus?

Das:


Kurz bei AZ-Delivery nachgesenen, da stand dann der schlaue Hinweis: "Wenn ihr das seht (s.o.) dann müsst ihr die U8g2 Bibliothek von Oliver Kraus nehmen.
Dann noch eine Kleinigkeit im Code wieder auskommentieren und es geht. Tja, irgendwie geht es auch, aaaaber der Compiler meckert, dass der Beispielcode, der von AZ-Delivery empfohlen wurde, 88% des Speichers belegt und es zu Instabilitäten beim Programmablauf kommen kann. Habs ignoriert und das Programm hochgeladen. Hey, es flimmern tolle bewegte Grafiken über das Display und es werden sogar zwei Zeichensätze angezeigt, das war es aber auch schon. Jetzt muß ich mich schrittweise durch das scheiß Beispielprogramm wühlen und sehen, was alles überflüssiger Ballast ist, den ich gar nicht brauche.:confused: Keine Ahnung was da alles raus kann. So habe ich mir das wieder vorgestellt.:(

Ach ja, es klappt zwar, aber eine kleine Fehlermeldung kommt auch noch:

Ungültige Bibliothek D:\D\Arduino\arduino-nightly\libraries\u8g2-master in keine Header-Dateien (.h) in D:\D\Arduino\arduino-nightly\libraries\u8g2-master gefunden gefunden
Ungültige Bibliothek D:\D\Arduino\arduino-nightly\libraries\u8g2-master in keine Header-Dateien (.h) in D:\D\Arduino\arduino-nightly\libraries\u8g2-master gefunden gefunden
 
D

Deleted member 1492

Gast
Mal ne Frage: Warum OLED, wenns nicht selbstleuchtend und evtl. auch selbstleuchtend farbig sein muss?
 

BAXL

Admin
Mitarbeiter
Mal ne Frage: Warum OLED, wenns nicht selbstleuchtend und evtl. auch selbstleuchtend farbig sein muss?
Hat keinen besonderen Grund, wurde mir nur immer angeboten wenn ich eine I2C Schnittstelle haben wollte. Die größeren LCD Displays brauchen immer ganz viele Digitalkanäle.

Bin aber einen kleinen Schritt weiter gekommen. Tim Allen hat in dem Film "Galaxy Quest" immer gesagt "Never give up, never surrender!"

Was mich aber weiterhin irritiert ist die Speicherplatzmeldung. Obgleich das Programm nur noch aus wenigen Zeilen besteht bekomme ich vom Compiler immer gemeldet:

Der Sketch verwendet 9962 Bytes (32%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 1605 Bytes (78%) des dynamischen Speichers, 443 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
Wenig Arbeitsspeicher verfügbar, es können Stabilitätsprobleme auftreten.

Der muß sich über die Library irgendwie Kacke ins Hirn ziehen.
 

DFENCE

Mitglied
Is aber Tatsächlich so wenn es nicht der Programmcode ist, dann ist die Library total beschissen Programmiert und überladen.

Ich hab schon mal von dem Problem gelesen, aber das bezog sich auf die Billigen Fake Displays die in der unteren Spalte ne Andere Farbe hatten. Das Verwundert mich jetzt etwas ehrlich gesagt.
 

BAXL

Admin
Mitarbeiter
Keine Panik :D, ich habs gelöst.

Code:
#include <Arduino.h>
#include <U8x8lib.h>


// Please UNCOMMENT one of the contructor lines below
// U8x8 Contructor List
// The complete list is available here: https://github.com/olikraus/u8g2/wiki/u8x8setupcpp
// Please update the pin numbers according to your setup. Use U8X8_PIN_NONE if the reset pin is not connected

U8X8_SH1106_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);

void setup(void)
{


  u8x8.begin();
  u8x8.setPowerSave(0);


}

void loop(void)
{
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  u8x8.drawString(0,0,"Hello World!");
  u8x8.drawString(0,1,"Hallo Welt!");
  u8x8.drawString(0,2,"ABCDEFGHIJKLMNOP");
  u8x8.drawString(0,3,"Zeile 4");
  u8x8.drawString(0,4,"Zeile 5");
  u8x8.drawString(0,5,"Zeile 6");
  u8x8.drawString(0,6,"Zeile 7");
  u8x8.drawString(0,7,"Zeile 8");
  delay(2000);
  u8x8.clear();

for (byte ii=0; ii<7; ii++){
   u8x8.drawString(0,ii,"Ich wandere");
   delay(1000);
}

u8x8.clear();

}
Der Sketch verwendet 6242 Bytes (20%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
Globale Variablen verwenden 522 Bytes (25%) des dynamischen Speichers, 1526 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
 

DFENCE

Mitglied
Geht doch :D Das Wichtigste hast ja schon bemerkt, egal wie man muss sich selbst irgendwie durchwurschteln, aber irgendwie ist das auch gut so, Animiert zum Lernen.
 

BAXL

Admin
Mitarbeiter
Schon steht das nächste Problem ins Haus. Solange ich einen String in " " setze wird das auch angezeigt. Das hilft aber nichts, wenn ich erst einen errechneten oder gemessenen Wert habe, der auch angezeigt werden soll. Bisher sind alle Versuche eine Zahl in einen String zu verwandeln und diesen dann in den Funktionsaufruf einzubauen, fehlgeschlagen.:(

Und wieder sitze ich hier und fummel mir einen zurecht. Welchen Grund sollte es auch geben, dass es sofort reibungslos läuft. :rolleyes:
 

yoshi

Betreiber
Mitarbeiter
Kann das Display mit ASCII-Codes gefüttert werden? Dann brauchst du deine Zahlen "nur" in ASCII umrechnen.
 

BAXL

Admin
Mitarbeiter
Kurzer Zwischenstand. Das Display funktionierte mit euren Beispielen nicht, weil es keinen SSD1306 Chip hat sondern von einem SH1106 angesteuert wird.
Zweites Problem ist das mit der Ausgabe von Zahlen, weil meine U8x8 Lib für die Ausgabe von Zahlen keine Funktion besitzt. Man muß also irgendwie einen Umweg über einen String machen. D.h., eine Zahl in einen String umwandeln und dann übergeben. Leider geht das mit der String Funktion nicht, weil als Übergabeparameter keine Stringvariable akzeptiert wird und Strings auch die unangenehme Eigenschaft haben, den Speicher des Arduinos zu fragmentieren, was im längeren betrieb zum Absturz führen kann.

Also muß ich ein char array bauen, für das ich einmal aber doch noch den Datentyp String brauche. Das char array wird dann auch von der u8x8.drawString(0,0,"Hello World!"); Funktion akzeptiert.

Der Umweg sieht etwas so aus:

Variablendeklaration vor void setup()

char ZahlCharArray[16];
String ZahlString;

Funktionsaufruf in void loop()

ZahlString = (ii+1)*100;
ZahlString.toCharArray(ZahlCharArray,16);
u8x8.drawString(0,ii,ZahlCharArray);


Ich wollte auch nur kurz zeigen welchen Klimmzug ich machen musste.
 
Top Bottom