OLED Display 1.12

From
Revision as of 21:50, 5 October 2025 by Ows wiki (talk | contribs) (→‎Code Hello World! (u8g2))
Jump to: navigation, search

Grove - OLED Display 1.12 inches (Seeed-Studio)

Caractéristiques

16 niveaux de gris

il y a 2 versions


matrix OLED v1.0
96 × 96 pixels
Pilote SSD1327

matrix OLED v2.1 *utilisé pour nos tests
128 × 128 pixels
Pilote SH1107G

Les deux versions partagent la même bibliothèque qui de base était conçu pour la version 1.0

Communication

Port I2c ✅

Support

Supports both Normal and Inverse Color Display
Supports Continuous Horizontal Scrolling

OLED Display 96x96 recto.jpg OLED Display 96x96 verso.jpg OLED Display 96X96 connection.jpg

Pilotes (Drivers)

OLED Display: LY120-96096
Driver I2C:
v1.0 SSD1327Z
v2.1 SH1107G

Voltage

Operating Voltage: 3.3~5V

Mise en route (Setup)

connecter au port I2c
installer la bibliotheque
github -> https://github.com/Seeed-Studio/OLED_Display_96X96

il faut aussi la bibliotheque arduino wire.h

veuillez adapter le code selon la version OLED utilisée
v1.0 -> SeeedGrayOled.init(SSD1327);
v2.1 -> SeeedGrayOled.init(SH1107G);

Exemples

Grove OLED Display 1.12 V1.0
./examples/OLED_SSD1327_v1

Grove OLED Display 1.12 V2.0

./examples/OLED_SH1107G_v2

liste d'exemples:

OLED_Bitmap_Inverse_Display
OLED_Draw_Bitmap
OLED_Hello_World
OLED_Inverse_Display
OLED_PrintNumbers
OLED_Scroll_Left
OLED_Scroll_Right
OLED_Z_Display_Driver_Test_Suite

Code : Hello World!

Bibliotheque SeeedGrayOLED (128 × 128 pixels)

https://github.com/Seeed-Studio/OLED_Display_96X96

https://github.com/Seeed-Studio/OLED_Display_96X96/blob/master/examples/OLED_SH1107G_v2/OLED_Hello_World/OLED_Hello_World.ino




	/*
	  The new OLED module drive IC has two version,
	  1. SH1107G
	  2. SSD1327
	  
	  Change the paramater of the drive IC name to init the module.
	  **
	  ** SeeedGrayOled.init(SSD1327);  // SSD1327 or SH1107G
	  **
	  Copyright - Seeedstudio
	  Author - lambor
	  Date - 4/24/2017
	*/

	#include <Wire.h>
	#include <SeeedGrayOLED.h>
	#include <avr/pgmspace.h>

	void setup()
	{
	  Wire.begin();
	  SeeedGrayOled.init(SH1107G);             //initialize SEEED OLED display
	  SeeedGrayOled.clearDisplay();            //Clear Display.
	  SeeedGrayOled.setNormalDisplay();        //Set Normal Display Mode
	  SeeedGrayOled.setVerticalMode();         // Set to vertical mode for displaying text
	  
	  for(char i=0; i < 12 ; i++)
	  {
	  SeeedGrayOled.setTextXY(i,0);           //set Cursor to ith line, 0th column
	  SeeedGrayOled.setGrayLevel(i);          //Set Grayscale level. Any number between 0 - 15.
	  SeeedGrayOled.putString("Hello World"); //Print Hello World
	  }
	}   

	void loop()
	{
	  
	}



Code Hello World! (u8g2)

Bibliotheque u8g2 128 × 128 pixels

library of u8g2 (Monochrome graphics library supports OLEDs and LCDs)

Grove Base for XIAO 1.PNG XIAO-ESP32S3 1.PNG OLED Display 96x96 recto.jpg

Grove Base for XIAO
XIAO-ESP32S3
OLED Display 1.12 - Port I2c✅

mais il n'écoute pas x,y n'est pas exécuté, on demande de faire 0,24 mais il fait 0,0

#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
#include <Wire.h>

U8G2_SH1107_SEEED_128X128_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);

void setup(void) {
  u8g2.begin();
}

void loop(void) {
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_ncenB10_tr);
    u8g2.drawStr(0,24,"Hello World!");
  } while ( u8g2.nextPage() );
}

voici une autre version avec u8x8✅
Les polices `u8x8_font_*` sont **fixées à 8x8 pixels

Oui ceci fonctionne, juste le texte petit, mais à l'emplacement prévu
Autrement il affiche, ensuite il efface l'écran, ainsi de suite

certaines polices comme `u8x8_font_px437wyse700a_2x2_r` affichent les caractères en double taille (chaque caractère occupe 2x2 blocs de 8x8
à tester

#include <Arduino.h>
#include <U8x8lib.h>
#include <Wire.h>

// Remplace U8G2 par U8X8
U8X8_SH1107_SEEED_128X128_SW_I2C u8x8(/* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);

void setup(void) {
  u8x8.begin();
  u8x8.setPowerSave(0); // Active l'affichage
  u8x8.setFont(u8x8_font_chroma48medium8_r); // Choisis une police compatible U8x8
}

void loop(void) {
  u8x8.clearDisplay(); // Efface l'écran
  u8x8.drawString(0, 24, "Hello World!"); // Affiche le texte à la ligne 24, colonne 0
  delay(1000); // Petite pause
}

Autres polices u8x8
u8x8_font_profont29_2x3_n
u8x8_font_courB18_2x3_n
u8x8_font_inb33_3x6_n

https://github.com/olikraus/u8g2/wiki/u8x8reference



à tester avec u8g2 basé sur l'article de Elaine Wu dans le blog @seeed ✅

https://www.seeedstudio.com/blog/2019/07/05/u8g2-for-seeeduino-boards/

#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>

U8G2_SH1107_SEEED_128X128_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

void setup(void) {
  u8g2.begin();
}

void loop(void) {
  u8g2.clearBuffer(); 
  u8g2.setCursor(10, 80);
  u8g2.setFont(u8g2_font_ncenB12_tr); 
  u8g2.print("Hello World!");
  u8g2.sendBuffer();
  delay(1000);  
}

Autres Polices u8g2
u8g2_font_lastpriestess_tu
u8g2_font_lubB10_tn
u8g2_font_lubB12_tn
u8g2_font_lubB14_tn
u8g2_font_lubB18_tn
u8g2_font_lubB19_tn
u8g2_font_lubB24_tn


Liste des fonctions

init()
clearDisplay()
setNormalDisplay()
setContrastLevel(unsigned char ContrastLevel)
setInverseDisplay()
setHorizontalMode()
setVerticalMode()
setTextXY(X,Y)
putChar(unsigned char c)
putString(cont char *string)
putNumber(long n)
drawBitmap(unsigned char *bitmaparray, int bytes)
setHorizontalScrollProperties
activateScroll()
deactivateScroll()

Liens internes

Main page


Liens externes

github.com/Seeed-Studio/OLED_Display_96X96/archive/master.zip Librairies ZIP

www.seeedstudio.com/Grove-OLED-Display-1-12-V2.html  shop

wiki.seeedstudio.com/Grove-OLED_Display_1.12inch  wiki