💡 Elevate Your Projects with Clarity!
The DIYmall 0.96" OLED Module is a high-quality display solution featuring a 128x64 resolution and I2C interface, designed for seamless integration with popular platforms like Arduino and Raspberry Pi. With easy installation and customizable settings, this module is perfect for tech enthusiasts looking to enhance their projects.
A**I
good
best
H**A
Económico y muy funcional. Programable para Arduino y ESP32
Un poco pequeño el display. Pero cumple las expectativas de uso!
S**Y
Pin out was as described in the photo
Came as described. A lot of images of these devices show a pinout that is different to what is actually sent.
C**P
Works great!
The I2C address is 0x3C. It may not matter to you, but there is a two-pixel gap between the yellow pixels and the blue pixels. The gap doesn't count as rows of pixels. If you were to draw a square that spanned the yellow and blue areas, it would look vertically elongated.
C**Y
Great display
Works well with a little reading.I found that you DID NOT have to adjust the header file and only need to initialize the display with display.begin(SSD1306_SWITCHCAPVCC, 0x3C);Worked on both an Uno and a Mega.Uno PinoutSDA - A4SDL - A5GND - GNDVCC - 5vMega PinoutSDA - 20SDL - 21GND - GNDVCC - 5vThe example code for the SSD1306 really starts to push the memory of the Uno, but the Mega has no issue loading the program.Because it is an OLED, it will look dead until it has been initialized, which can be a bit confusing when you are first testing the screen. I thought I had a dud until I got it correctly initialized. Had no issues with 3.3v or 5v.Tested with a 30k Thermistor.#include <SPI.h>#include <Wire.h>#include <Adafruit_GFX.h>#include <Adafruit_SSD1306.h>#define OLED_RESET 4Adafruit_SSD1306 display(OLED_RESET);#if (SSD1306_LCDHEIGHT != 64)#error("Height incorrect, please fix Adafruit_SSD1306.h!");#endif#define THERMISTORPIN A0 // which analog pin to connect#define THERMISTORNOMINAL 30000 // resistance at 25 degrees C#define TEMPERATURENOMINAL 25 // temp. for nominal resistance (almost always 25 C)#define NUMSAMPLES 50 // how many samples to take and average, more takes longer#define BCOEFFICIENT 4400 // The beta coefficient of the thermistor (usually 3000-4000)#define SERIESRESISTOR 30000 // the value of the 'other' resistorint samples[NUMSAMPLES];void setup() { Serial.begin(9600); // connect AREF to 3.3V and use that as VCC, less noisy! analogReference(EXTERNAL); // by default, we'll generate the high voltage from the 3.3v line internally! (neat!) display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64) // init done // Show image buffer on the display hardware. // Since the buffer is intialized with an Adafruit splashscreen // internally, this will display the splashscreen. display.display(); delay(250); // Clear the buffer. display.clearDisplay();}void loop() { uint8_t i; float average; float maxTemp; maxTemp = 0; // take N samples in a row, with a slight delay for (i=0; i< NUMSAMPLES; i++) { samples[i] = analogRead(THERMISTORPIN); delay(10); } // average all the samples out average = 0; for (i=0; i< NUMSAMPLES; i++) { average += samples[i]; } average /= NUMSAMPLES; display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); Serial.print("Analog "); Serial.println(average); display.print("Analog "); display.println(average); // convert the value to resistance average = 1023 / average - 1; average = SERIESRESISTOR / average; Serial.print("R "); Serial.println(average); display.print("R-Val "); display.println(average); display.setTextSize(2); float steinhart; float fconvert; float convertValue; steinhart = average / THERMISTORNOMINAL; // (R/Ro)2 steinhart = log(steinhart); // ln(R/Ro) steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro) steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To) steinhart = 1.0 / steinhart; // Invert steinhart -= 273.15; // convert to C Serial.print(steinhart); Serial.println(" *C"); fconvert = steinhart * 1.8; fconvert = fconvert + 32; Serial.print("Temperature "); display.println("A0 Temp"); Serial.print(fconvert); Serial.println(" *F"); display.print(steinhart); display.println(" *C"); display.print(fconvert); display.println(" *F"); display.display(); delay(250);}
A**E
Fantastic Screen and very sharp and bright but careful with I2C address
Fantastic Screen and very sharp and bright. It's compatible with Arduino UNO. It uses the I2C bus. The CORRECT I2C ADDRESS is NOT 0x78 as marked on the board's silkscreen (see picture) but 0x3C. The Adafruit_SSD1306.h header file has it correct under SSD1306_I2C_ADDRESS as 0x3C though so you can substitute the 0x3B in the "ssd1306_128x64_i2c.ino" sample program with "SSD1306_I2C_ADDRESS" and it works. The other thing is you need to uncomment the "//#define SSD1306_128_64" line and comment the other two so it know what screen size is. The wires used are from this product link: Kalevel® 120pcs Multicolored 40pin Male to Female, 40pin Male to Male, 40pin Female to Female Breadboard Jumper Wires Ribbon Cables KitKalevel® 120pcs Multicolored 40pin Male to Female, 40pin Male to Male, 40pin Female to Female Breadboard Jumper Wires Ribbon Cables Kit
Trustpilot
1 month ago
2 weeks ago