Giới thiệu màn hình OLED 1.54in i2c spi trắng
Màn hình Oled 1.54in I2C SPI trắ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 hoặc SPI cho chất lượng đường truyền ổn định và rất dễ giao tiếp chỉ với 2 chân GPIO.
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
Kết nối theo chuẩn I2C với Arduino
Kết nối theo chuẩn SPI với Arduino
1.GND: nối đất
2.VCC: điện dương
3.SCL: dây đồng hồ
4.SDA:dây dữ liệu
5.RES: dây đặt lại
6.DC:dữ liệu/lệnh
7.CS: lựa chọn chip (nếu không sử dụng, nó có thể kết nối trực tiếp với mặt đất)
Thông số kỹ thuật màn hình oled 1.54in I2C SPI Trắng
- Điện áp hoạt động : 5V
- Dòng điện : 8mA
- Công suất : 40mW
- Chuẩn truyền : I2C hoặc SPI
- 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 : 7
- Loại màu chữ : Trắng
- Loại : Module
- Loại IC : SSD1309
- Kích thước : 33.5mm*33.5mm
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.