ein sehr ähnliches Projekt (bei mir ging es um einen Ölstandstemperatursensor) einen ESP32 und ein SSD1306 display genutzt... schreib mich gerne mal an.... oder kommentier meine Antwort... ich werde mal hier ins forum mein GithubProjekt laden
Tobias L. schrieb im Beitrag #8044667: > für ein sehr ähnliches Projekt > ... ein SSD1306 display genutzt Davon kann icht outdoor nur dringend abraten.
I2C drin und beißen sich nicht. #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <TinyGPSPlus.h> #include <SoftwareSerial.h> Der TO hat hardware.serial. Man nehme einmal testweise softwareserial. Vielleicht ist das die Lösung für sein Problem. ciao gustav
funktioniert super! Ich habe aber noch eine Frage, u.z.wie kommst du zu dieser Zeile: [code] .db SSD1306_CMD_SET_DISPLAY_START_LINE, SSD1306_CMD_DISPLAY_TEST_OFF [/code] Außerdem bin ich dabei ein 0,66" (64x48) OLED anzusteuern. Mir gelingt es dabei nicht die Displaygröße mit [code] .db SSD1306
sind alle im Datenblatt beschrieben. SSD1306_CMD_SET_DISPLAY_START_LINE setzt den Anfang der RAM-Adresse für das Display. SSD1306_CMD_DISPLAY_TEST_OFF schaltet den Testmodus aus und den Normalmodus ein. > Außerdem bin ich dabei ein 0,66
code is in the public domain. */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // Breite in Pixel #define SCREEN_HEIGHT 64 // Höhe in Pixel // OLED Display Instanz erstellen (I2C) // Reset Pin wird hier nicht benötigt, daher -1 Adafruit_SSD1306 display
Annahmen • Ein SSD1306 OLED-Display mit 128x64 Pixel, Ansteuerung per I2C (7-Bit-Adresse meist 0x3C). • Es existieren I2C-Routinen (Start, Write Byte, Stop). • Der AVR-Assembler ist für einen gängigen AVR wie Atmega328P. • 8-Bit-, Registerorientierter Code. Beispiel: Initialisierung der SSD1306 per I2C in AVR- Assembler 1. I2C Basisroutinen (sehr rudimentär/skizzenhaft) /* • i2c_start: • o startet I2C-Kommunikation • i2c_write_byte: • o schreibt ein Byte • i2c_stop: • o stoppt I2C-Kommunikation
code is in the public domain. */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // Breite in Pixel #define SCREEN_HEIGHT 64 // Höhe in Pixel // OLED Display Instanz erstellen (I2C) // Reset Pin wird hier nicht benötigt, daher -1 Adafruit_SSD1306 display
code is in the public domain. */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // Breite in Pixel #define SCREEN_HEIGHT 64 // Höhe in Pixel // OLED Display Instanz erstellen (I2C) // Reset Pin wird hier nicht benötigt, daher -1 Adafruit_SSD1306 display
Textausgaben und Cursorpositionierung bei Terminalausgaben - v003_oled (Klasse für i2c-OLED mit SSD1306 / SSD1315 Controller) - hx1838 (Infrarotempfänger, keine eigene Klasse, weil Benutzung Timer2 - und auch Timerinterruptbehandlung ist im Core unvollständig) usgaben und textcursorpositionierung
------------------------ oled_demo.c Minimalprogramm fuer Textausgabe auf einem OLED-Display mit SSD1306 oder SSD1315 Display Damit das Programm grundsaetzlich mit jedem Mikrocontroller laufen soll, wurde I2C mittels Bitbanging realisiert, auch wenn hier ein direktes compilieren nur fuer einen AVR-Controller
Display, es hat keinen eingebauten Zeichensatz, der einfach abgerufen werden kann - ein Display mit SSD1306 Controller ist sehr ähnlich und unterscheidet sich relativ wenig vom 1315, der 1315 ist gewissermaßen ein Upgrade auf einen SSD1306. Die Initialisierungssequenz der beiden unterscheidet sich etwas
Bildschirmspeicher schreiben. Falls Du basales C lesen kannst: https://github.com/yangjinhaoaa/OLED0.91-SSD1306-HAL/blob/master/0.91OLED-SSD1306-STM32HAL/oled.c In dem C-Files findest Du auch die Init-Sequenz fuer dieses kleine 0,96"-Display: [c] uint8_t initcmd1[] = { 0xAE, //display off 0xD5
include <Arduino.h> #include <ESP8266WiFi.h> #include <WiFiUDP.h> #include <Wire.h> #include <Adafruit_SSD1306.h> // Name and password of the WLAN access point #define SSID "dummy_wlan_box" #define PASSWORD "dummy_password" // The ESP-12 has a blue LED on GPIO2 #define LED 2 String newHostname = "ESP8266NodeMCU
Linux-Treibers dann die entsprechenden Informationen gewinnen. Mein erstes Display-Experiment war das SSD1306-OLED und das ist ja auch günstig und hübsch, aber halt arg klein. Mit der Bibliothek hatte ich keine Probleme.
nicht testen. Gunnar F. schrieb im Beitrag #7951377: > Mein erstes Display-Experiment war das SSD1306-OLED und das ist ja auch > günstig und hübsch, aber halt arg klein. Mit der Bibliothek hatte ich > keine Probleme. Die Displays habe ich natürlich auch, aber für die Spiele ungeeignet, da sie
Hallo, ich habe hier ein Problem bei meiner Anwendung, bei der ich ein 0,96" SSD1306 Display mit einem XIAO SAMD21 Arduino verwende, und zwar erscheint bei jedem Neustart der Applikation am gesamten Bildschirm ein Rauschen/Schneebildschirm für ca. 3s. Danach funktioniert die Darstellung
Schaue Dir mal die lib von Greiman an, nicht perfekt, aber sparsam: > https://github.com/greiman/SSD1306Ascii Danke für den Hinweis. Bei der von Ulli kann man das auch klein kriegen, muss aber viel und an unterschiedlichen Stellen lesen.
Befehl in einen Ruhezustand? Hallo Nepomuk, guter Punkt, ich hab gerade mal nachgeschaut. Das SSD1306 brauch <5uA im Sleep Mode. Du hast absolut recht, da muss ich nix schalten, bei den 6Ah Akku hat das kaum einen Einfluss auf die Laufzeit. Ich hatte übersehen, dass die Ladungspumpen im Sleep ausgeschaltet
Lötbrücken um die Adresse einstellbar zu machen, so ist eine geänderte Adresse hier anzugeben. #define ssd1306_addr 0x78 // I2C-Adresse Display 29 Schriftstile / Fonts In der Quelldatei sind 2 Arrays enthalten, die die Bitmaps für die entsprechenden Ascii-Zeichen in der Größe 5*7 Pixel und 8*8 Pixel beinhalten
meinem Arduino Code. Ich habe Feedback erhalten, dass er mit SH1106 funktioniert, selbst aber nur mit SSD1306 getestet. [c] void OLED::display() { size_t index = 0; for (uint_fast8_t page = 0; page < pages; page++) { // Set memory address to fill i2c.beginTransmission
Lötbrücken um die Adresse einstellbar zu machen, so ist eine geänderte Adresse hier anzugeben. #define ssd1306_addr 0x78 // I2C-Adresse Display 29 Schriftstile / Fonts In der Quelldatei sind 2 Arrays enthalten, die die Bitmaps für die entsprechenden Ascii-Zeichen in der Größe 5*7 Pixel und 8*8 Pixel beinhalten
Lötbrücken um die Adresse einstellbar zu machen, so ist eine geänderte Adresse hier anzugeben. #define ssd1306_addr 0x78 // I2C-Adresse Display Schriftstile / Fonts In der Quelldatei sind 2 Arrays enthalten, die die Bitmaps für die entsprechenden Ascii-Zeichen in der Größe 5*7 Pixel und 8*8 Pixel beinhalten
hat) - Auswertung von NTC-Widerständen - Ansteuerung von NOKIA 5110 Display - Ansteuerung von SSD1306 Display mit I2C-Interface - Ansteuerung UKW-Radio-Chip RDA5807 - Auswerten von LM75 Temperatursensor - Erzeugung von PWM-Signalen - Ansteuern eines Servomotors - Ansteuern von 74HC595 Schieberegistern
verbraucht übrigens 25mA, wenn 50% der Pixel an sind. - Zweite Annahme war, das mein Init-Code (für SSD1306) nicht ganz passte. Das OLED enthält einen SSD1309. Also habe ich den aus dem Datenblatt eines 2,42" OLED mit SSD1309 1:1 verwendet. Ohne sichtbare Änderung. Ich hatte dieses Probleme auch schon
einen DS18B20 Temperatursensor so sind eben dem Archiv hinzugefügt worden: - Sourcedateien für SSD1306 OLED-Displays mit I2C-Interface - Sourcedateien für das Auslesen eines einzelnen DS18B20 Temperatursensors ... und weil sich die Kombination so anbietet, gibt es dann natürlich auch ein Demoprogramm
endlich läuft und hier muß das dann getrennt werden von der Bitbanging I2C und die "Librarie" für ein SSD1306 Display neu zu schreiben. Viele Baustellen, und nicht nur alle CH32V003. Schlimm ist, dass es gute Homepages und / oder github Repositories für den CH32V003 nicht so wirklich viele gibt. Wenn
OLED (diese China Teile, 1,3", gibt es auch in anderen Größen). Ich habe von M. Köhler den "lcd_ssd1306_gfx" Treiber. Es läuft über I2C. Das funktioniert auch alles (siehe bild mit kleinem Display). Hier soll aber ein größeres zum Einsatz kommen, und mit diesem bekomme ich nur Bildrauschen. Manchmal
Controller wird in der lcd.h in Zeile 61 eingestellt. Ich vermute, dein Display verwendet einen SSD1306, default ist in der Library der Controller SH1106 eingestellt.
stm32f1xx_hal_i2c.c:7,306 0x8002bda HAL_I2C_IsDeviceReady() at stm32f1xx_hal_i2c.c:3,568 0x8002918 SSD1306_Init() at ssd1306.c:171 0x800134c main() at main.c:181 0x8000978 </pre> Wie gesagt, auf der älteren BP läuft das OLED Display an I2C (PB6/PB7). Jemand eine Idee? EDIT: erinnere mich
<pre> ssd1306.c: /** * original author: Tilen Majerle<tilen@majerle.eu> * modification for STM32f10x: Alexander Lutsai<s.lyra@ya.ru> ---------------------------------------------------------------
denn möglich einen digitalen Wecker für diesen Zweck > umzuprogramieren? Ein Arduino Nano mit SSD1306 Display lässt sich gut einige Stunden an Batterien betreiben. Das Display ist aber winzig.
als Ausgabe und Rotary Encoder und Buttons als Eingabe hat. Das Display ist momentan ein standard SSD1306 0.96 Zoll OLED mit 64x128 Pixeln. Das ist aber für die zukünftigen Revisionen nicht mehr gut genug und daher will ich ein 2 Zoll Farbdisplay verwenden. Programmiert wird ein ESP32S3 mit Arduino IDE
meine Anwendung allerdings nicht gut geeignet. Und Displayspezifische Librarys wie die Adafruit SSD1306 Library in Arduino IDE haben den Nachteil, dass die immer nur mit einem oder ein Paar wenigen Displays der gleichen Type funktionieren. Und da ich nicht weis ob das nächste Display, dass wir aussuchen
========== //============================================================================= // // SSD1306 OLED full graphics 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
### Lesestoff, zur Zweiten - „bessere“ Textdarstellung für kleine Oled-Displays. Die auf dem SSD1306-Controller basierenden organischen Displays haben sich im Bereich verschiedenster Projekte als Quasistandard etabliert. Unschön ist an ihnen lediglich, dass die Textdarstellung ab einer gewissen Größe