Aprende > Electrónica > Sensores > Display 128×64 0.96″ I2C SSD1306 (Azul/Blanco)
El Display OLED Azul y Blanco 128×64 0.96" I2C SSD1306 es un módulo de pantalla compacto y eficiente, ideal para proyectos de electrónica y microcontroladores. Su tamaño de 0.96 pulgadas y resolución de 128x64 píxeles lo hacen perfecto para mostrar texto, gráficos y pequeñas imágenes con gran claridad y nitidez.
Especificaciones
Dimensiones de la pantalla: 0.96 pulgadas (diagonal).
Resolución: 128 x 64 píxeles.
Colores: Azul y Blanco (dependiendo de la sección del display).
Tipo de pantalla: OLED (Organic Light-Emitting Diode).
Controlador: SSD1306.
Interfaz de comunicación: I2C (también compatible con SPI con modificaciones).
Dirección I2C: Por defecto 0x3C o 0x3D, dependiendo de la configuración.
Voltaje de operación: 3.3V - 5V.
Consumo de corriente: ~20 mA (puede variar dependiendo del contenido visualizado).
Ángulo de visión: Aproximadamente 160°.
Temperatura de operación: -40°C a 85°C.
Peso: Aproximadamente 8 gramos.
Dimensiones físicas: 27.0 mm x 27.0 mm x 4.1 mm (ancho x alto x grosor).
Datasheet SSD1306
El controlador SSD1306 integrado es ampliamente compatible con microcontroladores como Arduino, Raspberry Pi, ESP8266, entre otros. Su interfaz I2C permite una fácil conexión, reduciendo la cantidad de pines necesarios para su funcionamiento. Esto lo convierte en una excelente opción para proyectos compactos donde el espacio y el consumo de energía son limitados.
En resumen, el Display OLED Azul y Blanco 128×64 0.96" I2C SSD1306 es una solución versátil y eficiente para agregar capacidades de visualización a tus proyectos electrónicos.
El pinout del Display OLED 128x64 0.96" con controlador SSD1306 y comunicación I2C es el siguiente:
GND: Tierra o negativo de la fuente de alimentación.
VCC: Voltaje de alimentación, que puede ser de 3.3V o 5V, dependiendo de tu microcontrolador.
SCL: Línea de reloj para la comunicación I2C (también conocido como SCK o CLK en algunos esquemas).
SDA: Línea de datos para la comunicación I2C (también conocido como MOSI en algunos esquemas).
Estos pines permiten la conexión directa a los pines I2C de microcontroladores como Arduino, Raspberry Pi, ESP8266, entre otros, facilitando la implementación en proyectos electrónicos.
Para usar el dsplay OLED 128X64 0.96" con controlador SSD1306 en Arduino, necesitas instalar las siguientes bibliotecas en el Arduino IDE:
Adafruit SSD1306:
Adafruit SSD1306: Es una biblioteca popular que te permitirá interactuar con la pantalla OLED.
Para instalarla, sigue estos pasos:
Ve a "Programa (sketch)" > "Incluir librería (Include Library)" > "Gestor de librerías (Manage Libraries)..." en el Arduino IDE.
Busca "Adafruit SSD1306".
Selecciona la biblioteca y haz clic en "Install".
AHT20:
Adafruit AHT20 Library: Esta biblioteca es compatible con el AHT20 y otros sensores de la serie AHT.
Para instalarla, sigue el mismo procedimiento que con la biblioteca del BMP280, pero busca "Adafruit AHT20" en lugar de "Adafruit BMP280".
Realizar la siguiente conexión para probar el sensor BMP280+AHT20.
Después de hacer la conexión carga el siguiente código al IDE de Arduino.
/*
Programa: Encender y apagar un led en Arduino uno. (Blink)
Curso: Arduino UNO
Autor: Expacio Science Group
*/
#include <Wire.h> // Incluye la biblioteca Wire para la comunicación I2C
#include <Adafruit_Sensor.h> // Incluye la biblioteca base para manejar sensores Adafruit
#include <Adafruit_AHTX0.h> // Incluye la biblioteca para el sensor AHT20 (AHTX0 es el nombre de la biblioteca para AHT20)
#include <Adafruit_BMP280.h> // Incluye la biblioteca para el sensor BMP280
// Crear objetos para los sensores
Adafruit_AHTX0 aht; // Crea un objeto para el sensor AHT20
Adafruit_BMP280 bmp; // Crea un objeto para el sensor BMP280 (usará la comunicación I2C)
// Función de configuración inicial, se ejecuta una vez al inicio
void setup() {
Serial.begin(9600); // Inicializa la comunicación serie a 9600 baudios
delay(1000); // Espera 1 segundo para permitir que el Monitor Serie se establezca correctamente
Serial.println("Iniciando sensores..."); // Imprime un mensaje en el Monitor Serie indicando que los sensores se están iniciando
// Iniciar el sensor AHT20
if (!aht.begin()) { // Intenta iniciar el sensor AHT20
Serial.println("No se pudo encontrar el sensor AHT20. Verifique la conexión."); // Mensaje de error si el sensor no se encuentra
while (1) delay(10); // Si no se encuentra el sensor, se detiene el programa y espera indefinidamente
}
Serial.println("Sensor AHT20 iniciado correctamente"); // Mensaje en el Monitor Serie indicando que el sensor AHT20 se ha iniciado correctamente
// Iniciar el sensor BMP280 con la dirección I2C 0x77
if (!bmp.begin(0x77)) { // Intenta iniciar el sensor BMP280 en la dirección I2C 0x77
Serial.println("No se pudo encontrar el sensor BMP280 en la dirección 0x77. Verifique la conexión."); // Mensaje de error si el sensor no se encuentra
while (1) delay(10); // Si no se encuentra el sensor, se detiene el programa y espera indefinidamente
}
Serial.println("Sensor BMP280 iniciado correctamente"); // Mensaje en el Monitor Serie indicando que el sensor BMP280 se ha iniciado correctamente
}
// Función principal que se ejecuta en un bucle infinito
void loop() {
// Leer datos del sensor AHT20
sensors_event_t humidity, temp; // Declara variables para almacenar los eventos de humedad y temperatura
aht.getEvent(&humidity, &temp); // Obtiene los eventos de humedad y temperatura del sensor AHT20
Serial.print("Temperatura AHT20: "); // Imprime el texto en el Monitor Serie
Serial.print(temp.temperature); // Imprime la temperatura leída del sensor AHT20
Serial.println(" °C"); // Imprime la unidad de medida (°C) y pasa a la siguiente línea
Serial.print("Humedad: "); // Imprime el texto en el Monitor Serie
Serial.print(humidity.relative_humidity); // Imprime la humedad relativa leída del sensor AHT20
Serial.println(" %"); // Imprime el símbolo de porcentaje (%) y pasa a la siguiente línea
// Leer datos del sensor BMP280
float bmpTemp = bmp.readTemperature(); // Lee la temperatura del sensor BMP280 y almacena el valor en bmpTemp
float pressure = bmp.readPressure() / 100.0F; // Lee la presión del sensor BMP280, la convierte de Pa a hPa y almacena el valor en pressure
Serial.print("Temperatura BMP280: "); // Imprime el texto en el Monitor Serie
Serial.print(bmpTemp); // Imprime la temperatura leída del sensor BMP280
Serial.println(" °C"); // Imprime la unidad de medida (°C) y pasa a la siguiente línea
Serial.print("Presión: "); // Imprime el texto en el Monitor Serie
Serial.print(pressure); // Imprime la presión leída del sensor BMP280
Serial.println(" hPa"); // Imprime la unidad de medida (hPa) y pasa a la siguiente línea
delay(2000); // Espera 2 segundos antes de realizar la siguiente lectura de los sensores
}
Al carga el código comprobamos las lecturas en el monitor series y listo podras usar el sensor en tus proyectos.
Para conocer el funcionamiento de otros sensores visita sensores.