Imaginile produselor au caracter informativ si pot prezenta diferente minore, in functie de lot si de furnizor. Este posibil ca specificatiile si pretul produselor sa fie modificate fara preaviz. Facem tot posibilul sa adaugam in pagina produselor specificatii cat mai exacte si corecte dar este posibil ca acestea sa nu fie in totalitate corecte. in cazul in care identificati un astfel de caz, va rugam sa ne semnalati acest lucru.
Produsele noastre sunt destinate in principal dezvoltarii, prototiparii si proiectelor tehnice. Informatiile privind specificatiile, instructiunile si conformitatea sunt furnizate conform datelor disponibile de la producatori sau furnizori. Pentru integrarea in produse finale sau aplicatii comerciale, recomandam verificarea compatibilitatii si conformitatii in functie de utilizarea dorita.
Specificatiile tehnice mentionate (curent, putere etc.) reprezinta valori maxime admise in conditii ideale de functionare. Pentru o utilizare sigura si o durata de viata optima, recomandam exploatarea produsului in regim continuu la cel mult 50% din valorile maxime specificate.
Modul cu ecran OLED 0.96 inch si encoder rotativ EC11
Solutie compacta pentru interfete HMI si proiecte DIY, combina un OLED 0.96 inch cu contrast ridicat si un encoder rotativ EC11 pentru navigare precisa in meniuri si reglaje. Comunicarea I2C reduce cablajul si permite integrare rapida cu Arduino si placi similare. Include apasare pe encoder si butoane de confirmare si revenire pentru control clar si feedback vizual imediat.
Adauga in cos produse in valoare de 130 Ron si ai livrare gratuita daca alegi sa platesti online
Produsele sunt expediate din stoc propriu
Primesti puncte la fiecare comanda, in valoare de 5%
Acest modul combina un display OLED de 0.96 inch cu un encoder rotativ EC11, fiind o solutie compacta pentru realizarea rapida a unei interfete de utilizator.
Conectarea OLED-ului prin I2C permite integrare usoara cu Arduino si alte placi de dezvoltare, cu un numar redus de fire. Display-ul OLED asigura contrast ridicat si lizibilitate foarte buna, iar encoderul rotativ ofera control precis pentru navigare in meniuri, selectii si reglarea parametrilor.
Modulul include si butoane dedicate pentru confirmare si revenire, ceea ce il face potrivit pentru panouri de control, interfete HMI simple si proiecte DIY unde ai nevoie de comenzi clare si feedback vizual imediat.
Specificatii:
Tensiune de operare: 3.3-5V
Tip display: OLED
Driver OLED: SSD1306
Dimensiune ecran: 0.96 inch
Tip control: encoder rotativ EC11
Interfata de comunicare: I2C
Dimensiuni: 56 x 97mm
Pinout:
| Pin | Functie |
|---|---|
| CON | Buton CONFIRM |
| SDA | Linie date I2C pentru OLED |
| SCK | Linie ceas I2C pentru OLED |
| PSH | Apasare encoder EC11 |
| TRA | Semnal A encoder EC11 |
| TRB | Semnal B encoder EC11 |
| BAK | Buton RETURN |
| GND | Masa |
| VCC | Alimentare |
Utilizare:
Conectati modulul la placa Arduino respectand pinout-ului si alimentati conform specificatiilor.
Programarea OLED-ului se face ca pentru oricare alt OLED 0.96.
Conectare:
| Pin modul | Arduino UNO | Rol |
|---|---|---|
| GND | GND | Masa comuna |
| VCC | 3.3V | Alimentare modul |
| SCL | A5 | I2C clock |
| SDA | A4 | I2C data |
| TRA | D2 | Encoder canal A recomandat pe intrerupere |
| TRB | D3 | Encoder canal B recomandat pe intrerupere |
| PSH | D4 | Apasare encoder select |
| CON | D5 | Buton CONFIRM optional |
| BAK | D6 | Buton RETURN optional |
Cod Test Arduino UNO:
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_ADDR 0x3C
#define OLED_W 128
#define OLED_H 64
Adafruit_SSD1306 display(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
unsigned long tSw = 0
unsigned long tCon = 0
unsigned long tBak = 0
const unsigned long debounceMs = 180
const char* menuItems[] = {
"Status",
"Setari",
"Calibrare",
"Info",
"Reset"
}
const uint8_t menuCount = sizeof(menuItems) / sizeof(menuItems[0])
int menuIndex = 0
int page = 0
int setViteza = 10
int setPrag = 50
void isrEncA() {
uint8_t a = digitalRead(ENC_A)
if (a == lastA) return
lastA = a
uint8_t b = digitalRead(ENC_B)
if (b != a) encDelta++
else encDelta--
}
bool pressed(int pin, unsigned long &tLast) {
if (digitalRead(pin) == LOW) {
unsigned long now = millis()
if (now - tLast > debounceMs) {
tLast = now
return true
}
}
return false
}
void drawHeader(const char* title) {
display.clearDisplay()
display.setTextSize(1)
display.setTextColor(WHITE)
display.setCursor(0, 0)
display.print(title)
display.drawLine(0, 10, 127, 10, WHITE)
}
void drawMenu() {
drawHeader("Sigmanortec")
int y = 14
for (uint8_t i = 0; i < menuCount; i++) {
if (i == menuIndex) {
display.fillRect(0, y - 1, 128, 10, WHITE)
display.setTextColor(BLACK)
} else {
display.setTextColor(WHITE)
}
display.setCursor(2, y)
display.print(menuItems[i])
y += 11
}
display.setTextColor(WHITE)
display.setCursor(0, 56)
display.print("Rotire: meniu OK: select BAK: inapoi")
display.display()
}
void drawStatus() {
drawHeader("Status")
display.setCursor(0, 16)
display.print("Encoder: OK")
display.setCursor(0, 28)
display.print("Viteza: ")
display.print(setViteza)
display.setCursor(0, 40)
display.print("Prag: ")
display.print(setPrag)
display.setCursor(0, 56)
display.print("BAK: inapoi")
display.display()
}
void drawSetari() {
drawHeader("Setari")
display.setCursor(0, 16)
display.print("Viteza: ")
display.print(setViteza)
display.setCursor(0, 28)
display.print("Prag: ")
display.print(setPrag)
display.setCursor(0, 44)
display.print("Rotire: ajustare")
display.setCursor(0, 56)
display.print("OK: comuta BAK: inapoi")
display.display()
}
void drawInfo() {
drawHeader("Info")
display.setCursor(0, 16)
display.print("OLED SSD1306 I2C")
display.setCursor(0, 28)
display.print("Encoder EC11")
display.setCursor(0, 40)
display.print("Meniu: Sigmanortec")
display.setCursor(0, 56)
display.print("BAK: inapoi")
display.display()
}
void setup() {
pinMode(ENC_A, INPUT_PULLUP)
pinMode(ENC_B, INPUT_PULLUP)
pinMode(ENC_SW, INPUT_PULLUP)
pinMode(BTN_CON, INPUT_PULLUP)
pinMode(BTN_BAK, INPUT_PULLUP)
lastA = digitalRead(ENC_A)
attachInterrupt(digitalPinToInterrupt(ENC_A), isrEncA, CHANGE)
display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR)
display.clearDisplay()
display.setTextWrap(false)
display.dim(0)
display.display()
drawMenu()
}
void loop() {
int8_t d = 0
noInterrupts()
d = encDelta
encDelta = 0
interrupts()
bool ok = pressed(ENC_SW, tSw) || pressed(BTN_CON, tCon)
bool back = pressed(BTN_BAK, tBak)
if (page == 0) {
if (d != 0) {
menuIndex += (d > 0) ? 1 : -1
if (menuIndex < 0) menuIndex = menuCount - 1
if (menuIndex >= menuCount) menuIndex = 0
drawMenu()
}
if (ok) {
if (menuIndex == 0) page = 1
if (menuIndex == 1) page = 2
if (menuIndex == 2) page = 3
if (menuIndex == 3) page = 4
if (menuIndex == 4) page = 5
if (page == 1) drawStatus()
if (page == 2) drawSetari()
if (page == 3) drawHeader("Calibrare"), display.setCursor(0, 20), display.print("Calibrare in lucru"), display.setCursor(0, 56), display.print("BAK: inapoi"), display.display()
if (page == 4) drawInfo()
if (page == 5) {
drawHeader("Reset")
display.setCursor(0, 20)
display.print("Reset valori")
setViteza = 10
setPrag = 50
display.setCursor(0, 56)
display.print("OK: meniu")
display.display()
}
}
} else if (page == 1) {
if (back) {
page = 0
drawMenu()
}
} else if (page == 2) {
static bool editViteza = true
if (ok) {
editViteza = !editViteza
drawSetari()
}
if (d != 0) {
if (editViteza) {
setViteza += (d > 0) ? 1 : -1
if (setViteza < 0) setViteza = 0
if (setViteza > 99) setViteza = 99
} else {
setPrag += (d > 0) ? 1 : -1
if (setPrag < 0) setPrag = 0
if (setPrag > 999) setPrag = 999
}
drawSetari()
}
if (back) {
page = 0
drawMenu()
}
} else if (page == 3 || page == 4) {
if (back) {
page = 0
drawMenu()
}
} else if (page == 5) {
if (ok || back) {
page = 0
drawMenu()
}
} }
}
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:
Acest produs este destinat utilizarii in proiecte electronice, automatizari, prototipare, educatie, cercetare si aplicatii tehnice similare. Produsul trebuie utilizat doar conform specificatiilor tehnice mentionate in pagina produsului si/sau in documentatia disponibila.
Utilizarea incorecta, depasirea valorilor maxime admise de tensiune, curent, temperatura sau conectarea gresita pot duce la defectarea produsului, deteriorarea altor echipamente sau la riscuri de siguranta.
Produsul nu este jucarie si nu este destinat copiilor. Montajul, testarea si utilizarea trebuie realizate de persoane cu cunostinte minime in domeniul electric/electronic. Se recomanda utilizarea produsului in montaje protejate, carcase adecvate sau sisteme care respecta normele de siguranta aplicabile.
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]