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 scrolleKan trykkes for at vælge eller bekræfte valg20 pulspositioner (klikpositioner)
-
Strømforsyning: 3,3V
-
OLED Kommunikation: I2C, adresse 0x3C
-
OLED Driver: SSD1106
-
Ekstra funktioner:Indbyggede knapper til tilbage- og bekræftelsesfunktionerUafhæ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:
- Arduino Uno R3
- Mini-B USB stik
- Dupont Kabel
- Breadboard
- KY-009 RGB SMD LED Module
- 3 stk Modstande af 3,3K ohm
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)
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.