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.
Spedito entro giovedì 27 agosto
Spedizione veloce gratuita per ordini superiori a 100EUR nella maggior parte de paesi UE.
Spediamo dal nostro magazzino entro 24 ore
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
#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()
}
}}
}
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].