Il mio Fuse Rescue - Parte 2 :)

Grrr... ChatGPT suggerisce (e mi sembra proprio la soluzione giusta!):


void setup() {
  u8g2.begin();
  
  // Usa il display OLED per visualizzare un messaggio iniziale
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_ncenB08_tr);
  u8g2.drawStr(0, 10, "Hello, world!");
  u8g2.sendBuffer();
  delay(1000);  // Attendi un momento per mostrare il messaggio

  // Disabilita il bus I2C dopo aver utilizzato il display OLED
  disableI2CBus();
}

void loop() {
  // Il resto del codice del tuo programmatore parallelo
  // dove puoi utilizzare i pin A4 e A5 come desiderato
}

void disableI2CBus() {
  // Disabilita il bus I2C
  TWCR &= ~(1 << TWEN);  // Disabilita l'interfaccia I2C

  // Configura i pin A4 (SDA) e A5 (SCL) come input o output
  pinMode(A4, INPUT);  // o OUTPUT se necessario
  pinMode(A5, INPUT);  // o OUTPUT se necessario
}

void enableI2CBus() {
  // Riabilita l'interfaccia I2C
  TWCR |= (1 << TWEN);  // Abilita l'interfaccia I2C

  // Configura i pin A4 (SDA) e A5 (SCL) come input con pull-up
  pinMode(A4, INPUT_PULLUP);
  pinMode(A5, INPUT_PULLUP);
  
  // Reinicializza il display OLED
  u8g2.begin();
}

TWCR &= ~(1<<TWEN); // Disabilita l'interfaccia I2C



TWCR |= (1<<TWEN); // Abilita l'interfaccia I2C