/*
Nombre del Archivo: Dibujar con dos botones en una pantalla
Autor: Lázaro Salinas
Fecha: 26/03/2025
Objetivo:
Este programa está diseñado para hacer que con dos botones podamos dibujar en una pantalla pulsandolos.
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Definir tamaño de la pantalla OLED
#define ANCHO_PANTALLA 128
#define ALTO_PANTALLA 64
// Pines de los botones
int BOTON1 = 16; // Ajusta al pin correcto
int BOTON2 = 4; // Ajusta al pin correcto
// Inicializar pantalla OLED
Adafruit_SSD1306 oled(ANCHO_PANTALLA, ALTO_PANTALLA, &Wire, -1);
// Posición inicial del píxel (centro de la pantalla)
int x = ANCHO_PANTALLA / 2;
int y = ALTO_PANTALLA / 2;
void setup() {
Serial.begin(9600);
pinMode(BOTON1 , INPUT);
pinMode(BOTON2 , INPUT);
// Inicializar pantalla
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("Falla conexión con SSD1306 OLED"));
while (1);
}
oled.clearDisplay();
oled.display();
}
void loop() {
// Leer estado de los botones
if (digitalRead (BOTON1) ==HIGH) {
x += 1; // Mueve el píxel a la derecha
if (x >= ANCHO_PANTALLA) x = 0; // Rebote en el borde
Serial.println("Valor x");
Serial.println(x);
delay(100);
}
if (digitalRead (BOTON2) == HIGH) {
y += 1; // Mueve el píxel hacia abajo
if (y >= ALTO_PANTALLA) y = 0; // Rebote en el borde
Serial.println(" Valor y");
Serial.println(y);
delay(100);
}
// Limpiar pantalla y dibujar el píxel en la nueva posición
oled.drawPixel(x, y, WHITE);
oled.display();
}