Display OLED EC11 Rotary Ecoder Module

kr.95.00 inkl. moms

Display OLED EC11 Rotary Ecoder Module.

På lager

Specifikationer af Display OLED EC11 Rotary Ecoder Module

Display OLED EC11 Rotary Ecoder Module kombineret med EC11 drejeknap modul IIC interface. Dette modul er en kombination af OLED IIC interface modul og EC11 drejeknap modul. De to er ikke relaterede, men er placeret på samme board for at danne et integreret modul, med ekstra tilbage- og bekræftelsesknapper. Knapinterface er også uafhængigt og kan vælges til brug afhængigt af det faktiske behov. Integreret design, mere kompakt og æstetisk, praktisk til DIY.

Tekniske detaljer for Display OLED EC11 Rotary Ecoder Module

  • Skærmstørrelse: 1,3 tomme
  • Skærmtype: Hvid OLED display
  • Displayopløsning: 128×64 pixels
  • Interface: IIC (Inter-Integrated Circuit) / I2C
  • Kommunikationsprotokol: 2-wire I2C interface (SDA, SCL)
  • Oplevet levetid: Lang levetid for OLED-skærme (typisk op til 10.000 timer)
  • Drejeknap: EC11 drejeknap modul
  • Drejeknap funktioner:
    Kan drejes for at scrolle
    Kan trykkes for at vælge eller bekræfte valg
    20 pulspositioner (klikpositioner)
  • Strømforsyning: 3,3V
  • OLED Kommunikation: I2C, adresse 0x3C
  • OLED Driver: SSD1106
  • Ekstra funktioner:
    Indbyggede knapper til tilbage- og bekræftelsesfunktioner
    Uafhængige knapper, der kan vælges og bruges efter behov
  • Temperaturområde: Operativt fra -40°C til 85°C

Installere Arduino IDE Software

Før du kan starte din programmering skal Arduino’s IDE software hentes. Dette program bruges til at programmere din arduino.
Download fra dette link: Download

Installere Adafruit u8glib

  • Download library (Download)
  • Åben Arduino IDE software og klik på “Sketch/Include library”
  • Klik nu på “Add Zip. library” og find Zip filen du lige har downloaded.
  • Luk, og åben Arduino IDE programmet. (Genstart programmet)
  • Nu er library installeret.
  • Library kan også downloades direkte i Arduino IDE find den her: “Sketch/Include library/Manage library/u8glib – by Oliver”

Programmering

Inden programmeringen kan udføres skal de rigtige “Optiens” findes. Åben linket til den udviklingsboard du bruger.

Eksempel

Dette eksempel viser, hvordan den indbyggede drejeknap på 360 grader kan bruges til at scrolle hen over skærmen ved at dreje på den. Man kan vælge RGB-farver som rød, grøn og blå. Når man trykker på de forskellige farver, vil RGB’en lyse i den valgte farve. Man kan også vælge funktionen “Sluk” i menuen på skærmen, og det vil slukke RGB’en. En anden funktion, “Tilfældig Farve”, gør det muligt at vælge en RGB-indstilling, hvor RGB skifter mellem mange forskellige farver. Hvis man trykker på knappen igen, stopper RGB’en med at skifte farve.

Du skal bruge:

Forbind det sådan:

3V3 (Modul) – 3,3V (Arduino)
GND (Modul) – GND (Arduino)
OLED_SDA (Modul) – A4 (Arduino)
OLED_SCL (Modul) – A5 (Arduino)
ENCODER_PUSH (Modul) – D4 (Arduino)
ENCODER_A (Modul) – D2 (Arduino)
ENCODER_B (Modul) – D3 (Arduino)

RGB:

B (Modul) – D10 (Arduino)
R (Modul) – D8 (Arduino)
G (Modul) – D9 (Arduino)
– (Modul) – GND (Arduino)

Display OLED EC11 Rotary Ecoder Module Eksempel

Kode (Programmering)

#include <U8g2lib.h>
#include <Wire.h>

// SH1106 OLED-initialisering
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

// Pins til rotary encoder
#define ENCODER_A 2 // A (CLK)
#define ENCODER_B 3 // B (DT)
#define ENCODER_PUSH 4 // Push-knap (SW)

// Pins til LED'er
#define RED_LED 8
#define GREEN_LED 9
#define BLUE_LED 10

int menuIndex = 0; // Menuvalg (0 = Rød, 1 = Grøn, 2 = Blå, 3 = Sluk, 4 = Tilfældig)
bool buttonPressed = false;
bool randomColorActive = false; // Tilstand for at kontrollere om tilfældige farver er aktive

// Menuindhold
const char* menuItems[] = {"Rod (RED)", "Groen (GREEN)", "Blaa (BLUE)", "Sluk (OFF)", "Tilfaeldig (FARVER)"};
const int menuSize = sizeof(menuItems) / sizeof(menuItems[0]);

// Tid for at opdatere farverne ved tilfældige farver (i millisekunder)
unsigned long lastChangeTime = 0;
const unsigned long colorChangeInterval = 500; // Skift farve hver 500 ms

void setup() {
// Initialisering af OLED
u8g2.begin();

// Initialisering af encoder
pinMode(ENCODER_A, INPUT_PULLUP);
pinMode(ENCODER_B, INPUT_PULLUP);
pinMode(ENCODER_PUSH, INPUT_PULLUP);

// Initialisering af LED'er
pinMode(RED_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
pinMode(BLUE_LED, OUTPUT);

// Sluk alle LED'er
digitalWrite(RED_LED, LOW);
digitalWrite(GREEN_LED, LOW);
digitalWrite(BLUE_LED, LOW);

// Vis første menuvalg
drawMenu();
}

void loop() {
static int lastStateA = digitalRead(ENCODER_A);

// Læs encoderens rotation
int currentStateA = digitalRead(ENCODER_A);
if (currentStateA != lastStateA && currentStateA == LOW) {
if (digitalRead(ENCODER_B) != currentStateA) {
menuIndex++;
if (menuIndex >= menuSize) menuIndex = 0; // Loop tilbage til start
} else {
menuIndex--;
if (menuIndex < 0) menuIndex = menuSize - 1; // Loop til sidste menu
}
drawMenu(); // Opdater menuen
}
lastStateA = currentStateA;

// Læs knappen
if (digitalRead(ENCODER_PUSH) == LOW && !buttonPressed) {
buttonPressed = true;
handleButtonPress();
delay(200); // Debounce
}
if (digitalRead(ENCODER_PUSH) == HIGH) {
buttonPressed = false;
}

// Skift tilfældige farver, hvis menuindstillingen "Tilfældig (RANDOM)" er valgt
if (menuIndex == 4 && randomColorActive) {
if (millis() - lastChangeTime >= colorChangeInterval) {
lastChangeTime = millis(); // Opdater tiden
setRandomColor(); // Skift til en ny tilfældig farve
}
}
}

void drawMenu() {
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_ncenB08_tr);

// Vis kun det aktuelle menuvalg
u8g2.drawStr(0, 30, menuItems[menuIndex]); // Menuens tekst centreres vertikalt

u8g2.sendBuffer();
}

void handleButtonPress() {
// Hvis menuen er "Tilfældig (RANDOM)", start eller stop farveskift
if (menuIndex == 4) {
if (randomColorActive) {
// Stop farveskift og sluk LED'er
randomColorActive = false;
digitalWrite(RED_LED, LOW);
digitalWrite(GREEN_LED, LOW);
digitalWrite(BLUE_LED, LOW);
} else {
// Start farveskift
randomColorActive = true;
}
} else {
// Sluk alle LED'er
digitalWrite(RED_LED, LOW);
digitalWrite(GREEN_LED, LOW);
digitalWrite(BLUE_LED, LOW);

// Tænd den valgte LED baseret på menuvalg
if (menuIndex == 0) digitalWrite(RED_LED, HIGH);
if (menuIndex == 1) digitalWrite(GREEN_LED, HIGH);
if (menuIndex == 2) digitalWrite(BLUE_LED, HIGH);

// Sluk LED'er hvis "Sluk (OFF)" vælges
if (menuIndex == 3) {
digitalWrite(RED_LED, LOW);
digitalWrite(GREEN_LED, LOW);
digitalWrite(BLUE_LED, LOW);
}
}
}

// Funktion til at sætte LED'er til tilfældige farver
void setRandomColor() {
int red = random(0, 2); // 0 eller 1
int green = random(0, 2); // 0 eller 1
int blue = random(0, 2); // 0 eller 1

// Tænd eller sluk for hver farve baseret på tilfældige værdier
digitalWrite(RED_LED, red);
digitalWrite(GREEN_LED, green);
digitalWrite(BLUE_LED, blue);
}

Kontakt os

Du er altid velkommen til at kontakte os på info@ardustore.dk, eller vores kontaktformular HER.

Anmeldelser

Der er endnu ikke nogle anmeldelser.

Vær den første til at anmelde “Display OLED EC11 Rotary Ecoder Module”

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Du kunne også være interesseret i

Relaterede varer