• 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

Bạn đang ở: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

12/02/2022 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

5/5 - (1 bình chọn)
  • Share on Facebook
  • Tweet on Twitter

Bài viết liên quan

Kit thực hành Arduino – EGYDuino
Sơ đồ chân ESP32 và ngoại vi
Kit thực hành Arduino BO.DUINO – Atmega328p

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

Bài viết trước « Sơ đồ mạch bơm nước tự động bằng phao và rơ le cảm biến
Bài viết sau Đo nhiệt độ dùng cảm biến DS18B20 với Arduino »

Reader Interactions

Trả lời 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
  • RSS

Bạn đang tìm gì?

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

Kit thực hành Arduino – EGYDuino

27/05/2022

Cài đặt Platform IO để lập trình ESP32

27/05/2022

Mạch khuếch đại công suất âm thanh 65W

26/05/2022

Hướng dẫn tải và sử dụng Hercules Terminal

26/05/2022

Sơ đồ chân ESP32 và ngoại vi

26/05/2022

Chuyên mục

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

Footer

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

  • Kit thực hành Arduino – EGYDuino
  • Cài đặt Platform IO để lập trình ESP32
  • Mạch khuếch đại công suất âm thanh 65W
  • Hướng dẫn tải và sử dụng Hercules Terminal
  • Sơ đồ chân ESP32 và ngoại vi
  • Kit thực hành Arduino BO.DUINO – Atmega328p

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

  • Ernesto trong Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch
  • admin trong Mạch Ampli 19W dùng IC LA4440
  • Hoài trong Cách thay thế transistor tương đương
  • Dương trong Mạch Ampli 19W dùng IC LA4440

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ả.