Hallo Gemeinde, ich habe ein 1,3" Oled Display mit SH1106-Controller via I2C an meinen MSP430 geschnallt. Ich nutze dabei die HW-I2C-Schnittstelle (pin14 und pin15). Leider finde ich nirgends einen passenden Treiber (überall nur SSD1306). Ich kompiliere
für die I2C Schnittstelle standen tatsächlich im Datasheet. Das Display ist allerdings auch ein SH1106. Gut - dann konzentriere ich mich jetzt auf den Treiber. Natürlich direkt unter CCS - den Energia Overhead ist doch beträchtlich... Schönen Abend Euch!
_128_64' was not declared in this scope SH1106Wire(uint8_t _address, uint8_t _sda, uint8_t _scl, OLEDDISPLAY_GEOMETRY g = GEOMETRY_128_64) { ^ sketch\SH1106Wire.h: In constructor 'SH1106Wire::SH1106Wire(uint8_t, uint8_t, uint8_t, int)': SH1106Wire.h:51:20: error: 'setGeometry' was not declared in this scope setGeometry(g); ^ sketch\SH1106Wire.h: In member function 'virtual void SH1106Wire::display()': SH1106Wire.h:78:26: error: 'displayHeight' was not declared in this scope for (y = 0; y < (displayHeight / 8); y++) { ^ SH1106Wire.h:
dem Bild angegeben (Seite 5), funktioniert auch mit mit 5V, wurde allerdings heiß bei mir (war ein sh1106), und funktioniert auch mit 3,3V tadellos, schon seit Wochen im Dauertest. Unterschiedliche Angaben zu Bauteilen finde sind mir auch schon aufgefallen (zu einem Sensor), anscheinend schreibt da der
einen starken Kontrast. Zur Ansteuerung steht eine i²c Schnittstelle mit dem Standard-Controller SH1106 zur Verfügung. Programmieren des OLED-Displays mit der u8g2 Bibliothek Ve rdrahten des Moduls mit einem Arduino Uno: VDD wird mit 5V am Arduino verbunden Rote Leitung GND wird mit GND verbunden Schwarze
kommt dem Nano entgegen. Da der Strom durch die Widerstände begrenzt wird, sollten die Eingänge des SH1106 das überleben. Die 10kOhm Pull-Ups (falls welche vorhanden sind) werden sicherlich auch an Vdd hängen.
komplett > ausgeschaltet werden. Was hast du denn für ein I2C Display? Eines mit SSD1306 oder SH1106 Controller? Da gib es Befehle für einen Standby des Displays, genügt dir vielleicht schon ;)
generic display // //#define U8GLIB_SSD1306 // // SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules // //#define SAV_3DGLCD #if ENABLED(SAV_3DGLCD) //#define U8GLIB_SSD1306 #define U8GLIB_SH1106 #endif // // Original Ulticontroller from Ultimaker 2 printer with SSD1309 I2C display
Hallo zusammen, ich benutze Bascom und möchte ein Oled-Display von AZ-Delivery mit dem SH1106 kontroller ansteuern. Ich habe hierfür einen Atmega Prozessor und möchte das Display über I2C betreiben. Hat jemand dieses schon gemacht?? Für ein Beispiel wäre ich dankbar.
schau mal da: https://forum.arduino.cc/index.php?topic=256374.0 der SH1106 ist scheinbar bis auf die Auflösung identisch mit SSD1306. Für den 1306 gibt es Libs in Bascom. cu zoo
https://github.com/Sylaina/oled-display Das ist meine Library für I2C Displays mit SSD1306 bzw. SH1106 Controller. Ist etwas schneller als die Adafruit-Library und braucht auch weniger Speicher. Ist halt dafür nicht ganz so flexibel/umfangreich. Einstellungen werden fürs LCD werden in der lcd.h gemacht
/* * This file is part of lcd library for ssd1306/sh1106 oled-display. * * lcd library for ssd1306/sh1106 oled-display is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free
/* * This file is part of lcd library for ssd1306/sh1106 oled-display. * * lcd library for ssd1306/sh1106 oled-display is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free
/* * This file is part of lcd library for ssd1306/sh1106 oled-display. * * lcd library for ssd1306/sh1106 oled-display is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free
/* * This file is part of lcd library for ssd1306/sh1106 oled-display. * * lcd library for ssd1306/sh1106 oled-display is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free
Zeilen) spürbar dunkler. Siehe Bild. Es ist eines dieser typischen ebay-128x64-Module mit SSD1306/SH1106 für 5V - mit Nutzung einer Charge-Pump für die Erzeugung der höheren Spannungen. Ich nehme einfach mal an, dass diese Charge-Pump (oder der 3V-Regulator?) bei vielen leuchtenden Pixeln hintereinander
Neben dem kleineren Panel hatten die auch einen anderen Controller (SSD1306) als das 1.2"-Display (SH1106). An den kleinen 0,96"-Displays war ein 10uF-Kerko dran. Mit den kleinen Displays sehe ich den Effekt nicht. Gleicher Init: [c] oled_reset(); oled_command(OLED_COMMAND_DISPLAYOFF); /
generic display // //#define U8GLIB_SSD1306 // // SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules // //#define SAV_3DGLCD #if ENABLED(SAV_3DGLCD) //#define U8GLIB_SSD1306 #define U8GLIB_SH1106 #endif // // Original Ulticontroller from Ultimaker 2 printer with SSD1309 I2C display
generic display // //#define U8GLIB_SSD1306 // // SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules // //#define SAV_3DGLCD #if ENABLED(SAV_3DGLCD) //#define U8GLIB_SSD1306 #define U8GLIB_SH1106 #endif // // Original Ulticontroller from Ultimaker 2 printer with SSD1309 I2C display
mich letztens locker zwei-drei Stunden Zeit gekostet...weil ich statt eines SSD1306-Displays ein SH1106-Display angeschlossen hatte. Das war so ein dummer Fehler, da werde ich mich noch Monate drüber ärgern.
nach Sinn...sofern man den Speicher dazu auch hat. In der Tat machen das viel Libraries für SSD1306/SH1106 Displays, dass sie einen Buffer benutzten. Ich hab für diese Displays ja auch nur einen Lib geschrieben (vor über 1 1/2 Jahren) weil ich so ein Display (lediglich Text) an einem Atmega48 benutzen wollte
das gibt das Display vom TO aber nicht her! ausserdem gibt es diese Displays mit SSD1306 und SH1106 Chip, beide differieren etwas in der Ansteuerung. Dein 3-Zeiler Beitrag hilft also dem TO in keinster Weise
direkt im Beitrag vor dem Geplappere stehe. > ausserdem gibt es diese Displays mit SSD1306 und SH1106 Chip, beide > differieren etwas in der Ansteuerung. Ach was, wirklich? Wofür ist wohl der letzte optionale Parameter des Konstruktors? Joachim: Wenn man keine Ahnung hat, dann sollte man einfach
wie gut so etwas > implementierbar ist. Meine Library für ein OLED-Display mit SSD1306 oder SH1106 Controller braucht incl. Font weniger als 2 kByte Flashspeicher im Textmode. Sollte also eigentlich auch für ein Attiny44 noch gut gehen. http://www.github.com/Sylaina/OLED-Display/
M. K. schrieb im Beitrag #5553729: > Meine Library für ein OLED-Display mit SSD1306 oder SH1106 Controller > braucht incl. Font weniger als 2 kByte Flashspeicher im Textmode. Sollte > also eigentlich auch für ein Attiny44 noch gut gehen. Smile, Dankeschön, ich kenne deine .c *.h Software
b Was noch fehlt: Das originale Library von Michael hat Unterstützung für die sehr ähnlichen SH1106-Controler. Da ich nicht über so ein Display verfüge und ich das nicht testen kann, fehlt die derzeit noch. Die Zeichen µ und Ohm im Font sind derzeit nur Dummys Den Code gibts auf github: https
unverändert verwenden: https://www.mikrocontroller.net/topic/415651 (funktioniert auch für SH1106)
Ok, das gilt natürlich auch für viele andere Befehle der Fall (beispielsweise wie das OLED am SH1106 angeschlossen ist). All dieses Wissen fließt ja gerade in die init sequenz rein. Es nützt also nichts nur das SH1106 Datenblatt zu lesen. Hier noch ein interessantes Beispiel: Der SH1106 besitzt
=*/ 8); // same as the NONAME variant, but may solve the "every 2nd line skipped" problem //U8G2_SH1106_128X64_NONAME_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8); //U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); //U8G2_SH1106_128X64_VCOMH0_F_4W_HW_SPI
Water\sketch_may21a\sketch_may21a_BACKUP.ino:5:0: C:\Users\Documents\Arduino\libraries\Adafruit_SH1106-master/Adafruit_SH1106.h:141:7: error: redefinition of 'class Adafruit_SH1106' class Adafruit_SH1106 : public Adafruit_GFX { ^ In file included from C:\Users\Desktop\Arduino\Projekte
OilP, Water\sketch_may21a\sketch_may21a.ino:5:0: C:\Users\Documents\Arduino\libraries\Adafruit_SH1106-master/Adafruit_SH1106.h:141:7: error: previous definition of 'class Adafruit_SH1106' class Adafruit_SH1106 : public Adafruit_GFX { ^ C:\Users\Desktop\Arduino\Projekte\Backups\Basisprogramm
/* * This file is part of lcd library for ssd1306/sh1106 oled-display. * * lcd library for ssd1306/sh1106 oled-display is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free
/* * This file is part of lcd library for ssd1306/sh1106 oled-display. * * lcd library for ssd1306/sh1106 oled-display is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free
hast auch den Displaytyp und die I2C-Adresse richtig eingestellt? Im Github ist die Library auf ein SH1106-Display eingestellt mit entsprechender Adresse, das musst du ändern wenn du ein SSD1306-Display benutzt ;)
SCL Aus der u8glib verwende ich für die Initialisierung: [c] i2c = u8g_InitI2C(&u8g, &u8g_dev_sh1106_128x64_i2c, U8G_I2C_OPT_NONE); [/c] sowie PB5 für SCL PB3 für SDA
da sie nicht zur Verfügung stehen. [c] i2c = u8g_InitI2C(&u8g, &u8g_dev_sh1106_128x64_i2c, U8G_I2C_OPT_NONE); [/C]
Hallo, bei meinem ersten Tests mit einem OLED 128x64 Display (SH1106 Controller) bekomme ich die beim compilieren die Fehlermeldung "LCD_128x64.elf section "text will not fit in region text" wenn ich z.B. [c] u8g_SetFont(&u8g, u8g_font_osb18); [/c] verwende.
OLED Display mit Hilfe der u8glib für AVR Controller zum Laufen gebracht :-) (Das Display hat einen SH1106 Controller) Wie kann ich die Helligkeit bzw. den Kontrast des Displays verändern? Das Bild zeigt das Display, wobei die Helligkeit in Wirklichkeit aber viel geringer ist.
http://www.allshore.com/pdf/SH1106.pdf Seite 20 -> 0x81 Ist zwar für SSD1306, aber wie es in U8glib gemacht wird steht hier: https://forum.pjrc.com/threads/29265-How-does-one-control-the-brightness-of-an-OLED-display-(SSD1309)
was wäre. Bisher habe ich immer Displays auf Basis des HD44780 oder die OLEDs mit SSD1306 bzw. SH1106 Controller verwendet. Die sind mir aber etwas zu klein (ich werde älter und sehe nicht mehr so gut) und dachte mir jetzt so ein 3.5" TFT, ggf. mit Touch, wäre ja recht nett. Mit Arduino scheint es
// display offset data set = 0 (POR) SPI.transfer(0x8d); // charge pump setup -> not working for SH1106 SPI.transfer(0x14); // supposed to setup charge pump, instead sets higher column address to 4 on SH1106 SPI.transfer(0x20); // page addressing mode -> not working for SH1106 SPI.transfer(0x00); //
0x00); // memory-mode setup to horizontal-address-mode #endif // lets see if 0x8d works with the SH1106, disable the charge-pump // charge-pump voltage measured: 8,1V #if 1 digitalWrite(DC, LOW); // write commands SPI.transfer(0x8d); // charge-pump command SPI.transfer(0x10); // turns on the charge-pump #endif // clear internal RAM of SH1106 for(row=0;row<8;row++) { digitalWrite(DC, LOW); // write commands SPI.transfer(0xb0 + row); // set page address SPI.transfer(0x00); // set lower column address to 0 SPI.transfer(0x10); // set higher