Fast delivery within 24 to 72 Hours
0.96″ OLED Display Module (128×64) – Yellow Blue I2C Screen for Arduino Projects
150,00 EGP
In stock
-
- Size: 0.96 inch
- Resolution: 128 x 64
- Controlling Chip: SSH1106
- Display Area: 21.74 x 10.86mm
- Driving Voltage: 3.3-5V
- Operating Temperature: -40~70 celsius
- Interface Type: IIC
- Light Color: Yellow
In stock
Shipping & Delivery
Receipt from the place on the same day or shipping to nearby places
On the same day
6PM - 10 PM
Delivery through a fast shipping company intermediary
1-3 Days
Description
Introducing the 0.96″ OLED Display Module
Upgrade your projects with the 0.96-inch OLED Display Module, offering a crisp 128×64 pixel resolution for clear and sharp visuals. Designed for seamless communication, it features SPI/I2C interfaces and a 7-pin design, making integration easy and flexible across different platforms.
Whether you’re working with Arduino, Raspberry Pi, or other microcontrollers, this compact and vibrant blue OLED display ensures compatibility, reliability, and an elegant touch for your DIY electronics projects.
Key Features:
✅ 0.96-inch OLED Display
A small yet powerful display that provides clear visuals, making it ideal for a variety of applications. Its compact size allows for easy integration into space-constrained setups.
✅ 128×64 Pixel Resolution
Delivers sharp and detailed information, ensuring an enhanced user experience with crisp graphics and text.
✅ SPI/I2C Communication Support
Compatible with both SPI and I2C protocols, allowing versatile connectivity with different microcontrollers and simplifying system integration.
✅ Vibrant Blue OLED Display
With a bright blue OLED screen, this module offers excellent visibility in various lighting conditions, enhancing readability and display performance.
✅ 7-Pin Interface
The 7-pin connection simplifies wiring, reducing complexity and making setup easier for beginners and professionals alike.
Package Includes:
📦 1 x 0.96-inch OLED Display Module – SPI/I2C – 128×64 – 7 Pin (Blue)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void setup() { Serial.begin(115200); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64 Serial.println(F("SSD1306 allocation failed")); for(;;); } delay(2000); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 10); // Display static text display.println("Hello, world!"); display.display(); } void loop() { } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 |
#include <Arduino.h> #include <SoftwareSerial.h> #include <DFRobotDFPlayerMini.h> #include <U8g2lib.h> #include <Wire.h> #include <EEPROM.h> SoftwareSerial customSoftwareSerial(12,13); DFRobotDFPlayerMini myDFPlayer; U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); const uint8_t leftButton = 2; const uint8_t selectionButton = 5; const uint8_t rightButton = 3; volatile uint8_t sMenuSelection = 2; volatile uint8_t selection = 1; volatile bool updateScreen = true; boolean playing = false; boolean inSideMenuSelection = true; // Variables uint8_t filecounts; // total number of files in current folder uint8_t foldercounts; // total number of folders on sd-card uint8_t volume = 20; // current volume (0 .. 30) uint8_t folder = 1; // current sd-card folder uint8_t file = 1; // curent file in current folder uint8_t eq = 0; uint8_t batteryLevel = 0; float resistor_ratio_factor = 3.91; uint8_t mins = 0; unsigned long lastTimepassed = 0; void setup(void) { //Initializing u8g2 library Serial.begin(9200); u8g2.begin(); u8g2.firstPage(); do{ flashPage(); }while(u8g2.nextPage()); pinMode(leftButton,INPUT_PULLUP); pinMode(rightButton,INPUT_PULLUP); pinMode(selectionButton,INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(leftButton),leftButtonISR, FALLING); attachInterrupt(digitalPinToInterrupt(rightButton),rightButtonISR, FALLING); //being hardware serial for debugging Serial.begin(9600); //Initializing software serial customSoftwareSerial.begin(9600); if (!myDFPlayer.begin(customSoftwareSerial)) { //Use softwareSerial to communicate with mp3. Serial.println(F("Please insert the SD card!")); } volume = EEPROM.read(0); if(volume > 30) volume = 30; eq = EEPROM.read(1); if(eq > 5) eq = 5; file = EEPROM.read(2); if(file >= 255) file = 1; delay(1000); myDFPlayer.volume(volume); //Set volume value. From 0 to 30 delay(500); foldercounts = myDFPlayer.readFolderCounts(); startFolderPlay(); // } void loop() { batteryReader(); //Selection button if(!digitalRead(selectionButton) && inSideMenuSelection) { inSideMenuSelection = false; updateScreen = true; delay(200); } else if(!digitalRead(selectionButton) && !inSideMenuSelection && sMenuSelection == 1) { if(selection == 1) { if(file > 1) { //previous audio myDFPlayer.previous(); file--; if(!playing) playing = true; EEPROM.write(2, file); } } else if(selection == 2) { //pause / play if(playing) { myDFPlayer.pause(); } else { myDFPlayer.start(); } playing = !playing; } else if(selection == 3) { //next audio file++; myDFPlayer.next(); if(!playing) playing = true; EEPROM.write(2, file); } else if(selection == 4) { //back to side menu selection = 1; inSideMenuSelection = true; } updateScreen = true; delay(200); }else if(!digitalRead(selectionButton) && !inSideMenuSelection && sMenuSelection == 2) { if(selection == 1) { selection = 2; myDFPlayer.volume(volume); EEPROM.write(0, volume); } else if(selection == 2) { selection = 4; myDFPlayer.EQ(eq); EEPROM.write(1, eq); } else if(selection == 4) { //back to side menu selection = 1; inSideMenuSelection = true; } updateScreen = true; delay(200); } //Updating the dispaly if(updateScreen) { u8g2.firstPage(); do { int ch = (sMenuSelection); switch(ch){ case 1: player(); break; case 2: settings(); break; default: Serial.println(F("Default Screen")); } updateScreen = false; }while ( u8g2.nextPage() ); } // check player status if (myDFPlayer.available()) { uint8_t type = myDFPlayer.readType(); int value = myDFPlayer.read(); switch (type) { case DFPlayerPlayFinished: if (file < filecounts) { file++; myDFPlayer.playFolder(folder, file); EEPROM.write(2, file); updateScreen = true; } break; default: break; } } } |