ESP32 Basic Starter Kit for dummys: Proyecto - 12 ESP32_OLED_Display
Proviene de: Proyecto-11
Para que funcione la OLED se requiere que estén instaladas las siguientes librerias en nuestro entorno de desarrollo (Arduino IDE), como por ejemplo:
- Adafruit_SSD1306 y sus librerias dependientes Adafruit_GFX y Adafruit_BUsio
El fuente del programa lo podemos encontrar en
https://github.com/LontenTechnology/ESP32_Basic_Starter_Kit_LTARK_8/tree/main/Code/Project_12_ESP32_OLED_Display
https://randomnerdtutorials.com/esp32-ssd1306-oled-display-arduino-ide/
//Librerias para la pantalla
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#include <Wire.h>
#include <Adafruit_SSD1306.h>
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#include <Wire.h>
// Tamaño de la pantalla
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define SCREEN_WIDTH 128 // OLED display width, in pixels
//Inicialización de la pantalla
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
//Incialización de la salida serie
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 30);
// Display static text
display.println("LONTEN");
display.display();
delay(100);
}
void loop() {
// Scroll in various directions, pausing in-between:
display.startscrollright(0x00, 0x0F);
delay(7000);
display.stopscroll();
delay(1000);
display.startscrollleft(0x00, 0x0F);
delay(7000);
display.stopscroll();
delay(1000);
}
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 30);
// Display static text
display.println("LONTEN");
display.display();
delay(100);
}
void loop() {
// Scroll in various directions, pausing in-between:
display.startscrollright(0x00, 0x0F);
delay(7000);
display.stopscroll();
delay(1000);
display.startscrollleft(0x00, 0x0F);
delay(7000);
display.stopscroll();
delay(1000);
}
Mas detalles sobre la conexión en general de una OLED a una ESP32 los hemos visto en "ESP32 LoRa for dummys - Pantalla OLED"
CONSIDERACIONES SOBRE PANTALLAS OLED
La pantalla OLED SSD1306 externa puede conectarse con SPI o con I2C (SDA, SCL, +5V y GND), si ya viene incluida en la placa de desarrollo se evita un problema.
Los pines se definen de forma automática a través de la libreria wire.h:
- arduino UNO: A4(SDA), A5(SCL)
- arduino MEGA 2560: 20(SDA), 21(SCL)
- arduino LEONARDO: 2(SDA), 3(SCL)
- ESP32-WROOM-32D: 21(SDA), 22(SCL)
La dirección de memoria depende de la pantalla:
- 0x3D for 128x64 (ojo las pantallas que he comprado en Aliexpress tienen 0x3C)
- 0x3C for 128x32
Mas información
Referencia
Prohibida la reproducción parcial o total de este artículo sin permiso previo del autor
Comentarios
Publicar un comentario