Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Trong một thời gian dài, tôi đã tìm kiếm máy đo độ cao và nhiệt độ bằng một cảm biến duy nhất và hiển thị nó lên OLED dựa trên SPI. Vì tôi không thể tìm thấy bất cứ điều gì chính xác, tôi nghĩ rằng tôi sẽ xây dựng của riêng mình bằng cách sử dụng thư viện U8glib. Có một hướng dẫn trên youtube nhưng tôi thực sự ghét hướng dẫn bằng video, tôi thích các văn bản có hướng dẫn đơn giản và không có liên kết thương mại.
Bước 1: Những điều đầu tiên Trước tiên
Trước khi thực hiện dự án này, tôi thực sự khuyên bạn nên hoàn thành hướng dẫn SSD1306 / OLED cho I2C hoặc SPI (bất kỳ cái nào bạn muốn sử dụng). Điều này sẽ đảm bảo rằng bạn biết cách kết nối / đấu dây màn hình cũng như màn hình của bạn đang hoạt động. Thực hiện hướng dẫn adafruit và / hoặc hướng dẫn ví dụ u8glib. Chúng tôi sẽ sử dụng u8glib ở đây để được khuyến nghị cho người dùng nâng cao.
Bước 2: Phần cứng cần thiết
1. Arduino UNO hoặc Nano hoặc tương tự.
2. Cảm biến áp suất khí quyển BMP085 hoặc BMP180.
3. SSD1306 I2C hoặc SPI Bus (Có thể cấu hình trong phác thảo).
4. Dây jumper và breadboard hoặc vero board để kết nối.
Bước 3: Thư viện Arduino IDE để biên dịch
1. Wire.h
2. Adafruit_BMP085.h (cũng sẽ hoạt động cho BMP180)
3. U8glib.h
Bước 4: Kết nối
Tất cả các kết nối đều giống nhau cho cả màn hình OLED I2C và SPI. Chỉ kết nối để hiển thị sẽ khác nhau.
1. BMP cho Arduino:
VCC> 3.3V
GND> Mặt đất
SCL> A5 / SCL
SDA> A4 / SDA
SCK = 12, MOSI = 11, CS = 10, A0 = 9, Reset = 13
2. SPI OLED cho Arduino
VDD> 5V
GND> Mặt đất
SCK / D0> D12 (Kỹ thuật số 12)
SDA / D1 / Mosi> D11
Chọn CS / Chip> D10
A0 / DC> D9
RES / Reset> D13
(Nếu SPI OLED của bạn không có chân Đặt lại trên đó, chỉ cần xóa chân đặt lại và đặt lại từ các thông số chọn hiển thị phác thảo)
3. I2C OLED
Giống như hệ thống dây điện BMP, chúng sử dụng các cổng và loại bus giống nhau.
Bước 5: Tải lên phác thảo
Khá đơn giản. Chỉ cần tải xuống tệp zip và mở trong Arduino IDE. Mọi thứ được cấu hình trong bản phác thảo. Người dùng SPI OLED chỉ có thể tải lên bản phác thảo mà không cần chỉnh sửa gì và nó sẽ hoạt động. Đối với người dùng I2C OLED, chỉ cần bỏ ghi chú tên / tùy chọn hiển thị của bạn khỏi tùy chọn Display Select của bản phác thảo, đồng thời nhận xét và đóng thông số / mô hình SPI Display để tắt SPI OLED.
Thông số hiển thị SPI:
// U8GLIB_SSD1306_128X64 u8g (12, 11, 10, 9, 13); // SW SPI Com: SCK = 12, MOSI = 11, CS = 10, A0 = 9, Reset = 13
Thông số hiển thị I2C:
// U8GLIB_SSD1306_128X64 u8g (U8G_I2C_OPT_NO_ACK); // Hiển thị cái nào không gửi AC
Để kích hoạt một tham số, chỉ cần xóa dấu // ở đầu để bỏ nhận xét nó. Đảm bảo rằng chỉ một hiển thị được chọn / bỏ nhận xét.
Gợi ý:
1. Cảm biến BMP nhạy cảm với gió, nhiệt và ánh sáng. Hãy chắc chắn rằng việc che đậy nó, kết quả tốt nhất sẽ đạt được thông qua việc gắn một tấm Foam với hệ thống thông gió thích hợp trên đó. Những thứ như băng dính vịt cũng sẽ hoạt động nhưng sẽ không chính xác.
2. BMP thường sử dụng 3.3V trừ khi nhà sản xuất của bạn nói khác. OLED có thể hoạt động từ 3.3v-5.5V (khuyến nghị 4-5V)
3. Nên đặt mọi thứ trên breadboard trước.
4. Nếu bạn chưa quen với OLED, trước tiên hãy thử những thứ đơn giản như văn bản và bộ đệm giả để đảm bảo màn hình của bạn đang hoạt động cũng như các kết nối của bạn chính xác.