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
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
SSD1306-Treiberchip. Gibt bestimmt diverse kompatible Libs von Arduino. Fest auf vier Pin verdrahtet, SCL = SPI CLK SDA = MOSI
einmal mit der alternativen Library #include "U8glib.h" // Konstruktor anpassen! (Beispiel für SSD1306 I2C) U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
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
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
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
Hier noch eine Initialisierungsroutine für den Controller Type SSD1306 und "kompatible". Was im File "Code Schnipsel" angegeben ist, sollte auf jeden Fall in die Initialissierungsroutine einfließen. ciao gustav
. schrieb im Beitrag #8092994: > Hier noch eine Initialisierungsroutine für den Controller Type SSD1306 > und "kompatible". Die Umsetzung deines genialen Asm-Codes in sein C-Programm wird den Al.K. den Rest seines Lebens beschäftigen.
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.
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
------------------------ 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
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
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