Módulo SSD1306
- Costo: $319.20 / 5 (16/07/2024)
Caracteristicas
- Tipo: OLED
- Tamaño: 0.96 pulgadas
- Resolución: 128 x 64 píxeles
- Color: Monocromo (generalmente blanco, azul o amarillo)
- Interfaz/Protocolo de comunicación: I2C
- Voltaje: 5 V
programación
- Adafruit GFX Library
- Adafruit SSD1306
Conexión
Oled | Arduino Nano | Arduino Mega |
---|---|---|
VCC | 5V | |
GND | GND | |
SCL | A5 (para I2C) | 21 |
SDA | A4 (para I2C) | 20 |
- La dirección I2C del SSD1306 normalmente es
0x3C
(en algunos casos puede ser0x3D
, pero0x3C
es el valor predeterminado). Si no se puede inicializar, el programa se detiene e imprime un mensaje de error en el monitor serial.
Puedes usar el siguiente programa para escanear si la dirección I2C está correcta.
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
while (!Serial); // Espera a que el puerto serial esté listo
Serial.println("\nBuscando dispositivos I2C...");
for (byte address = 8; address < 120; address++) {
Wire.beginTransmission(address);
byte error = Wire.endTransmission();
if (error == 0) {
Serial.print("Dispositivo encontrado en la dirección: 0x");
Serial.println(address, HEX);
}
}
}
void loop() {}
Funciones
- display.clearDisplay(): Limpia la pantalla
- display.display(): Llama a este método para que los cambios surtan efecto
Text:
- display.setTextSize(n): Establece el tamaño de fuente, admite tamaños de 1 a 8
- display.setCursor(x,y): Establece las coordenadas para comenzar a escribir texto
- display.setTextColor(color): Configura el color del texto dependiendo del color de fondo
SSD1306_WHITE
: Texto en blancoSSD1306_BLACK
: Texto en negro (invisible sobre fondo negro)SSD1306_INVERSE
: Texto invertido (blanco sobre negro o viceversa)
- display“Hola Mundo!”>a Mundo!")): Imprime los caracteres en la ubicación x,y
Adafruit GFX:
- display.drawPixel(x,y,color): Traza un píxel en las coordenadas x,y
- display.drawLine(0, 0, 127, 63, SSD1306_WHITE): Línea desde (0,0) a (127,63)
- display.drawRect(10, 10, 50, 30, SSD1306_WHITE): Rectángulo en (10,10), de 50x30 píxeles
- display.drawCircle(64, 32, 20, SSD1306_WHITE): Círculo en el centro (64,32) con radio 20
- display.fillCircle(64, 32, 10, SSD1306_WHITE): Círculo relleno
- display.fillTriangle(10, 50, 50, 50, 30, 10, SSD1306_WHITE): Triángulo con 3 puntos definidos
Bitmap
Puedes mostrar imágenes (como mapa de bits) usando:
- U8g2: formato XBM (un mapa de bits en formato binario).
U8g2
también incluye la biblioteca U8x8
- Adafruit GFX: formato BMP.