SKU: OT3345 Numero articolo: OT3345 EAN: 8721244302812
Questa scheda di sviluppo ESP32-C3 combina connettività wireless con un compatto display OLED da 0.42 pollici. La scheda è basata sul affidabile chip ESP32C3FN4/FH4 e dispone di un'antenna ceramica integrata per WiFi e Bluetooth. Con 4MB di memoria flash e programmazione USB è ideale per diversi progetti IoT.
Grazie al basso consumo energetico e alla versatile connettività, questa scheda è adatta per:
Questa compatta scheda IoT è basata sul chip ESP32-C3 (RISC-V) e dispone di uno schermo OLED integrato da 0.42 pollici. Poiché il pinout e il controllo dello schermo differiscono dai moduli ESP32 standard, di seguito trovate le istruzioni specifiche per utilizzare correttamente la scheda.
La documentazione online è spesso confusa. Utilizzate le assegnazioni dei pin seguenti per questa scheda specifica (stile ABRobot):
LOW = acceso, HIGH = spento).Per programmare questa scheda selezionate le seguenti impostazioni nell'Arduino IDE:
ESP32C3 Dev ModuleEnabled (Essenziale per poter vedere Serial.print).DIO (predefinito).Lo schermo utilizza un controller SSD1306, ma ha una risoluzione fisica di soli 72x40 pixel. Tuttavia il buffer interno è 128x64. È necessario applicare un "offset" (spostamento) per rendere visibile il testo.
Libreria necessaria: Installate la libreria U8g2 (di olikraus) tramite il Library Manager di Arduino.
Esempio di codice:
#include
#include
// Inizializzazione per ESP32-C3 con I2C su pin 5 (SDA) e 6 (SCL)
// Usiamo il driver standard 128x64, ma solo una parte dello schermo.
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE, 6, 5);
// Impostazioni per il display da 0.42 pollici
int width = 72;
int height = 40;
// Gli offset sono necessari per centrare l'output nel buffer 128x64
int xOffset = 30; // 30 funziona meglio nella pratica
int yOffset = 12; // (64 - 40) / 2 = 12
void setup(void) {
delay(1000); // Breve pausa per stabilità
u8g2.begin();
u8g2.setContrast(255); // Luminosità massima
u8g2.setBusClock(400000); // Velocità I2C 400kHz
u8g2.setFont(u8g2_font_ncenB10_tr); // Scegli un font leggibile
}
void loop(void) {
u8g2.clearBuffer(); // Cancella il buffer interno
// Disegna un riquadro attorno all'area visibile per testare
u8g2.drawFrame(xOffset, yOffset, width, height);
// Disegna testo (tenere conto di xOffset e yOffset!)
u8g2.setCursor(xOffset + 5, yOffset + 25);
u8g2.print("ESP32-C3");
u8g2.sendBuffer(); // Invia i dati allo schermo
delay(1000);
}
Volete testare gli altri pin? Usate questo semplice loop. Attenzione: il pin 8 controlla anche il LED integrato.
// GPIO 8 è il LED integrato (LOW = ACCESO)
#define LED_PIN 8
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, LOW); // LED acceso
delay(500);
digitalWrite(LED_PIN, HIGH); // LED spento
delay(500);
}