-
Thread
SSD 1306 I2C Datenpakete
Forengemeinde, Ich habe ein kleines Verständnis Problem mit dem I2C Datenpaket, es handelt sich um ein SSD1306 Controller für OLED. Ich möchte den Command Befehl aus dem Angehangenen Bild SSD1306_1 zu dem Controller schicken. Ich würde es in dem Format schicken wie ich es "Skizziert" habe in InkedSSD1306
Hier hab ich meinen Code für HAL & SSD1306 veröffentlicht: https://www.mikrocontroller.net/topic/457781
-
Thread
Nach Variable Anzahl von Tastzuständen den Kontakt sperren
Danach lässt sich das Ganze auf auf einen kleinen ATtiny85 umsetzen. Für das Display schau mal nach SSD1306. Produkte mit diesem Chip sind gerade billig. Allerdings ist die Programmierung von so einem Grafik-Display mit so einem kleinen Mikrocontroller anspruchsvoll, da der µC weniger RAM hat, als
Danach lässt sich das Ganze auf auf einen kleinen ATtiny85 > umsetzen. Für das Display schau mal nach SSD1306. Produkte mit diesem > Chip sind gerade billig. > Allerdings ist die Programmierung von so einem Grafik-Display mit so > einem kleinen Mikrocontroller anspruchsvoll, da der µC weniger RAM hat
-
Thread
STM32: 2x PWM mit Phasenversatz?
", &Font_7x10, 1); SSD1306_GotoXY (55,10); SSD1306_Puts (potiwert2, &Font_7x10, 1); SSD1306_GotoXY (5,20); SSD1306_Puts ("shift", &Font_7x10, 1); SSD1306_GotoXY (62,20); SSD1306_Puts (
("H1:", &Font_7x10, 1); SSD1306_GotoXY (30,41); SSD1306_Puts (sensorwert1, &Font_7x10, 1); SSD1306_GotoXY (70,41); SSD1306_Puts ("H2:", &Font_7x10, 1); SSD1306_GotoXY (95,41); SSD1306_Puts
-
Thread
Digitale Uhr ESP8266 (NodeMCU)
könnte, hättest du eine reale Chance, von jemandem Hilfe zu bekommen. Ich würde Dir ein Display mit SSD1306 Controller empfehlen und dazu die C Klasse aus diesem Projekt: http://stefanfrings.de/esp8266/WIFI-Kit-8-OLED.zip Der nächste logische Schritt wäre dann, anstelle von zwei separaten Boards gleich
-
Thread
OOP mehrere Geräte an mehreren Schnittstellen organisieren
das was ich gebraucht habe. Es funktioniert, er zeigt mir jedoch beim Konstruktoraufruf [code] SSD1306display display1(0x78, 0, &i2c1TxDaten[0]); //bzw. SSD1306display display1(0x78, 0, i2c1TxDaten); [/code] den Fehler [code] Invalid arguments ' Candidates are: SSD1306display(const SSD1306display
[code] class SSD1306display ... [/code] ist ja auch kein Funktionsrumpf.
-
Thread
C -> Zeichen aus Font suchen / rechnen?!
dauert das ja "ewig". Kannst du nicht direkt in den Pufferspeicher schreiben, anstatt den Umweg über Ssd1306DrawPixel() zu nehmen?
Font.uiWidht; } } [/c] Pixel verarbeiten und an richtige Stelle in den VRAM malen -> [c] void Ssd1306DrawPixel( int16_t x , int16_t y ) { DisplayRam[ y + ( x / 8 ) * SSD1306_LCD_Width ] |= ( 1 << ( x & 7 ) ); } [/c]
-
Thread
C -> Font berechnen -> Formel?
) erstmal nur die einzelnen Bits ( Pixel ) setzen möchte, habe ich einige Fragen.. [c] void Ssd1306DrawPixel( int16_t x , int16_t y ) { if ( ( y >= SSD1306_LCD_WIDTH ) || ( y < 0 ) || ( x >= SSD1306_LCD_HEIGHT ) || ( x < 0 ) ) { return; } DisplayRam[ y + ( x / 8 ) * SSD1306
{ if ( font.fontPtr[font.indexNum+CharWidth] & 1<<BitPosition ) { Ssd1306DrawPixel( x + BitPosition * ActualPage , y + CharWidth ); }else { Ssd1306ClearPixel( x + BitPosition * ActualPage , y + CharWidth ); } } } }
-
Thread
10x mehr Speicherbelegung bei Array von main in Funktion verschieben
Arrays rüber und mein aktueller µC hat nur 32 KB Flash... Hier der code extrem gekürzt: [code] //ssd1306display.h #ifndef SSD1306DISPLAY_H_ #define SSD1306DISPLAY_H_ #include <stdio.h> void schrift1Zeichenkodierung(); #endif /* SSD1306DISPLAY_H_ */ [/code] [code] //schrift1Zeichenkodierung.c
Umrechnung für Übertragung per I2C for (uint32_t a = 0; a < I2ClengthText; a++) //Anzahl Zeichen { SSD1306ZeichenSend[a] = SSD1306Buffer[a]-32; for (uint32_t i = 1; i < 6; i++) I2CDaten1[a*6+i+1] = Zeichen[SSD1306ZeichenSend[a]][i-1]; //a=Zeichenanzahl, 6=Pixelanzahl, i=Pixel, 1=wegen"Datenstrom
-
Thread
umstieg von Symbol zu Grafikdisplay
Ich mag meine SSD1306 OLED. Ist so einfach wie ein altes Text Display, nur ohne Text. ;)
-
Thread
Welches billige OLED Display für Atmega8 / 48
Unter dem Namen SSD1306 findest du zum Beispiel welche. Diese werden meistens über I²C angebunden, manche unterstützen auch SPI. Allerdings sind deine beiden ATmegas mit wenig RAM und Programmspeicher ausgestattet.
Stefanus F. schrieb im Beitrag #5806749: > Unter dem Namen SSD1306 findest du zum Beispiel welche. Diese werden > meistens über I²C angebunden, manche unterstützen auch SPI. Danke! > > Allerdings sind deine beiden ATmegas mit wenig RAM und Programmspeicher
-
Thread
Gasmessung - falsche Ausgabe am LCD
Splashscreen): [c] #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET 4 int TIME_UNTIL_WARMUP = 15; unsigned long time; int analogPin = 0; int val = 0; Adafruit_SSD1306 display(OLED_RESET); void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); delay(2000); // Startphase } void loop() { val = readGas(); delay(100); printSplashScreen(); // !!! WIRD NIE ANGEZEIGT
-
Thread
SSD1306 ->Text im Hochformat
Hallo zusammen, das ssd1306 funktioniert mit der "Lib" von Koehler sehr gut. https://www.mikrocontroller.net/topic/415651#4847967 Kennt jemand eine "Lib", mit der ich das Display im Hochformat nutzen kann? Also die Schrift
ins Datenblatt zum SSD1306, du solltest diese Funktionalität eigentlich recht einfach bei dir umsetzen können. Ich komme wohl kaum vor nächster Woche dazu mir dies mal genauer anzuschaun, werde es mir aber auch noch mal genauer
-
Thread
Arduino selfmade Internal Clock 8MHz I2C probleme
dem Schaltplan zu sehen ist ein SHT31 (Addr. 0x44, Lib von Adafruit) verbaut und ein OLED mit einem SSD1306 Chip (Addr. 0x3C, Lib von Adafruit), Anschlusse mehrmals überprüft (auf der Schaltung sowie der Platine). Sobald ich anfange die Befehle zu senden hängt das Programm, es ist bekannt das in der Wire
imstande, so einen Spannungspegel zu verursachen - bei korrekter Beschaltung, wohlgemerkt. Der SSD1306 Controller verträgt am I²C maximal 3,6 Volt. Den hast du mit deinen 5V womöglich zerstört. Außerdem brauchen meine Displays mit diesem Chip ein externes Reset Signal.
-
Thread
Bascom und AZ-Delivery Display
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
Es gibt schon eine Lib, nimmst diese hier "glcdSSD1306-I2C.lib" und dann frag mal hier "bascomforum.de"
-
Thread
ESP8266 C++11 features wie lambdas
eagle/debug/lib/user.a BMP280/.output/eagle/debug/lib/BMP280.a Soft_I2C/.output/eagle/debug/lib/I2C.a SSD1306_OLED/.output/eagle/debug/lib/OLED.a WIFI/.output/eagle/debug/lib/WIFI.a Util/.output/eagle/debug/lib/Util.a Buffer/.output/eagle/debug/lib/Buffer.a -Wl,--end-group -o .output/eagle/debug/image/eagle.app.v6
eagle/debug/lib/user.a BMP280/.output/eagle/debug/lib/BMP280.a Soft_I2C/.output/eagle/debug/lib/I2C.a SSD1306_OLED/.output/eagle/debug/lib/OLED.a WIFI/.output/eagle/debug/lib/WIFI.a Util/.output/eagle/debug/lib/Util.a Buffer/.output/eagle/debug/lib/Buffer.a -Wl,--end-group -o .output/eagle/debug/image/eagle.app.v6
-
Thread
Arduino: Ausgabe Zeit als Funktionsaufruf für mehreren "Devices"
include <SPI.h> #include <Wire.h> #include "DS3231.h" #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include "thermalprinter.h" #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); Epson TM88(&Serial1); // init the Printer with HW-Serial (Serial1) RTClib RTC; DateTime time_now; void setup() { // put your setup
-
Thread
attiny85 1Mhz Arduino virtuell Serial Protokoll beenden
DAVID -. schrieb im Beitrag #5765225: > Und eine funktionierende ssd1306 OLED Library konnte ich auch nicht > auftreiben. OK Das war Woll mal GARNIX. (Grade durch Zufall Gemerkt) Eine Passende Library wäre zb SSD1306_minimal. Problem an der Sache ist aber Sie scheint
void loop() { delay(1000); mySerial.println("Hello, world?"); } Und TFT #include "SSD1306_minimal.h" #include <avr/pgmspace.h> SSD1306_Mini oled; void setup() { oled.init(0x3c); delay(500); oled.startScreen(); oled.clear(); } void loop() { oled.cursorTo(0, 0);
-
Thread
Cortex M0-hardfault bei Zugriff auf Variable
uint8_t xy_lcd_cursorPosition; uint8_t xy_lcd_cursorPosition=0; static const __packed uint8_t ssd1306_font6x8 [] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // sp 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, // ! ...bla [/c] Sobald aber ein Schreib(!)zugriff statt findet, läuft das Programm sofort
-
Thread
Gibt es schon skalierbare Arduino 16-Segent Font-Lib ?
gibt. Also bitte jetzt den Link dorthin. das Roland und Dankeschön :-) P.S. kann man beim SSD1306 eigentlich OR oder XOR zum OLED schicken ? Also Grafik-Linien übereinander malen..
Hab jetzt mal in die https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf geschaut. In y-Richtung kann man wohl nur in 8 pixel "page" Schritten adressieren. Dann würde ich mich wohl doch auf 8px, 16px, 32px, 40px, 48px, 56px und 64px hohe fonts beschränken. 8,
-
Thread
CubeMX Update For Schleife plötzlich infinite loop?
; a++) { SSD1306Daten[a] = 0x00; } SSD1306Daten[0] = 0x40; //Datenstrom for (uint8_t b = 0; b < 9; b++) { SSD1306Command[0] = 0x80; //Single Command SSD1306Command[1] = SSD1306Zeile[b]; //Y HAL_I2C_Master_Transmit(&hi2c1,SSD1306Adresse[i],SSD1306Command,2,100); SSD1306Command[0] = 0x00; //Command Stream SSD1306Command[1] = 0x00; //X SSD1306Command[2] = SSD1306Spalte[0]; //Xlow HAL_I2C_Master_Transmit
-
Thread
China SUPER Bauteile-Schnäppchen Thread [V4]
und LAN. Bei der SSD würde ich sagen das selbst so eine billigst-SSD eine eMMC aussticht, aber ein Propeller ist natürlich ein Verschleißding, da hast du noch was gesagt das ich gar nicht auf dem Schirm hatte... Aha
Tim 🔆 schrieb im Beitrag #7965764: > …dass ich einen PC mit fest verlöteter SSD grundsätzlich nirgendwo > hinschicken würde. … Sollte man BMAX kaputt gehen, bleibt nur die bittere >Pille ihn wegzuwerfen. Laut Beschreibung sollte er doch eine M2 - SSD haben.
-
Thread
Ist mein SSD1306 OLED defekt?
Du hast vermutlich den Pin D/C# nicht beschaltet, sodaß sein Pegel nicht eindeutig ist. Den SSD1306 spreche ich übrigens unter der Basisadresse 0x78 mit D/C# auf GND an ;-)
auch Protokoll- Hinweise im Datenblatt des SSD1306.
-
Thread
Problem mit ssd1306 I²C-OLED-Display
haarklein auseinander- zulegen. Heisser Tip: Spicken hilft! https://github.com/afiskon/stm32-ssd1306
der > Initialisierunssequenz von Stefanus ging es dann. Blöderweise enthält das Datenblatt des SSD1306 keine klaren Informationen zur korrekten Initialisierung. Die findest du aber (schön mit Diagramm) im Datenblatt der Displays (OLED+Chip+Kabel).
-
Thread
Telekom Media Receiver 303 Schaltplan bzw. Displaytyp gesucht
verwendet. Zum ssd1307 gibt es auch eine Alternative, der ssd1316, wo es auch Varianten mit 16poligen Anschluss gibt. Und es gibt auch eine Bibliothek für den arduino und raspi. Also ggf. lohnt sich hier schon, noch
SSD1306-based monochrome OLED displays with 128x64 pixels. I2C support only: https://github.com/tenbaht/sduino/blob/master/docs/index.md https://github.com/tenbaht/sduino https://github.com/dannyf00
-
Thread
Kleine Frage zu TWI bzw. I²C Ansteuerung
[c] void ssd1306_command_start (void) { I2C_SetStart (SSD1306_SA); // Slave address I2C_WriteByte (0x00); // write command } void ssd1306_send_command (uint8_t command) { ssd1306_command_start
ssd1306_command_start (); > I2C_WriteByte (command); > I2C_SetStop (); > } > > void ssd1306_send_data_start (void) > { > I2C_SetStart (SSD1306_SA); // Slave address > I2C_WriteByte (0x40
-
Thread
Welches Display für µC? möglichst viereihig mit IIC
Software für Textdisplay im 4 Bit Modus, das ganze über einen I2C Adapter nichmal, Software für ein SSD1306 Display im SPI und I2C Modus, Software für N5110 und eines für ILI7735 . Alle Displays werden im Zextmodus bezrieben und I2C wird mit Bitbanging realusiert, so dass das alles relativ leicht auf
-
Thread
OLED/LCD Einbau , Rahmen
https://www.ebay.de/itm/0-96-I2C-IIC-Seriell-128X64-OLED-LCD-LED-Anzeigemodul-GND-F%C3%BCr-Arduino-SSD1306/192721045932?ssPageName=STRK%3AMEBIDX%3AIT&var=492862814034&_trksid=p2057872.m2749.l2649 Für LCDs findet man ja den einen oder anderen Kleberahmen aber für diese 0,96"-Anzeige habe ich nirgendwo
-
Thread
Arduino Librarys - Wer prüft diese ?
alles, da ist alles > wirklich gut dokumentiert, aus einem Guss. Nein. Die Library für das SSD1306 Display funktioniert zum Beispiel nicht auf dem Wifi Kit 8 Board.
-
Thread
Die SSD1306 mag den MSP430 nicht (antwortet nicht).
eines Arduino Uno auf eine SSD1306. Die Initialisierung schicke ich jetzt über ein I2C Terminal Byte für Byte vom PC zur SSD1306. Die Zeichen-Ausgabe funktioniert performant und fehlerfrei!!! Jetzt will ich das nicht immer vom PC aus machen. Deshalb schicke ich die Daten vom MSP430 zur SSD1306. Das mache ich bei diversen Sensoren und Displays genauso. Nur antwortet die SSD1306 nicht!!! 1.Bild: MSP430 nach SSD1306 mit angeschlossenem Display. 2.Bild: I2CTerminal sendet ohne angeschlossenem
-
Thread
Einstieg in die µC-Welt
kannst du abschätzen, ob Du Dir mehr zutraust. Vielleicht hängst du noch ein OLED Display (mit SSD1306 Controller) an den Mikrocontroller und beschäftigst Dich mit dem Thema "Tastenmatrix", dann kommst du deinen Projektideen schon etwas näher.
Damit sind wir wieder bei der Uhr. Du könntest damit anfangen, einen STM32 mit OLED Display (SSD1306) auszustatten und darauf die Uhrzeit anzeigen. Darauf kannst du aufbauen und je nach Lust folgendes Hinzufügen: - Anzeige von Sensorwerten (angefangen mit der Temperatur) - Synchronisation mit
-
Thread
SSD1306, i2c und STM
Hallo, einen stm32f303 , ein led display und den Treiber SSD1306. Problem ist, dass ich das Display nicht finde die Adresse ist 0x78 aber HAL_I2C_IsDeviceReady(&hi2c1, 0x78, 20, 100) liefert leider nichts. Hat einer Erfahrungen damit? Pullups und
-
Thread
Fertige Bibliothek oder selber schreiben?
ich habe, ist Zeit und eine Lib selbst zu schreiben frisst Zeit. Das habe ich an meiner Lib für die SSD1306/SH1106 Displays gesehen.
-
Thread
SSD1306 Arduino I2C nur 30kHz?
Hallo Zur Vorgeschichte: Ich experimentiere gerade mit meinem Atmega328 (internal 1Mhz) und dem SSD1306 128x64 OLED. Dabei musste ich feststellen das mit der aktuellen Adafruit SSD1306 Library mein Display fast 7 Sekunden bracuht um das Display zu füllen oder zu leeren. Dann dachte ich mir schau doch
ausgibt: [code] #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); int c = 0; void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); }
-
Thread
atmega328 avrdude verification error
safemode: Fuses OK (E:FF, H:D9, L:22) avrdude done. Thank you. [/code] Nun wollte ich mein SSD1306 Oled an dem Atmega testen, habe alle libs in Arduino IDE runtergeladen und ein minimalen Sketch geschrieben. [code] #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306
width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) #define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
-
Thread
ST7735 ansteuern
Interessenskonflikt. Das dargestellte Display ist ein OLED Typ, der dazugehörige Controller wäre jedoch der *SSD1306* und *nicht* der *ST7735* Was soll's denn dann bitte sein?
Nix für ungut, aber der ST7735 ist ja fast genauso trivial anzusteuern wie ein SSD1306. Wozu braucht man da eine Library? Das ist doch in einer Stunde schnell hingeklimpert. Die High Level Routinen für Linien, Kreis, Ellipse und wasweisich kann man ja von überall her nehmen.
-
Thread
senseBox edu
Arduino due mit ein paar Sensoren (die hälfte sogar die typischen China Shields). Das Display ist ein SSD1306 OLED und für das Anbinden gibts noch nicht mal eigene "Sketches", sondern man bedient sich bei Adafruit. Wir machen schöne bunte Webseite, nutzen das (unsägliche) Blocky von google und bekommen
due mit ein paar > Sensoren (die hälfte sogar die typischen China Shields). Das Display ist > ein SSD1306 OLED und für das Anbinden gibts noch nicht mal eigene > "Sketches", sondern man bedient sich bei Adafruit. Ja und? Die Chips sind je auch nicht selber aus einem Stück Silizium gefeilt. > Unterm
-
Thread
CubeMX und HAL - I2C hängt sich auf
Für den SSD1306 mit oder ohne DMA hat das prima funktioniert. Welcher I2C Baustein macht denn Probleme? Hast du eine Möglichkeit die Signale anzusehen?
pegel schrieb im Beitrag #5630265: > Für den SSD1306 mit oder ohne DMA hat das prima funktioniert. as kann ich bestätigen. Häng doch mal die vom CubeMX generierte PDF und deine main.c an!