Trong hướng dẫn này, chúng tôi sẽ thiết kế Hệ thống đo áp suất khí quyển sử dụng BMP180 và ARDUINO. Trước hết để giao tiếp BMP180 với ARDUINO, chúng ta cần tải xuống một thư viện được thiết kế đặc biệt cho BMP180. Thư viện này có sẵn tại: https://github.com/adafruit/Adafruit-BMP085-Library Sau khi đính kèm thư viện đó, chúng ta có thể gọi các chức năng đặc biệt sẽ dễ dàng làm việc với cảm biến BMP180.
Thành phần bắt buộc
Phần cứng: Bo mạch Arduino una, chân kết nối, điện trở 220Ω, Cảm biến áp suất khí quyển BMP180, LCD 16x2, bảng mạch bánh mì.
Phần mềm: Arduino hàng đêm
Sơ đồ mạch & Giải thích hoạt động
Sau khi gọi tiêu đề, chúng ta không cần phải lo lắng về việc thiết lập giao tiếp giữa Arduino Uno và cảm biến BMP180. Chúng ta có thể chỉ cần gọi các chức năng đặc biệt sẽ làm điều đó cho chúng ta. Chúng ta chỉ cần Khởi tạo một màn hình LCD và hiển thị các giá trị được gọi từ SENSOR trên đó.
Trong LCD 16x2 có 16 chân cắm trên tất cả nếu có đèn nền, nếu không có đèn nền sẽ có tổng cộng 14 chân. Người ta có thể cấp nguồn hoặc để lại các chân đèn sau. Bây giờ trong 14 chân có 8 dữ liệu ghim (7-14 hoặc D0-D7), 2 chân cung cấp điện (1 & 2 hoặc VSS & VDD hoặc GND & + 5V), 3 thứ pin cho điều khiển độ tương phản (VEE-điều khiển như thế nào dày các nhân vật nên được hiển thị) và 3 chân điều khiển (RS & RW & E).
Trong mạch các bạn quan sát mình chỉ lấy 2 chân điều khiển, bit tương phản và READ / WRITE không thường xuyên được sử dụng nên có thể bị chập đất. Điều này đặt LCD ở chế độ đọc và độ tương phản cao nhất. Chúng ta chỉ cần điều khiển các chân ENABLE và RS để gửi các ký tự và dữ liệu cho phù hợp.
Các kết nối được thực hiện cho LCD được đưa ra dưới đây:
PIN1 hoặc VSS để nối đất
PIN2 hoặc VDD hoặc VCC đến nguồn + 5v
PIN3 hoặc VEE nối đất (mang lại độ tương phản tối đa tốt nhất cho người mới bắt đầu)
PIN4 hoặc RS (Lựa chọn đăng ký) thành PIN8 của ARDUINO UNO
PIN5 hoặc RW (Đọc / Ghi) nối đất (đặt màn hình LCD ở chế độ đọc giúp giảm bớt giao tiếp cho người dùng)
PIN6 hoặc E (Bật) tớiPIN9 của ARDUINO UNO
PIN11 hoặc D4 đến PIN10 của ARDUINO UNO
PIN12 hoặc D5 đến PIN11 của ARDUINO UNO
PIN13 hoặc D6 đến PIN12 của ARDUINO UNO
PIN14 hoặc D7 đến PIN13 của ARDUINO UNO
ARDUINO IDE cho phép người dùng sử dụng màn hình LCD ở chế độ 4 bit. Loại giao tiếp này cho phép người dùng giảm mức sử dụng mã pin trên ARDUINO, không giống như các loại ARDUINO khác, ARDUINO không cần được lập trình riêng để sử dụng ở chế độ 4 nó vì theo mặc định, ARDUINO được thiết lập để giao tiếp ở chế độ 4 bit. Trong mạch, bạn có thể thấy wehave sử dụng giao tiếp 4bit (D4-D7).
Vì vậy, chỉ quan sát từ bảng trên, chúng ta đang kết nối 6 chân của LCD với bộ điều khiển, trong đó 4 chân là chân dữ liệu và 2 chân để điều khiển.
Để kết nối BMP180 với Arduino Uno, chúng ta cần làm như sau:
|
Đầu tiên, chúng ta cần gọi tệp tiêu đề để kích hoạt các chức năng đặc biệt “#include”.
Với tệp tiêu đề này, chúng ta có thể gọi các hàm có thể đọc trực tiếp các giá trị từ Cảm biến mà không có bất kỳ lỗi nào.
Bây giờ chúng ta cần kích hoạt giao tiếp C, điều này được thực hiện bằng cách gọi “#include
Chúng ta có thể đọc áp suất bằng cách gọi ”String PRESSUREVALUE = String (bmp.readPressure ());”. Tại đây, giá trị áp suất sẽ được đọc từ cảm biến và được lưu trong chuỗi “PRESSUREVALUE”.
Chúng ta có thể đọc temparature bằng cách gọi ”String TEMPARATUREVALUE = String (bmp.readTempeosystem ());”. Tại đây, giá trị áp suất sẽ được đọc từ cảm biến và được lưu trong chuỗi “TEMPARATUREVALUE”.
Trước tiên, chúng ta cần kích hoạt tệp tiêu đề ('#include
Thứ hai, chúng ta cần cho hội đồng biết loại LCD mà chúng ta đang sử dụng ở đây. Vì chúng ta có rất nhiều loại LCD khác nhau (như 20 * 4, 16 * 2, 16 * 1, v.v.). Ở đây, chúng ta sẽ giao diện màn hình LCD 16 * 2 với UNO để chúng ta nhận được 'lcd.begin (16,2);'. Đối với 16 * 1, chúng tôi nhận được 'lcd.begin (16,1);'.
Trong hướng dẫn này, chúng ta sẽ cho bảng biết chúng ta đã kết nối các chân ở đâu, Các chân được kết nối sẽ được biểu diễn theo thứ tự là “RS, En, D4, D5, D6, D7”. Các chân này phải được biểu diễn chính xác. Vì chúng tôi đã kết nối RS với PIN0, v.v. như hiển thị trong sơ đồ mạch, Chúng tôi biểu thị số pin trên bo mạch là “LiquidCrystallcd (0,1,8,9,10,11);”.
Sau khi ở trên, tất cả những gì còn lại là gửi dữ liệu, dữ liệu cần được hiển thị trên màn hình LCD sẽ được viết là “cd.print (“ hello, world! ”);”. Với lệnh này, màn hình LCD hiển thị 'hello, world!'.
Như bạn có thể thấy, chúng ta không cần phải lo lắng về bất kỳ điều này khác, chúng ta chỉ cần khởi tạo và UNO sẽ sẵn sàng hiển thị dữ liệu. Chúng ta không phải viết một vòng lặp chương trình để gửi dữ liệu BYTE bởi BYTE tại đây. Sau khi đọc giá trị từ cảm biến, chúng tôi sẽ hiển thị chúng trên màn hình LCD 16x2.