#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Definir el ancho y alto del display OLED en píxeles
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
// Crear un objeto SSD1306 para la pantalla OLED
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// Pines para la conexión I2C
#define OLED_RESET -1 // Este pin no se usa, se puede dejar sin conexión
#define SCREEN_ADDRESS 0x3C // Dirección I2C del display (0x3C o 0x3D)
// Definir el pin del buzzer
#define BUZZER_PIN 15
void setup() {
// Inicializar comunicación I2C
Wire.begin(21, 22); // SDA = 21, SCL = 22
// Inicializar el display OLED
if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("No se encuentra el display SSD1306."));
for(;;); // Bucle infinito para detener el programa
}
// Configurar el pin del buzzer como salida
pinMode(BUZZER_PIN, OUTPUT);
// Limpiar el buffer de la pantalla
display.clearDisplay();
// Mostrar texto de ejemplo
display.setTextSize(1); // Tamaño del texto
display.setTextColor(SSD1306_WHITE); // Color del texto
display.setCursor(0, 0); // Posición del cursor en la pantalla
display.println(F("Hola, Mundo!"));
display.display(); // Enviar buffer a la pantalla
// Hacer sonar el buzzer como señal de inicio
tone(BUZZER_PIN, 1000); // Frecuencia de 1000 Hz
delay(500); // Sonar durante 500 ms
noTone(BUZZER_PIN); // Apagar el buzzer
}
void loop() {
// Ejemplo de hacer sonar el buzzer cada 2 segundos
tone(BUZZER_PIN, 1000); // Frecuencia de 1000 Hz
delay(500); // Sonar durante 500 ms
noTone(BUZZER_PIN); // Apagar el buzzer
delay(1500); // Esperar 1.5 segundos
}