Programa true false con oled

Hola! Sigo subiendo mis dudas con la programación de mi máquina expendedora. En este caso hice una combinación de un programa de true false con led y otro de escritura en mi pantalla.
Por separado funcionan bien, pero una vez que los fusiono no lee el pulsador y solo puedo manejarlo desde el boton que trae la placa.

const int buttonPin = 12;
const int oledPin = -1;
int buttonState = 0;
boolean OLED_ON;
boolean FLAG_PULSE;

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
pinMode(oledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
  OLED_ON = false;
  FLAG_PULSE = true;
  

  if (display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
    Serial.println(F("SSD1306 allocation failed"));

  
  delay(2000);
  display.clearDisplay();

  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 10);
  // Display static text
  display.println("SU PAGO FUE REALIZADO CORRECTAMENTE");
  display.display(); 
}
}
void loop() {
 buttonState = digitalRead(buttonPin);
 
  if (buttonState == HIGH && OLED_ON == false && FLAG_PULSE == true) {
    digitalWrite(oledPin, HIGH); 
    OLED_ON = true; FLAG_PULSE = false;
   
  }
  else if (buttonState == HIGH && OLED_ON == true && FLAG_PULSE == true) {
    digitalWrite(oledPin, LOW);
    OLED_ON = false;
    FLAG_PULSE = false;
  }
  else if (buttonState == LOW && FLAG_PULSE == false){
    FLAG_PULSE = true;

}
}  

¿Por qué el número de PIN es negativo?

Representa los dos pines de la pantalla oled. Me han dicho que no es posible poner pines negativos, pero me funciona así y no si pongo los dos números de pines.

No puedes hacer
digitalWrite(pin, state)
si el pin es negativo.

Creo que es por eso que el programa se congela.

El programa responde, el problema es que no toma el número de pin del pulsador y usa el que tiene por defecto la placa.

no lo comprendo...

Has probado a seleccionar otros pines, positivo?

La pantalla debería encenderse pulsando el pulsador rodeado en rojo, pero lo hace usando los que están rodeados en verde.
Sí, probé los pines que corresponden a la pantalla pero me detecta error.

Esos botones son el reset y el que habilita la carga de código, no son pulsadores para propósito general.

No se a qué pin intentas acceder pero seguro no es -1 porque no existe, tal vez y con mucha suerte el compilador lo tome como pin 15, pero estoy suponiendo.

El pulsador para mí esta mal conectado (yo lo veo conectado al GPIO14 en lugar del 12) pero puede ser que la foto no ayude, cuéntanos como lo conectaste.

Por qué sería el pin 15?
El pulsador está en el pin 12.

porque las inscripciones en el board no coinciden con los números de pin en arduino

Pareciera que está en el octavo pin contando desde el USB, que sería el GPIO14 marcado como D5, por eso dije que puede que sea por la foto.

Porque -1 (entero) es 0xFFFF en hexa, los números de pin ocupan un byte, o sea que descartando el byte superior queda 0xFF que es 255 en decimal, podría ser cualquier pin cuyo número tenga todos los bites a 1, el ESP8266 tiene 33 pines así que no puede ser mayor a 33, el más cercano es 31 (0x1F) , pero tiene 17 GPIOs (del 0 al 16) y el numero más cercano con todos los bites en 1 es el 15 (0xF).
Pero como dije, es una mera suposición, no se realmente que valor está tomando el compilador, lo cierto es que el pin -1 no existe y me sorprende que no "salte" el error.