Modulo OLED 0,96" con encoder rotativo EC11 per Arduino
zoom_out_map
chevron_left chevron_right

Le immagini dei prodotti sono solo a scopo informativo e potrebbero presentare piccole differenze, a seconda del lotto e del fornitore. Le specifiche e i prezzi dei prodotti potrebbero essere soggetti a modifiche senza preavviso. Facciamo del nostro meglio per aggiungere specifiche quanto più precise e corrette possibili alla pagina del prodotto, ma è possibile che non siano del tutto corrette. Se identifichi un caso del genere, ti preghiamo di segnalarcelo.

Il prodotto è destinato agli specialisti e richiede personale qualificato e autorizzato. Il prodotto non include istruzioni di montaggio/uso . La messa in funzione del prodotto da parte di persone non qualificate comporta la perdita della garanzia secondo i Termini e Condizioni presenti sul sito.

Le specifiche tecniche indicate (corrente, potenza, ecc.) rappresentano valori massimi consentiti in condizioni ideali di funzionamento. Per un utilizzo sicuro e una durata ottimale, si raccomanda di utilizzare il prodotto in regime continuo a non più del 50% dei valori massimi specificati.

Modulo con schermo OLED da 0,96 pollici e encoder rotativo EC11

Soluzione compatta per interfacce HMI e progetti fai-da-te, combina un display OLED ad alto contrasto da 0,96 pollici e un encoder rotativo EC11 per una navigazione e regolazioni precise dei menu. La comunicazione I2C riduce il cablaggio e consente una rapida integrazione con Arduino e schede simili. Include pulsanti di conferma e ritorno dell'encoder per un controllo chiaro e un feedback visivo immediato.

7,92 € Tasse incluse

6,54 € Tasse escluse

Non ci sono ancora recensioni

Spedito entro giovedì 27 agosto

Chiudere

Questo prodotto ha una garanzia di 2 anni.

SPEDIZIONE INTERNAZIONALE
Spedizione veloce gratuita per ordini superiori a 100EUR nella maggior parte de paesi UE.
SPEDIZIONE VELOCE 24 ORE
Spediamo dal nostro magazzino entro 24 ore
PUNTI FEDELTÀ
Ricevi punti a ogni ordine, per un valore del 5%.

Questo modulo combina un display OLED da 0,96 pollici con un encoder rotativo EC11, offrendo una soluzione compatta per creare rapidamente un'interfaccia utente.

Il collegamento dell'OLED tramite I2C consente una facile integrazione con Arduino e altre schede di sviluppo, riducendo il numero di cavi. Il display OLED offre un contrasto elevato e un'ottima leggibilità, mentre l'encoder rotativo fornisce un controllo preciso per la navigazione nei menu, le selezioni e la regolazione dei parametri.

Il modulo include anche pulsanti dedicati per la conferma e il ritorno, rendendolo adatto a pannelli di controllo, interfacce HMI semplici e progetti fai da te in cui sono necessari comandi chiari e feedback visivo immediato.

 

Specifiche:

Tensione di funzionamento: 3,3-5 V

Tipo di display: OLED

Driver OLED: SSD1306

Dimensioni dello schermo: 0,96 pollici

Tipo di controllo: encoder rotativo EC11

Interfaccia di comunicazione: I2C

Dimensioni: 56 x 97 mm

 

Pinout:

Pino Funzione
Cono Pulsante CONFERMA
Avventista del Settimo Giorno Linea dati I2C per OLED
SCK Linea di clock I2C per OLED
PSH Codificatore di stampa EC11
TRA Segnale A encoder EC11
GRT Segnale B encoder EC11
BAK Pulsante RETURN
Terra Massa
VCC Alimentazione

 

Utilizzo:

Collegare il modulo alla scheda Arduino seguendo il pinout e alimentarlo secondo le specifiche.

La programmazione dell'OLED avviene come per qualsiasi altro OLED 0.96.

Login:
Pin del modulo Arduino UNO Ruolo
Terra Terra Tavolo comune
VCC 3,3 V Alimentazione del modulo
SCL A5 Orologio I2C
Avventista del Settimo Giorno Formato A4 Dati I2C
TRA D2 Canale encoder A consigliato in caso di interruzione
GRT D3 Canale encoder B consigliato in caso di interruzione
PSH D4 Premere il codificatore per selezionare
Cono D5 Pulsante CONFERMA facoltativo
BAK 6 Pulsante RETURN opzionale

 

Codice di prova Arduino UNO:

#include
#include
#include

#define OLED_ADDR 0x3C
#define OLED_W 128
#define OLED_H 64

Display Adafruit_SSD1306 (OLED_W, OLED_H, &Wire)

#define ENC_A 2
#define ENC_B 3
#define ENC_SW 4
#define BTN_CON 5
#define BTN_BAK 6

volatile int8_t encDelta = 0
volatile uint8_t lastA = 0

lungo senza segno tSw = 0
tCon lungo non firmato = 0
tBak lungo non firmato = 0
const unsigned long debounceMs = 180

const char* menuItems[] = {
"Stato",
"Impostazioni",
"Calibrazione",
"Informazioni",
"Reset"
}
const uint8_t menuCount = sizeof(menuItems) / sizeof(menuItems[0])

int menuIndex = 0
int pagina = 0

int setSpeed = 10
int setThreshold = 50

void isrEncA() {
Uint8_t a = digitalRead(ENC_A)
Se (a == lastA) restituisci
LastA = a

Uint8_t b = digitalRead(ENC_B)
Se (b != a) encDelta++
Altrimenti encDelta--
}

bool premuto(int pin, unsigned long &tUltimo) {
  se (digitalRead(pin) == BASSO) {
    unsigned long ora = millis()
    se (ora - tLast > debounceMs) {
TLast = adesso
Restituisci vero
}
}
Restituisci falso
}

void drawHeader(const char* titolo) {
Visualizza.clearDisplay()
Visualizza.impostaDimensioneTesto(1)
  display.setTextColor(BIANCO)
  display.setCursor(0, 0)
Display.print(titolo)
  display.drawLine(0, 10, 127, 10, BIANCO)
}

void drawMenu() {
DrawHeader("SigmaNortec")

Intero y = 14
Per (uint8_t i = 0; i < menuCount; i++) {
Se (i == indicemenu) {
      display.fillRect(0, y - 1, 128, 10, BIANCO)
      display.setTextColor(NERO)
} altro {
      display.setTextColor(BIANCO)
}

    display.setCursor(2, anni)
Visualizza.stampa(voci di menu[i])
E += 11
}

  display.setTextColor(BIANCO)
  display.setCursor(0,56)
Display.print("Rotazione: menu OK: seleziona BAK: indietro")

Visualizza.visualizza()
}

void drawStatus() {
DrawHeader("Stato")
  display.setCursor(0, 16)
  display.print("Codificatore: OK")
  display.setCursor(0, 28)
Display.print("Velocità: ")
Display.print(impostaVelocità)
  display.setCursor(0, 40)
Display.print("Soglia: ")
Display.print(impostasoglia)

  display.setCursor(0,56)
Display.print("BAK: indietro")
Visualizza.visualizza()
}

void drawSettings() {
DrawHeader("Impostazioni")
  display.setCursor(0, 16)
Display.print("Velocità: ")
Display.print(impostaVelocità)
  display.setCursor(0, 28)
Display.print("Soglia: ")
Display.print(impostasoglia)
  display.setCursor(0, 44)
Display.print("Rotazione: regolazione")
  display.setCursor(0,56)
Display.print("OK: cambia BAK: indietro")
Visualizza.visualizza()
}

void drawInfo() {
DrawHeader("Informazioni")
  display.setCursor(0, 16)
Display.print("OLED SSD1306 I2C")
  display.setCursor(0, 28)
  display.print("Codificatore EC11")
  display.setCursor(0, 40)
  display.print("Menu: Sigmanortec")
  display.setCursor(0,56)
Display.print("BAK: indietro")
Visualizza.visualizza()
}

impostazione nulla() {
PinMode(ENC_A, INPUT_PULLUP)
PinMode(ENC_B, INPUT_PULLUP)
PinMode(ENC_SW, INPUT_PULLUP)
  modalità pin(BTN_CON, INPUT_PULLUP)
  modalità pin(BTN_BAK, INPUT_PULLUP)

LastA = digitalRead(ENC_A)
AttachInterrupt(digitalPinToInterrupt(ENC_A), isrEncA, CHANGE)

Display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR)
Visualizza.clearDisplay()
Display.setTextWrap(false)
  display.dim(0)
Visualizza.visualizza()

DisegnaMenu()
}

ciclo vuoto() {
Int8_t d = 0
Nessuna interruzione()
D = encDelta
EncDelta = 0
Interrompere()

Bool ok = premuto(ENC_SW, tSw) || premuto(BTN_CON, tCon)
Bool indietro = premuto(BTN_BAK, tBak)

Se (pagina == 0) {
Se (d != 0) {
      menuIndex += (d > 0) ? 1 : -1
      se (menuIndex < 0) menuIndex = menuCount - 1
      se (menuIndex >= menuCount) menuIndex = 0
DisegnaMenu()
}

Se (ok) {
      se (menuIndex == 0) pagina = 1
      se (menuIndex == 1) pagina = 2
      se (menuIndex == 2) pagina = 3
      se (menuIndex == 3) pagina = 4
      se (menuIndex == 4) pagina = 5
      se (pagina == 1) drawStatus()
      if (pagina == 2) drawSettings()
      se (pagina == 3) drawHeader("Calibrazione"), display.setCursor(0, 20), display.print("Calibrazione in corso"), display.setCursor(0, 56), display.print("BAK: indietro"), display.display()
      se (pagina == 4) drawInfo()
Se (pagina == 5) {
        drawHeader("Reimposta")
        display.setCursor(0, 20)
        display.print("Reimposta valori")
ImpostaVelocità = 10
ImpostaSoglia = 50
        display.setCursor(0,56)
        display.print("OK: menu")
Visualizza.visualizza()
}
}
} altrimenti se (pagina == 1) {
Se (indietro) {
Pagina = 0
DisegnaMenu()
}
} altrimenti se (pagina == 2) {
    static bool editSpeed = true

Se (ok) {
      editSpeed = !editSpeed
DisegnaImpostazioni()
}

Se (d != 0) {
Se (modificaVelocità) {
        setSpeed += (d > 0) ? 1 : -1
        se (setSpeed < 0) setSpeed = 0
        se (setSpeed > 99) setSpeed = 99
} altro {
        setThreshold += (d > 0) ? 1 : -1
        se (setPrag < 0) setPrag = 0
        se (setPrag > 999) setPrag = 999
}
DisegnaImpostazioni()
}

Se (indietro) {
Pagina = 0
DisegnaMenu()
}
  } altrimenti se (pagina == 3 || pagina == 4) {
Se (indietro) {
Pagina = 0
DisegnaMenu()
}
} altrimenti se (pagina == 5) {
Se (ok || indietro) {
Pagina = 0
DisegnaMenu()
}
}}
}

88126

Produs destinat utilizarii in proiecte electronice, automatizari, prototipare, educatie si cercetare.

Produsul trebuie utilizat numai conform specificatiilor tehnice mentionate in descriere si/sau in documentatia produsului.

Avertismente generale de siguranta:

Nu utilizati produsul la tensiuni, curenti sau temperaturi peste valorile specificate.

Montajul si conectarea trebuie realizate de persoane cu cunostinte tehnice minime in domeniul electric/electronic.

Evitati scurtcircuitele, inversarea polaritatii si conectarea gresita a alimentarii.

Nu lasati produsul alimentat nesupravegheat in timpul testelor.

Produsul nu este jucarie si nu este destinat copiilor.

Pentru modulele electronice, se recomanda utilizarea in carcase, panouri sau montaje protejate, dupa caz.

Identificare produs:

Denumirea produsului, codul/SKU-ul si caracteristicile tehnice sunt mentionate in pagina produsului si/sau pe eticheta ambalajului.

Producator / Importator / Distribuitor:

Sigmanortec S.R.L.

Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania

E-mail: [email protected]

Website: www.sigmanortec.ro

Persoana responsabila in UE:

Sigmanortec S.R.L.

Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania

E-mail: [email protected]

Documentatie si siguranta:

Pentru informatii suplimentare, fise tehnice, declaratii de conformitate sau instructiuni, ne puteti contacta la [email protected].