Giới thiệu màn hình OLED 0.96in i2c SH1106 xanh dương
Oled 0.96in I2C SH1106 xanh dương cho khả năng hiển thị đẹp, sang trọng, rõ nét vào ban ngày và khả năng tiết kiệm năng lượng tối đa với mức chi phí phù hợp, màn hình sử dụng giao tiếp I2C cho chất lượng đường truyền ổn định và rất dễ giao tiếp chỉ với 2 chân GPIO.
Hiện tại có hai loại chính là 0.96in hoặc 1.3in. Đồng thời mã ic là SH1106 và SH1306 và hai chuẩn truyền là SPI và I2C
OLED (viết tắt bởi Organic Light Emitting Diode: Diode phát sáng hữu cơ) đang trở thành đối thủ cạnh tranh cũng như ứng cử viên sáng giá thay thể màn hình LCD.
Màn hình OLED gồm những lớp như tấm nền, Anode, lớp hữu cơ, cathode. Và phát ra ánh sáng theo cách tương tự như đèn LED. Quá trình trên được gọi là phát lân quang điện tử.
Nhược điểm có thể kể tới là tuổi thọ màn này khá thấp, giá thành sản xuất cao và rất dễ hỏng khi gặp nước. Nên dễ hiểu màn hình này chưa được ứng dụng nhiều.
Những ưu điểm có thể kể đến trên màn hình OLED là những lớp hữu cơ nhựa mỏng, nhẹ mềm dẻo hơn những lớp tinh thể trên LED hay LCD nhờ vậy mà có thể ứng dụng OLED để chế tạo màn hình gập cuộn được. Độ sáng của OLED cũng tốt hơn LED và không cần đèn nền như trên LCD nên sử dụng pin ít hơn. Góc nhìn cũng cài thiện hơn những công nghệ tiền nhiệm, khoảng 170 độ.
Chức năng các chân
- VDD : Cấp nguồn 5V.
- GND : Cấp nguồn 0V.
- SCL : Cấp xung Clock cho chuẩn I2C
- SDA : Cấp xung Data cho chuẩn I2C
Thông số kỹ thuật màn hình oled 0.96in I2C Sh1106 xanh dương
- Điện áp hoạt động : 5V
- Dòng điện : 8mA
- Công suất : 40mW
- Chuẩn truyền : I2C
- Góc hiển thị : 160°
- Nhiệt độ hoạt động : -10°C – 60°C
- Số điểm hiển thị : 128×64
- Số chân : 4
- Loại màu chữ : Xanh dương
- Loại : Module
- Loại IC : SH1106
- Kích thước : 24.6mm*27mm
Chương trình Test
Nguyên lý kết nối
Chương trình
Thư viện : Tải tại đây Adafruit-GFX-Library
Thư viện : Tải tại đây Adafruit_SSD1106
Thư viện : Tải tại đây ArduinoRTClibrary
#include <Wire.h> #include <virtuabotixRTC.h> #include <Adafruit_GFX.h> #include <Adafruit_SH1106.h> // configure clock - virtuabotixRTC clock(SCLK_PIN, I/O_PIN, CE_PIN) virtuabotixRTC clock(3, 4, 2); // Configure display Adafruit_SH1106 display(-1); int state = 1; void setup() { pinMode(5, INPUT_PULLUP); display.begin(SH1106_SWITCHCAPVCC, 0x3C); display.setTextColor(WHITE); drawUI(); display.display(); } void loop() { // clock sleep/turn off mode if (digitalRead(5) == LOW) { if (state == 0) { delay(500); drawUI(); state = 1; }else{ delay(500); display.drawRect(4, 7, 120, 50, WHITE); display.fillRect(5, 8, 118, 48, BLACK); display.setTextSize(1); display.setCursor(6, 12); display.println("Clock will turn"); display.println(" off in a moment."); display.println(""); display.println(" To turn back on,"); display.println(" press the button."); display.display(); delay(3000); display.clearDisplay(); display.display(); state = 0; } } if (state == 1) { // Update time every second clock.updateTime(); drawUI(); display.setTextColor(WHITE); display.setTextSize(3); display.setCursor(1, 19); if (clock.hours < 10) { display.print("0"); } display.print(clock.hours); display.print(":"); if (clock.minutes < 10) { display.print("0"); } display.print(clock.minutes); display.setTextSize(2); display.print(":"); if (clock.seconds < 10) { display.print("0"); } display.print(clock.seconds); display.setTextSize(1); display.setCursor(26, 48); if (clock.dayofweek == 1) { display.print("Monday,"); } if (clock.dayofweek == 2) { display.print("Tuesday,"); } if (clock.dayofweek == 3) { display.print("Wednesday,"); } if (clock.dayofweek == 4) { display.print("Thursday,"); } if (clock.dayofweek == 5) { display.print("Friday,"); } if (clock.dayofweek == 6) { display.print("Saturday,"); } if (clock.dayofweek == 7) { display.print("Sunday,"); } display.setCursor(26, 56); if (clock.dayofmonth < 10) { display.print("0"); } display.print(clock.dayofmonth); display.print("."); if (clock.month < 10) { display.print("0"); } display.print(clock.month); display.print("."); display.print(clock.year); display.display(); delay(999); } } void drawUI() { // draw the GUI display.clearDisplay(); display.setTextSize(1); display.setCursor(2, 2); display.println(" Adam's Clock Sleep"); display.drawLine(0, 11, 128, 11, WHITE); display.drawLine(94, 0, 94, 10, WHITE); display.drawLine(26, 44, 102, 44, WHITE); }
Liên hệ làm mạch
- Phone: 0967.551.477
- Zalo: 0967.551.477
- Email: dientunhattung@gmail.com
- Chi tiết : Nhận làm mạch và hướng dẫn đồ án sinh viên
Tham khảo chương trình mẫu và thông tin linh kiện chi tiết tại:
Reviews
There are no reviews yet.