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.
Nối dây
Việc kết nối màn hình OLED với Arduino khá đơn giản:
Chân Đấu nối với Arduino Uno
Vin 5V
GND GND
SCL A5
SDA A4
Nếu bạn đang sử dụng board Arduino khác chứ không phải uno, hãy tìm hiểu các chân SCL và SDA của chúng là gì.
- Nano: SDA (A4); SCL (A5);
- MEGA: SDA (20); SCL (21);
- Leonardo: SDA (20); SCL (21);
Thư viện
Để điều khiển màn hình OLED, bạn sẽ cần thư viện của “adafruit_GFX.h” và “adafruit_SSD1306.h”.
Cài đặt thư viện adafruit_GFX
- Nhấn vào đây để tải về thư viện adafruit_GFX.
- Giải nén thư mục .zip và bạn sẽ thấy thư mục Adafruit-GFX-Library-master
- Đổi tên thư mục của bạn từ Adafbean-GFX-Library-mastervào thành Adafruit_GFX_Library
- Di chuyển thư mục Adafruit_GFX_Libraryvào thư mục thư viện cài đặt Arduino IDE của bạn
- Cuối cùng, mở lại Arduino IDE
Cài đặt thư viện adafruit_SSD1306
- Nhấn vào đây để tải xuống thư viện adafruit_SSD1306.
- Giải nén thư mục .zip và bạn sẽ thấy thư mục Adafruit-SSD1306-Library-master
- Đổi tên thư mục của bạn thành Adafruit-SSD1306
- Di chuyển thư mục Adafruit_SSD1306 vào thư mục thư viện cài đặt Arduino IDE của bạn
- Cuối cùng, mở lại Arduino IDE
Tổng quan về cảm biến nhiệt độ LM35
Cảm biến đo nhiệt độ LM35 là một cảm biến nhiệt độ analog thông dụng và đơn giản. Nó được sử dụng để đo nhiệt độ và chuyển đổi nhiệt độ thành một tín hiệu điện tương ứng. Cảm biến LM35 được thiết kế để cung cấp một tín hiệu đầu ra analog có tỷ lệ tuyến tính với nhiệt độ đo được.
Cấu tạo của cảm biến LM35 bao gồm một cảm biến nhiệt độ bên trong, được bảo vệ bởi một vỏ bọc nhựa. Cảm biến nhiệt độ sử dụng nguyên tắc cảm ứng nhiệt để đo nhiệt độ. Khi nhiệt độ tăng lên, điện áp đầu ra của cảm biến tăng lên theo tỷ lệ tuyến tính.
Thông số kỹ thuật
Thông số | Giải thích |
---|---|
Phạm vi đo | -55 độ C đến +150 độ C |
Độ chính xác | ±0.5 độ C |
Độ phân giải | 10 mV/độ C |
Điện áp hoạt động | 4V đến 30V DC |
Tiêu thụ điện năng | Khoảng 60 μA |
Đáp ứng nhiệt | Khoảng 0.1 đến 0.2 giây |
Độ ổn định | Cao |
Nguyên lý hoạt động của cảm biến nhiệt độ LM35
Cảm biến nhiệt độ LM35 sử dụng nguyên lý cơ bản của một diode để đo giá trị nhiệt độ đã biết trước đó. Như các bạn đã biết từ vật lý bán dẫn, khi nhiệt độ tăng, điện áp qua một diode tăng. Bằng cách tăng độ nhạy của điện áp thay đổi, các bạn có thể dễ dàng tạo ra một tín hiệu điện áp tỷ lệ trực tiếp với nhiệt độ xung quanh. Hình ảnh dưới đây cho thấy cấu trúc bên trong của IC cảm biến đo nhiệt độ LM35 theo datasheet.
Trong thực tế, diode được sử dụng để đo nhiệt độ không phải là một diode PN Junction thông thường mà là một transistor được kết nối như diode. Đó là lý do tại sao mối quan hệ giữa điện áp thuận và transistor là tuyến tính như vậy. Đồ thị hệ số nhiệt độ so với dòng thu thập dưới đây giúp bạn hiểu quá trình này hơn.
Cách hoạt động của cảm biến LM35 rất đơn giản và dễ hiểu. Các bạn chỉ cần kết nối 5V và GND vào cảm biến và đo điện áp đầu ra từ chân output.
Sơ đồ chân cảm biến nhiệt độ LM35
- VCC: là chân cấp nguồn của IC cảm biến LM35 có thể kết nối với 4V hoặc 32V
- GND: là chân nối đất của IC LM35 Arduino
- Vout: Đây là chân đầu ra analog của cảm biến nhiệt độ
Sơ đồ đấu nối cảm biến nhiệt độ, màn hình OLED 0.96 với Arduino
Arduino | Cảm biến nhiệt độ LM35 | Màn hình OLED 0.96 I2C |
5V | VCC | VCC |
GND | GND | GND |
A0 | VOUT | |
A4 | SDA | |
A5 | SCK |
Code cảm biến đo nhiệt độ LM35
Giải thích Code
Khai báo và cấu hình các thư viện: Wire.h để sử dụng giao tiếp I2C, Adafruit_GFX.h và Adafruit_SSD1306.h để điều khiển màn hình OLED SSD1306.
Định nghĩa hai hằng số
Khai báo một đối tượng
từ lớp Adafruit_SSD1306, màn hình SSD1306 được kết nối thông qua giao thức I2C (SDA, SCL pins).
Khai báo chân kết nối cảm biến LM35 với Arduino, ở đây mình sẽ sử dụng chân A0.
Các biến
Trong hàm setup(), khởi tạo kết nối Serial, khởi tạo màn hình OLED, và xóa màn hình.
Trong hàm loop(), đọc giá trị từ cảm biến LM35 thông qua chân
Tính toán nhiệt độ dựa trên giá trị đọc được từ cảm biến và chuyển đổi đơn vị nhiệt độ từ Celsius sang Fahrenheit.
Ghi giá trị nhiệt độ lên cổng Serial và hiển thị lên màn hình OLED 0.96 I2C.
Delay 1 giây và lặp lại quá trình trên.