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