# Oled Display SSD1306 Display Clear

**URL:** <https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801>\
**Category:** Software\
**Created:** [May 6, 2022, 2:46am UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801 "2022-05-06T02:46:42Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![danielfelix](https://avatars.discourse-cdn.com/v4/letter/d/7993a0/32.png) [@danielfelix](https://forum.arduino.cc/u/danielfelix)\
**Post date:** [May 6, 2022, 2:46am UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/1 "2022-05-06T02:46:42Z")

</div>

Hola, estoy usando un panel Oled SSD1306 de 64x48 conectado a una Wemos D1.  
Empecé cargando un ejemplo típico de "Hola Mundo", funcionó de una.  
Cuando reinicio me aparece una pantalla llena de puntos y algo del "Hola Mundo".  
Es como que no se refresca.  
Va foto de la pantalla.  
Agradezco su atención.  
Este es el código q uso:

```cpp
#define __DEBUG__

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Definir constantes
#define ANCHO_PANTALLA 64 // ancho pantalla OLED
#define ALTO_PANTALLA 48 // alto pantalla OLED

// Objeto de la clase Adafruit_SSD1306
  Adafruit_SSD1306 display(ANCHO_PANTALLA, ALTO_PANTALLA, &Wire, -1);
 

   
void setup() {
#ifdef __DEBUG__
  Serial.begin(9600);
  delay(100);
  Serial.println("Iniciando pantalla OLED");
#endif

  // Iniciar pantalla OLED en la dirección 0x3C
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
#ifdef __DEBUG__
    Serial.println("No se encuentra la pantalla OLED");
#endif
    while (true);
  }

  // Limpiar buffer
  display.clearDisplay();
  // Tamaño del texto
  display.setTextSize(1
  );
  // Color del texto
  display.setTextColor(SSD1306_WHITE);
  // Posición del texto
  display.setCursor(0, 0);
  // Escribir texto
 display.println("¡¡Hola mundo!!");
  // Enviar a pantalla
  display.display();

}

void loop() {}

```

 ![IMG_20220505_233354](https://europe1.discourse-cdn.com/arduino/original/4X/2/7/0/27011157f403c9965ca9f9ed1cd3a16b241f9bf3.jpeg)

---

<div class="post-metadata">

**Author:** ![cuantron](https://avatars.discourse-cdn.com/v4/letter/c/c68b51/32.png) [@cuantron](https://forum.arduino.cc/u/cuantron)\
**Post date:** [May 6, 2022, 10:07pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/2 "2022-05-06T22:07:45Z")

</div>

¿Y esos caracteres de exclamación no anglosajones? -\> ¡¡

Esta información la tienes en los mismos artículos con los ejemplos de hola mundo.

```cpp
  //Activar página de código 437
  display.cp437(true);
  // Escribir el carácter ¡ dos veces
  display.write(173);
  display.write(173);
  // Escribir texto
  display.println("Hola mundo!!");

```

[ssd1306-pantalla-oled](https://programarfacil.com/blog/arduino-blog/ssd1306-pantalla-oled-con-arduino/)

Recuerden leer los tutoriales no sólo ir al copy and paste. Saludos.

---

<div class="post-metadata">

**Author:** ![danielfelix](https://avatars.discourse-cdn.com/v4/letter/d/7993a0/32.png) [@danielfelix](https://forum.arduino.cc/u/danielfelix)\
**Post date:** [May 6, 2022, 10:25pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/3 "2022-05-06T22:25:02Z")

</div>

Ya los eliminé. De hecho el artículo q sugerís es de donde copié el sketch.  
Me parece q hay un error en el funcionamiento del display...

---

<div class="post-metadata">

**Author:** ![cuantron](https://avatars.discourse-cdn.com/v4/letter/c/c68b51/32.png) [@cuantron](https://forum.arduino.cc/u/cuantron)\
**Post date:** [May 6, 2022, 10:32pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/4 "2022-05-06T22:32:06Z")

</div>

O hay algo que no estamos viendo pues sólo has aportado código y no un diagrama de cómo está conectado todo pero también hay que tener en cuenta y **Cito** :

ANCHO\_PANTALLA: es la constante donde se almacena el ancho de la pantalla.  
ALTO\_PANTALLA: es la constante donde se almacena el alto de la pantalla.  
&Wire: el un puntero a la clase estática Wire.  
-1: es el pin de Arduino o ESP8266 que se utiliza para resetear la pantalla.

El último parámetro (-1) sólo se utiliza con pantallas que tienen un pin para resetear. Se debe conectar ese pin normalmente serigrafiado con RST al pin de Arduino o ESP8266 y luego poner en el constructor el número de pin utilizado.

**¿Tu pantalla tiene pin para resetear? ¿Está conectado donde debe?**

---

<div class="post-metadata">

**Author:** ![danielfelix](https://avatars.discourse-cdn.com/v4/letter/d/7993a0/32.png) [@danielfelix](https://forum.arduino.cc/u/danielfelix)\
**Post date:** [May 6, 2022, 10:55pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/5 "2022-05-06T22:55:29Z")

</div>

Gracias x tu respuesta. Te paso el link de dónde compré el display, es mas sencillo que explicarte y subir fotos del mismo.  
https://articulo.mercadolibre.com.ar/MLA-1127928733-display-oled-shield-wemos-d1-mini-066-64x48-esp8266-ptec-\_JM  
No tengo ni idea lo que mencionas sobre el Pin de reset. Hay que asignarle al Wemos D1 mini un pin para eso? En ningún lado se menciona que el Display tenga un pin de reset.  
Al no usar el Display "encima" del Wemos, cableo los pines necesarios: D1 SCL,  
D2 SDA, 3.3V y masa.  
Gracias por tu atención.

---

<div class="post-metadata">

**Author:** ![gonpezzi](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gonpezzi/32/763557_2.png) [@gonpezzi](https://forum.arduino.cc/u/gonpezzi)\
**Post date:** [May 6, 2022, 11:08pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/6 "2022-05-06T23:08:15Z")

</div>

Hola @danielfelix te paso el pdf que adjunta un vendedor Europeo para esa pantalla veamos si te vale.  
[0,66 Oled Display Shield\_EN.pdf](https://forum.arduino.cc/uploads/short-url/xKSLqeYJjw3HhJ1AlVNmm6mXqIL.pdf) (1.4 MB)  
Saludos.  
PD: no le hagas caso al harware solo al codigo de ejemplo difiere un poco del tuyo.

---

<div class="post-metadata">

**Author:** ![danielfelix](https://avatars.discourse-cdn.com/v4/letter/d/7993a0/32.png) [@danielfelix](https://forum.arduino.cc/u/danielfelix)\
**Post date:** [May 6, 2022, 11:25pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/7 "2022-05-06T23:25:18Z")

</div>

Nop, no funciona, muestra la misma imagen de puntos aleatorios.  
Lo devuelvo, cuando reciba otro nuevo lo comento.  
Muchas gracias!!!

---

<div class="post-metadata">

**Author:** ![Surbyte](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/surbyte/32/217404_2.png) [@Surbyte](https://forum.arduino.cc/u/Surbyte)\
**Post date:** [May 7, 2022, 12:21am UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/8 "2022-05-07T00:21:36Z")

</div>

> [@danielfelix](#):
>
> [https://articulo.mercadolibre.com.ar/MLA-1127928733-display-oled-shield-wemos-d1-mini-066-64x48-esp8266-ptec-\_JM](https://articulo.mercadolibre.com.ar/MLA-1127928733-display-oled-shield-wemos-d1-mini-066-64x48-esp8266-ptec-_JM)

![image](https://europe1.discourse-cdn.com/arduino/original/4X/0/6/3/063ed7990ae338c95ec7df71111c86623df07d07.jpeg)

Yo pude tomar la imagen y arriba a la derecha tiene un pin RST o sea lo que te dijo @cuantron

---

<div class="post-metadata">

**Author:** ![gonpezzi](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gonpezzi/32/763557_2.png) [@gonpezzi](https://forum.arduino.cc/u/gonpezzi)\
**Post date:** [May 7, 2022, 1:15am UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/9 "2022-05-07T01:15:41Z")

</div>

> [@Surbyte](#):
>
> tiene un pin RST o sea lo que te dijo @cuantron

No , esta usando comunicacion i2c y no le hace falta reset y ya se lo esta diciendo en el constructor con el (-1), que indica que no lleva reset o que va conectado con el reset de la placa controladora. No importa si se conecta o no ese pin.

---

<div class="post-metadata">

**Author:** ![Surbyte](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/surbyte/32/217404_2.png) [@Surbyte](https://forum.arduino.cc/u/Surbyte)\
**Post date:** [May 7, 2022, 2:02am UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/10 "2022-05-07T02:02:04Z")

</div>

> [@cuantron](#):
>
> El último parámetro (-1) sólo se utiliza con pantallas que tienen un pin para resetear. Se debe conectar ese pin normalmente serigrafiado con RST al pin de Arduino o ESP8266 y luego poner en el constructor el número de pin utilizado.

Me baso en lo investigado por @cuantron. Usa I2C y el ultimo dato lo que es.  
Ok si no va no va.

---

<div class="post-metadata">

**Author:** ![danielfelix](https://avatars.discourse-cdn.com/v4/letter/d/7993a0/32.png) [@danielfelix](https://forum.arduino.cc/u/danielfelix)\
**Post date:** [May 7, 2022, 2:08am UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/11 "2022-05-07T02:08:36Z")

</div>

Gracias a todos!

---

<div class="post-metadata">

**Author:** ![cuantron](https://avatars.discourse-cdn.com/v4/letter/c/c68b51/32.png) [@cuantron](https://forum.arduino.cc/u/cuantron)\
**Post date:** [May 7, 2022, 8:27am UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/12 "2022-05-07T08:27:10Z")

</div>

yo no distingo nada en la foto con la claridad, enserio, por eso yo pregunto, pero resulta extraño este comportamiento:

> [@danielfelix](#):
>
> Empecé cargando un ejemplo típico de "Hola Mundo", funcionó de una.  
> Cuando reinicio me aparece una pantalla llena de puntos y algo del "Hola Mundo".  
> Es como que no se refresca.

Si inicialmente se vió bien (o más o menos) porque los caracteres "¡" no se pudieron ver tal cual el código y luego al resetear todo sale mal, yo entiendo que o hay algo mal conectado o hubo algo mal conectado llegando a estropear la TFT... o bien hay algo mal definido...

¿Cuál de las opciones? Pues nos falta info para saber.

---

<div class="post-metadata">

**Author:** ![danielfelix](https://avatars.discourse-cdn.com/v4/letter/d/7993a0/32.png) [@danielfelix](https://forum.arduino.cc/u/danielfelix)\
**Post date:** [May 7, 2022, 1:28pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/13 "2022-05-07T13:28:53Z")

</div>

La única posibilidad de dañar el display es conectando a 5V en lugar de a 3.3V y eso no sucedió.  
Cuando tenga un display nuevo, vuelvo a comentar. Gracias x su atención.

---

<div class="post-metadata">

**Author:** ![gonpezzi](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gonpezzi/32/763557_2.png) [@gonpezzi](https://forum.arduino.cc/u/gonpezzi)\
**Post date:** [May 7, 2022, 3:13pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/14 "2022-05-07T15:13:00Z")

</div>

> [@cuantron](#):
>
> o bien hay algo mal definido...

Me parece que es eso @cuantron .  
Estimado @danielfelix , ¿ seguro que probaste el codigo del vendedor Europeo que te subi en el post #6 ?.  
Lo pregunto porque aparte de los textos a imprimir que no tiene importancia lo unico que cambia es la definicion del objeto "display". Pues he hecho unas pruebas con mis pantallitas:  
Si defino display como haces tu:

```arduino
Adafruit_SSD1306 display(ANCHO_PANTALLA, ALTO_PANTALLA, &Wire, -1);

```

Obtengo un error parecido al tuyo

 ![1](https://europe1.discourse-cdn.com/arduino/original/4X/8/3/a/83aba0fff2026db7f087714ba6fb16b7e67549e0.jpeg)  
En cambio si defino el display como lo hacen ellos:

```arduino
Adafruit_SSD1306 display(OLED_RESET)

```

Que como ves no definen ni ancho ni alto ni tipo de comunicacion obtengo el siguiente resultado con tu codigo:

 ![2](https://europe1.discourse-cdn.com/arduino/original/4X/2/7/b/27b59f7d1175baa1c65ad344b01eb82ac23046b8.jpeg)  
Pruebalo porque creo que no le estas definiendo una comunicacion I2C y estas mareando a la pantalla.

---

<div class="post-metadata">

**Author:** ![cuantron](https://avatars.discourse-cdn.com/v4/letter/c/c68b51/32.png) [@cuantron](https://forum.arduino.cc/u/cuantron)\
**Post date:** [May 7, 2022, 7:36pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/15 "2022-05-07T19:36:45Z")

</div>

confiemos en que el autor de la duda te lea antes de comprar otro display porque se ve que has dado en el clavo 🙂

---

<div class="post-metadata">

**Author:** ![danielfelix](https://avatars.discourse-cdn.com/v4/letter/d/7993a0/32.png) [@danielfelix](https://forum.arduino.cc/u/danielfelix)\
**Post date:** [May 7, 2022, 10:45pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/16 "2022-05-07T22:45:00Z")

</div>

> [@gonpezzi](#):
>
> `Adafruit_SSD1306 display(OLED_RESET)`

Tengo un lío en el mate! Pasame por favor exactamente el scketh q usaste.

---

<div class="post-metadata">

**Author:** ![gonpezzi](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gonpezzi/32/763557_2.png) [@gonpezzi](https://forum.arduino.cc/u/gonpezzi)\
**Post date:** [May 7, 2022, 11:00pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/17 "2022-05-07T23:00:25Z")

</div>

```cpp
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Objeto de la clase Adafruit_SSD1306
  Adafruit_SSD1306 display(-1);
   
void setup() {
#ifdef __DEBUG__
  Serial.begin(9600);
  delay(100);
  Serial.println("Iniciando pantalla OLED");
#endif

  // Iniciar pantalla OLED en la dirección 0x3C
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
#ifdef __DEBUG__
    Serial.println("No se encuentra la pantalla OLED");
#endif
    while (true);
  }

  // Limpiar buffer
  display.clearDisplay();
  // Tamaño del texto
  display.setTextSize(1
  );
  // Color del texto
  display.setTextColor(SSD1306_WHITE);
  // Posición del texto
  display.setCursor(0, 0);
  // Escribir texto
 display.println("!!---Hola mundo---!!");
  // Enviar a pantalla
  display.display();
}
void loop() {}

```

---

<div class="post-metadata">

**Author:** ![danielfelix](https://avatars.discourse-cdn.com/v4/letter/d/7993a0/32.png) [@danielfelix](https://forum.arduino.cc/u/danielfelix)\
**Post date:** [May 7, 2022, 11:06pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/18 "2022-05-07T23:06:13Z")

</div>

![IMG_20220507_200411](https://europe1.discourse-cdn.com/arduino/original/4X/4/5/d/45dcb33d94479adf1b45bc51b51f1fc77cb6bb63.jpeg)  
No hay modo... lo doy por perdido?

---

<div class="post-metadata">

**Author:** ![gonpezzi](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gonpezzi/32/763557_2.png) [@gonpezzi](https://forum.arduino.cc/u/gonpezzi)\
**Post date:** [May 7, 2022, 11:10pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/19 "2022-05-07T23:10:36Z")

</div>

¿La estas conectando bien? Veo que al menos le falta un cable.

---

<div class="post-metadata">

**Author:** ![danielfelix](https://avatars.discourse-cdn.com/v4/letter/d/7993a0/32.png) [@danielfelix](https://forum.arduino.cc/u/danielfelix)\
**Post date:** [May 7, 2022, 11:18pm UTC](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801/20 "2022-05-07T23:18:50Z")

</div>

Reset? tengo 3.3, gdn, D1 SCL, D2 SDA

[Next page](https://forum.arduino.cc/t/oled-display-ssd1306-display-clear/988801.md?page=2)
