Cách kết nối màn hình OLED I2C với ARDUINO

Pin
Send
Share
Send

Giới thiệu: Giới thiệu màn hình I2C OLED 128 * 64/128 * 32.

Xin chào Là một người nghiệp dư - một người đam mê điện tử, tôi chắc chắn rằng tất cả những gì chúng ta làm là đồ chơi điện tử - sản phẩm tự chế, hoặc các dự án lớn, tất cả từ sự tò mò và lười biếng. Tò mò tìm cách hiểu và thấu hiểu sự mênh mông, không biết, để hiểu cách thức hoạt động ở đó, những gì nó làm, cách nó di chuyển. Và sự lười biếng phát minh, để đưa ra điều này, để không đứng dậy, không phù hợp, không nâng đỡ, không bị bẩn hoặc một cái gì đó quan trọng.
Vì việc xem thông tin tốt hơn là hiểu những gì sắp xảy ra trong thiết bị của chúng tôi hoặc đã xảy ra hoặc đang xảy ra, chúng tôi chắc chắn sẽ muốn nhận thông tin rất hữu ích này từ bộ vi điều khiển, cảm biến hoặc các thiết bị khác. Và tôi, trong mọi trường hợp, muốn nhận bất kỳ tin nhắn nào, chẳng hạn như câu hỏi, cảnh báo, nhắc nhở, biểu tượng cảm xúc, dấu hoa thị, trái tim và những thứ tương tự.
Đối với những người cũng có mong muốn tương tự, đây là hướng dẫn nhanh để kết nối và kiểm tra màn hình OLED nhỏ và rẻ tiền.
Tiếp theo, chúng ta sẽ nói về một trong những mẫu màn hình OLED có sẵn rộng rãi được điều khiển bởi chip SSD1306, với kích thước màn hình 0,96 inch và độ phân giải 128 * 64 hoặc 128 * 32 pixel. Những màn hình này là lý tưởng cho các thiết kế radio nghiệp dư nhỏ và các sản phẩm tự chế.

Bước 1: Khái niệm chính


Chúng tôi sẽ kết nối nó với Arduino UNO / NANO, tốt, và để lập trình, tương ứng, chúng tôi cũng sẽ kết nối nó thông qua Arduino.
  • OLED là một Diode phát sáng hữu cơ, tức là một thiết bị bán dẫn được làm từ các hợp chất hữu cơ, bắt đầu phát ra ánh sáng khi một dòng điện đi qua nó.
  • ARDUINO là một nền tảng để đào tạo và xây dựng các hệ thống tự động hóa và robot.
  • ArduinoIDE là một môi trường phát triển. Đây là một công cụ lập trình Arduino miễn phí.
  • I2C - Mạch liên tích hợp, đường truyền liên microcircuit.
  • Một bản phác thảo, đó là một mã, đó là một chương trình - thuật ngữ Arduino.

Làm theo các hướng dẫn để hiểu cách kết nối và định cấu hình chính xác màn hình OLED với Arduino và cách hiển thị thông điệp của riêng bạn trên màn hình.
Chúng tôi làm mọi thứ trong các bước.

Bước 2: Phụ kiện


Chúng tôi sẽ chỉ cần bốn điều:
  • 1. Bản thân màn hình OLED là 0,96 (có thể mua trên Aliexpress hoặc Ebay, - dài, nhưng rẻ!).
  • 2. Arduino UNO / Nano (ở cùng nơi với màn hình).
  • 3. Kết nối dây (sđd.).
  • 4. Một máy tính hoặc máy tính xách tay có cài đặt ArduinoIDE.

Nói chung, mua các bộ phận cho các dự án khác nhau trên Aliexpress và Ebay là một điều rất tuyệt vời, trong khi bạn đang thực hiện một dự án, các bộ phận cho một dự án khác đang trên đường. Điều chính là không quên để đặt hàng.

Bước 3: Kết nối màn hình


Màn hình được điều khiển bởi chip SSD1306, hỗ trợ năm giao thức truyền thông và một trong số đó là I2C. Dữ liệu trên giao thức này được truyền đi chỉ trong hai dây và càng ít dây trong trường hợp càng tốt, vì vậy nó rất phù hợp với chúng tôi. Nhưng! Có các mô-đun với giao thức SPI và thậm chí chuyển đổi giao thức, vì vậy hãy cẩn thận khi mua mô-đun này.

Sử dụng kết luận:
Màn hình OLED - SCL / SCK (đồng hồ) và SDA (dữ liệu), năng lượng "Plus" (VCC) và "Minus" (GND).

Sử dụng kết luận:
Arduino UNO - SCL / SCK trên A5 và SSD trên nguồn A4, nguồn "Plus" (+ 5V) và "Minus" (GND).
Kết nối màn hình với Arduino:
  • Vcc - 5V
  • GND - GND
  • SDA - A4
  • SCL - A5

Bước 4: Máy quét I2C


Mỗi thiết bị trên bus I2C có một địa chỉ thập lục phân, bạn không thể thay đổi nó, nó được khâu chặt, mỗi nhà sản xuất có trách nhiệm phải chỉ ra nó ở đâu đó trên vỏ hoặc trong hướng dẫn. Có các mô-đun với công tắc và bộ nhảy mà bạn có thể thay đổi địa chỉ, nhưng ... nếu thiết bị rẻ, xấu, thì nhà sản xuất có thể không bận tâm đến việc xử lý một trifle như vậy, vì vậy bạn sẽ phải tự xác định.
Tổng cộng, có thể sử dụng tối đa 127 địa chỉ trên xe buýt - 119 cho các thiết bị và 8 địa chỉ dịch vụ. Truyền thông được thực hiện tại các địa chỉ này. Có một bậc thầy, anh ta là một Master, nhưng có một nô lệ, anh ta cũng là một nô lệ - Master yêu cầu, những người theo dõi trả lời, mọi thứ đều đơn giản.
Vì màn hình OLED của chúng tôi sử dụng giao thức truyền thông I2C và địa chỉ có thể không được chỉ định, chúng tôi sẽ cố gắng tìm ra chính địa chỉ này.
Điều này có thể được thực hiện bằng cách tải xuống một bản phác thảo ngắn vào bảng Arduino của bạn có kết nối OLED. NHƯNG!
Dành thời gian của bạn để tải lên bản phác thảo cho Arduino ngay lập tức! Trước tiên hãy tải xuống "trình điều khiển", tức là chúng tôi sẽ kết nối các thư viện và vì điều này, chúng tôi sẽ đi thẳng đến Bước 5, và sau đó chúng tôi sẽ quay lại và tiếp tục.

Bước 4: Tiếp tục:


Tải xuống CODE Finder_I2C_Hex_Address.ino, tải lên Arduino.
Mở "Cổng giám sát", đặt tốc độ thành 9600 và nếu mọi thứ được kết nối chính xác, chương trình sẽ hiển thị địa chỉ thiết bị, trong trường hợp của tôi là OLED với địa chỉ 0x3F.

Bước 5: Tải xuống và kết nối thư viện


Để mọi thứ hoạt động chính xác và bạn không phải phát minh lại bánh xe, bạn cần kết nối một vài thư viện với môi trường ArduinoIDE, cụ thể là: ADAFRUIT GFX và ADAFRUIT SSD1306, chúng cần thiết để Arduino có thể giao tiếp độc lập với màn hình OLED.
Bạn có thể kết nối các thư viện này bằng cách làm theo các bước sau.
  • 1. Trong ArduinoIDE, hãy chuyển đến menu Phác thảo.
  • 2. Chọn "Bao gồm thư viện" / Bao gồm thư viện.
  • 3. Chọn "Quản lý thư viện" / Thư viện được quản lý.
  • 4. Tìm ADAFRUIT GFX và cài đặt chúng.
  • 5. Tìm ADAFRUIT SSD1306 và cài đặt chúng.

Với các phiên bản mới của thư viện, màn hình hoạt động quanh co đối với tôi, có lẽ điều này là do độ cong của tay, nhưng sau khi tôi cài đặt các phiên bản đầu tiên của các thư viện này, mọi thứ bắt đầu xuất hiện trơn tru và đẹp mắt. Vì một số lý do, các dòng Pushkin đã bật lên trong trí nhớ của anh ấy:
... và kinh nghiệm, con trai của những sai lầm khó khăn,
và thiên tài, nghịch lý bạn bè.

Một cách khác để cài đặt thư viện là tự tìm, tải xuống và cài đặt các thư viện này.
Ví dụ về Github:
//github.com/adafbean/Adafbean-GFX-L Library
//github.com/adafbean/Adafbean_SSD1306

Đây là các thư viện Adaf nhung giống nhau, nhưng các thư viện tương tự dễ dàng được tìm kiếm trong các công cụ tìm kiếm, theo yêu cầu của OLED I2C. Nhiều người đam mê viết thư viện "cho chính họ", và sau đó đưa chúng lên web. Thư viện nào để sử dụng là tùy thuộc vào bạn.
Để màn hình hiển thị các chữ cái tiếng Nga, các thư viện đặc biệt cũng cần thiết, nhưng đây là một chủ đề riêng cho một bài viết riêng.
Sau khi các thư viện được cài đặt, bạn có thể quay lại bước 4 và cuối cùng tìm ra địa chỉ thập lục phân của màn hình.

Bước 6: Kiểm tra màn hình


Để kiểm tra xem mọi thứ có hoạt động như mong đợi hay không, hãy chạy ví dụ thử nghiệm từ ArduinoIDE.
Để làm điều này:
Truy cập FILE> EXAMPLES> SSD 1306> Chọn 128x64 i2c
Nếu bạn nhận được một Lỗi Lỗi, hãy thử chọn SSD 1306> 128x32 i2c.
Nếu Lỗi một lần nữa, hãy thử thay đổi địa chỉ I2C trên dòng 61 của mã trình diễn và thay thế nó bằng địa chỉ hiển thị của bạn, mà bạn đã xác định trong bước # 4.
Nếu lỗi xảy ra lần nữa, bạn có thể thử chỉnh sửa tệp Adaf nhung_SSD1306.h, nó nằm trong thư mục chứa các thư viện Arduino.

Mở tệp Adaf nhung_SSD1306.h trong trình chỉnh sửa văn bản và tìm các dòng:
// # xác định SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16

Bỏ ghi chú dòng:
#define SSD1306_128_64.

Nó nên như thế này:
#define SSD1306_128_64 // # xác định SSD1306_128_32 // #define SSD1306_96_16

Nếu lỗi một lần nữa, cần phải kiểm tra các kết nối chính xác.
Sau khi quá trình tải xuống hoàn tất, bạn sẽ thấy một hình ảnh động thử nghiệm trên màn hình, điều đó có nghĩa là bạn đã cấu hình thành công màn hình OLED của mình.

Khi bạn thưởng thức hoạt hình này, bạn có thể tiến hành bước tiếp theo.

Bước 7: Viết tin nhắn của riêng bạn


Để viết thông điệp của riêng bạn, trước tiên hãy tạo một bản phác thảo mới trong môi trường lập trình ArduinoIDE.
Trong tiêu đề, chúng tôi kết nối 4 thư viện:
#include #include #include #include 

Sau đó, chúng tôi viết giao thức thiết lập lại:
#define OLED_RESET 4 Màn hình Adaf nhung_SSD1306 (OLED_RESET);

Trong VOID SETUP, chỉ định địa chỉ thập lục phân của màn hình 0x3C mà chúng tôi đã tìm thấy trong "Bước số 4".
Sau đó, khởi tạo màn hình và xóa nó:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();

Tiếp theo, trong VOID LOOP, chúng tôi viết mã chính, đó là thông điệp của chúng tôi, mà chúng tôi muốn hiển thị trên màn hình.
Để thực hiện việc này, chúng tôi mô tả kích thước văn bản, màu văn bản, vị trí con trỏ và cuối cùng, hiển thị một thông báo bằng lệnh println:
display.setTextSize (2); display.setTextColor (TRẮNG); display.setCoder (0,0); display.println ("Tốt lắm!"); display.display ();

Cuối cùng, đừng quên viết display.displayđể hình ảnh được hiển thị trên màn hình, nếu không bạn sẽ có một khoảng trống.
Nếu bạn đã làm mọi thứ chính xác, một thông báo sẽ xuất hiện trên màn hình.

Đây là CODE Started_with_Arduino_OLED.ino của chương trình của chúng tôi:
code.zip 946 b (lượt tải: 1366)

Pin
Send
Share
Send