• HOME
  • DỰ ÁN & MẠCH ĐIỆN
    • Lập trình
      • ARDUINO PROJECT
      • ESP8266 PROJECT
      • ESP32 PROJECT
      • RASPBERRY PI PROJECT
      • Vi điều khiển
    • Điện tử ứng dụng
      • Audio / Amplifiers
      • Nguồn điện
      • Pin sạc/Acquy và mạch sạc
      • Biến đổi AC và DC
      • Robotic
      • Cảm biến
      • LED
      • LCD
      • Động cơ bước
      • Mạch linh tinh
      • Test & Measurement
      • RF – FM
    • Nixie Clock
    • HOME AUTOMATION
    • Dân dụng
    • Công nghiệp
  • KIẾN THỨC CĂN BẢN
    • Điện tử cơ bản
    • Điện tử số
    • PCB
    • Nixie Tube
    • Raspberry Pi
    • Vi điều khiển
    • Arduino
    • IN 3D
  • DOWNLOAD
    • Phần mềm điện tử
    • Giáo trình
      • Giáo trình Điện – Điện tử
      • Giáo trình Tự Động Hóa
      • Giáo trình Viễn thông
    • Đề tài
      • Đề tài – Điện – Điện Tử
      • Đề tài – Tự Động Hóa
      • Đề tài – Viễn thông
    • Điện tử ứng dụng
    • Tài liệu nước ngoài
    • Hướng dẫn, sửa chữa
    • Sơ đồ, nguyên lý thiết bị
    • Tiêu chuẩn – Đo lường – Thử nghiệm
    • Datasheet
  • LIÊN HỆ
  • SẢN PHẨM

Mạch Điện Lý Thú

Sơ đồ nguyên lý, PCB, đồ án, tài liệu, DIY

Trang chủ » DỰ ÁN & MẠCH ĐIỆN » Lập trình » ARDUINO PROJECT » Màn hình OLED I2C SSD1306 và Arduino

Màn hình OLED I2C SSD1306 và Arduino

25/08/2025 by admin Để lại bình luận

Đã được đăng vào 03/04/2021 @ 09:47

GIỚI THIỆU

Mục lục hiện
GIỚI THIỆU
Module màn hình OLED I2C 0.96 inch
LINH KIỆN CẦN DÙNG
SƠ ĐỒ NGUYÊN LÝ
I2C PROTOCOL
CODE
DOWNLOADS

Thỉnh thoảng các bạn sẽ cần đến một màn hình hiển thị khi chế tạo phần cứng cho một dự án nào đó.

Tuy nhiên, kích thước của màn hình và số lượng chân kết nối lại biến thành trở ngại khi mà trên thị trường không có nhiều lựa chọn.

Bài viết này sẽ hướng dẫn sử dụng màn hình OLED rất nhỏ gọn, giao tiếp chuẩn I2C chỉ với 2 dây tín hiệu!

Xem thêm:

  • Hiển thị thời gian thực bằng màn hình OLED 0.96 sử dụng NodeMCU ESP8266
  • Điều khiển Servo thông qua NodeMCU ESP8266 và Blynk hiển thị lên OLED 0.96
  • Hiển thị hình ảnh Bitmap trên OLED 0.96 sử dụng NodeMCU ESP8266

Module màn hình OLED I2C 0.96 inch

Loại màn hình OLED mình sử dụng trong bài viết này rất nhỏ, kích thước thực tế chỉ 2.7 x 2.8 cm (~0.96 inch) tương tự kích thước của module Arduino Pro Mini, với độ phân giải 128 x 64.

IC phụ trách điều khiển màn OLED là SSD1306, đây là loại chip đơn CMOS OLED / PLED với bộ điều khiển hệ thống hiển thị đồ họa ma trận dạng điểm diode phát quang hữu cơ / polymer.

Module này có 4 chân trong đó 2 chân cấp nguồn VCC/GND, 2 chân còn lại là SCL/SDA chuẩn giao tiếp I2C. Chúng ta sẽ dùng 2 chân này để điều khiển màn hình.

Module màn hình OLED này hoàn toàn tương thích với Arduino và có dải điện áp đầu vào từ 3,3V đến 6V, dòng điện tiêu thụ dưới 10 mA

Vì vậy dễ dàng kết nối với chân 3,3V hoặc 5V của Arduino hoặc Esp8266 / Esp32. Ta dễ dàng mua module này trên các trang TMĐT với giá khoảng 70k.

LINH KIỆN CẦN DÙNG

  • Module màn hình OLED I2C SSD1306
  • Mạch Arduino (Bài này sử dụng mạch Arduino Mega)
  • Nguồn 5V (USB, pin sạc dự phòng,…)
  • Dây nối

SƠ ĐỒ NGUYÊN LÝ

Mạch vô cùng đơn giản. Cứ nối như sơ đồ dưới là xong:

Kết nối GND với GND. Nối Vcc với chân 5v hoặc 3.3v trên mạch Arduino.

Chân SCL nối với SCL. Chân SDA nối với chân SDA.

Cấp nguồn cho mạch Arduino, nạp code là chạy!

I2C PROTOCOL

Giao thức Inter-integrated Circuit (I2C) là một giao thức cho phép nhiều mạch Slave giao tiếp với một hoặc nhiều mạch Master.

Tuy chỉ có thể truyền ở khoảng cách ngắn, trong cùng 1 thiết bị duy nhất nhưng chỉ cần 2 dây tín hiệu là đủ.

Bus I2C (dây giao tiếp) chỉ gồm hai dây và được đặt tên là Serial Clock Line (SCL) và Serial Data Line (SDA).

Dữ liệu được truyền đi được gửi qua dây SDA và được đồng bộ với tín hiệu đồng hồ (clock) từ SCL.

Tất cả các thiết bị / IC trên mạng I2C được kết nối với cùng đường SCL và SDA.

CODE

Trước hết, bạn cần tải xuống hai thư viện sau:

  • Adafruit GFX library, đây là thư viện lõi dùng cho đồ họa, nó cung cấp thư viện cơ bản như dấu chấm, đường tròn, đường thẳng,…Bạn cần kết hợp thư viện này với 1 thư viện phần cứng khác (Ở đây là ghép với thư viện OLED SSD-1306).
  • Adafruit SSD-1306 OLED display library, đây là thư viện dành cho màn hình OLED SSD-1306.

Giải nén hai thư viện và thêm chúng vào thư mục thư viện Arduino, sau đó chạy Arduino IDE và mở I2C exapmle từ thư viện OLED.

 

Thay đổi duy nhất bạn phải làm là thay đổi địa chỉ I2C của màn hình.

Đi tới chức năng thiết lập và thay đổi giá trị trên lệnh gọi hàm display.begin từ 0x3D thành 0x3C.

Điều này là bắt buộc vì 0x3D là địa chỉ của màn hình OLED Adafruit, trong khi 0x3C là địa chỉ của màn hình OLED ta mua ngoài chợ.

Dưới đây là video hướng dẫn mình kiếm trên mạng, các bạn có thể tham khảo:

DOWNLOADS

Adafruit_SSD1306-master

Adafruit-GFX-Library-master

Fritzing

Nguồn: electronics-lab.com

  • Chia sẻ lên Facebook
  • Chia sẻ lên Twitter
  • Chia sẻ lên LinkedIn

Thuộc chủ đề:ARDUINO PROJECT, LCD Tag với:arduino, oled, SSD1306

Bài viết trước « Hướng Dẫn Cách Tự Sửa Vợt Muỗi Đơn Giản Mà Hiệu Quả
Bài viết sau Những lưu ý khi sử dụng nguồn tổ ong để được lâu dài »

Reader Interactions

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Sidebar chính

Zalo hỏi đáp 24/7

Theo dõi qua mạng xã hội

  • Facebook

Bạn đang tìm gì?

Bài viết mới nhất

Truyền điện không dây V1

Truyền điện không dây V2

31/08/2025

Chống trộm bằng tia Laser

Chống trộm bằng tia Laser

30/08/2025

Mạch đuổi chuột, mạch đuổi gián, đuổi muỗi

Mạch đuổi chuột, mạch đuổi gián, đuổi muỗi

30/08/2025

Truyền điện không dây V1

Truyền điện không dây V1

30/08/2025

Arduino cơ bản 09: Cảm biến ánh sáng (Quang trở) cách chia điện áp trong môi trường Arduino

Arduino cơ bản 09: Cảm biến ánh sáng (Quang trở) cách chia điện áp trong môi trường Arduino

30/08/2025

Danh mục

  • DỰ ÁN & MẠCH ĐIỆN (241)
    • Công nghiệp (16)
    • Dân dụng (29)
    • Điện tử ứng dụng (178)
      • Audio / Amplifiers (34)
      • Biến đổi AC và DC (24)
      • Cảm biến (40)
      • Động cơ bước (5)
      • Kiểm thử và đo đạc (23)
      • LCD (15)
      • LED (20)
      • Mạch linh tinh (27)
      • Nguồn điện (42)
      • Pin sạc/Acquy và mạch sạc (24)
      • RF – FM (5)
      • Robotic (2)
    • HOME AUTOMATION (23)
    • Lập trình (82)
      • ARDUINO PROJECT (39)
      • ESP32 PROJECT (6)
      • ESP8266 PROJECT (17)
      • RASPBERRY PI PROJECT (9)
      • Vi điều khiển (24)
    • Nixie Clock (3)
  • Kiến thức căn bản (168)
    • Arduino (36)
    • Điện tử cơ bản (77)
    • Điện tử số (9)
    • IN 3D (9)
    • Nixie Tube (13)
    • PCB (16)
    • Raspberry Pi (10)
    • Vi điều khiển (16)

Footer

Bài viết mới nhất

  • Truyền điện không dây V2
  • Chống trộm bằng tia Laser
  • Mạch đuổi chuột, mạch đuổi gián, đuổi muỗi
  • Truyền điện không dây V1
  • Arduino cơ bản 09: Cảm biến ánh sáng (Quang trở) cách chia điện áp trong môi trường Arduino
  • Mạch điều khiển nhiệt bằng TL431

Bình luận mới nhất

  • Hà Thêm Phát trong Đo cuộn cảm và tần số cộng hưởng mạch LC bằng Arduino
  • Đặng phú Sơn. trong Cách thay thế transistor tương đương
  • admin trong Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch
  • Rohan trong Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch

Tìm kiếm

Tất cả nội dung trên website chỉ dùng để tham khảo. Chúng tôi không chịu trách nhiệm về thông tin thành viên đăng tải lên website và xóa bài viết khi có vi phạm bản quyền tác giả.