Mục lục:

Hiển thị thời gian và thời tiết 3 trong 1 Arduino: 11 bước
Hiển thị thời gian và thời tiết 3 trong 1 Arduino: 11 bước

Video: Hiển thị thời gian và thời tiết 3 trong 1 Arduino: 11 bước

Video: Hiển thị thời gian và thời tiết 3 trong 1 Arduino: 11 bước
Video: Arduino | Đồng hồ thời gian thực DS3231 + LCD 2024, Tháng bảy
Anonim

Bởi Boomer48Follow More của tác giả:

Sử dụng ATtiny85
Sử dụng ATtiny85
Sử dụng ATtiny85
Sử dụng ATtiny85
Pi Powered Pie Partition Partitioning and Polygon Pruning Tool
Pi Powered Pie Partition Partitioning and Polygon Pruning Tool
Pi Powered Pie Partition Partitioning and Polygon Pruning Tool
Pi Powered Pie Partition Partitioning and Polygon Pruning Tool
Điều khiển kỹ thuật số cho Bộ khuếch đại âm thanh thủ công
Điều khiển kỹ thuật số cho Bộ khuếch đại âm thanh thủ công
Điều khiển kỹ thuật số cho Bộ khuếch đại âm thanh thủ công
Điều khiển kỹ thuật số cho Bộ khuếch đại âm thanh thủ công

Tôi thích vi điều khiển PIC và tôi thích lập trình bằng hợp ngữ. Trên thực tế, trong vài năm qua, tôi đã đăng khoảng 40 dự án trên trang web của mình dựa trên sự kết hợp đó. Gần đây, tôi đã đặt hàng một số bộ phận từ một trong những nhà cung cấp Hoa Kỳ yêu thích của tôi và tôi phát hiện ra một Arduino Nano, có cáp lập trình, chỉ cao hơn 1,20 đô la so với chip xử lý ATMEGA328 trần. Vì vậy, tôi đã mua một vài trong số chúng. Sau đó, tôi tải xuống Arduino IDE và xóa sạch bộ nhớ của mình về lập trình ‘C ++’.

Dự án này là sự kết hợp của một chiếc đồng hồ sử dụng GPS để tính thời gian và một bộ thu RF giải mã các thông báo thời tiết từ một cảm biến AcuRite thông thường. Kết quả là hiển thị thời gian và nhiệt độ trên quy mô nhỏ. Đồng hồ GPS và thói quen thời tiết được thiết lập thành các tệp bao gồm riêng biệt, do đó, dễ dàng đi vào thói quen chính và định cấu hình nó để chỉ thực hiện chức năng đồng hồ hoặc chỉ chức năng thời tiết. Chỉ cần bỏ ghi chú thích hợp “#define” ở đầu quy trình chính nếu bạn chỉ muốn một trong các hàm.

Nếu cả hai chức năng được sử dụng, thì dòng trên cùng của màn hình LCD hiển thị giờ địa phương và dòng dưới cùng của màn hình LCD hiển thị độ ẩm và nhiệt độ ở cả độ C và độ F. Nếu chỉ sử dụng chức năng đồng hồ, thì dòng trên cùng hiển thị giờ địa phương và dòng dưới cùng hiển thị UTC. Nếu chỉ sử dụng chức năng thời tiết, thì dòng trên cùng hiển thị cảm biến đầu tiên nhận được và dòng dưới cùng hiển thị bất kỳ cảm biến nào khác đã nhận. Tôi đã thêm khả năng đó vì tôi có hai cảm biến thời tiết.

Bước 1: Cảm biến thời tiết

Cảm biến thời tiết
Cảm biến thời tiết
Cảm biến thời tiết
Cảm biến thời tiết
Cảm biến thời tiết
Cảm biến thời tiết

Cảm biến thời tiết AcuRite được sử dụng ở đây sẽ gửi thông tin nhiệt độ và độ ẩm sau mỗi 16 giây. Ở mặt sau, nó hiển thị số model 000592TXR nhưng nó thường được quảng cáo là model 06002M. Cảm biến này được nhiều kiểu trạm thời tiết khác nhau sử dụng nên rất dễ tìm và tôi đã có thể mua chúng trên eBay với giá dưới 20 đô la. AcuRite bán các cảm biến trông tương tự cho một số trạm thời tiết của họ nhưng chúng có thể hoặc không tuân theo cùng một giao thức truyền thông. Có một số dấu hiệu trên web rằng cảm biến chỉ nhiệt độ 00606 sử dụng cùng một định dạng thông báo nhưng với một byte độ ẩm không hợp lệ.

Như đã thấy trong dạng sóng đầu tiên được hiển thị ở trên, các tin nhắn thời tiết được gửi theo từng đợt với khoảng cách 2ms giữa các tin nhắn liên tiếp. Dạng sóng thứ hai được hiển thị ở trên mở rộng một phần của một thông báo để xem thời lượng và mẫu bit. Có bốn bit đồng bộ cao khoảng 600us sau đó là thấp 600us. Các bit dữ liệu được thể hiện bằng mức cao 400us sau đó là mức thấp 200us (1) hoặc mức cao 200us sau đó là mức thấp 400us (0).

Định dạng thông báo bao gồm 7 byte dữ liệu. Hai byte đầu tiên là ID cảm biến và những byte này không thay đổi (tức là: nó không sử dụng mã cuộn). Byte cuối cùng là một tổng kiểm tra cộng đơn giản của sáu byte đầu tiên. Byte thứ ba là chỉ báo mức pin và phải luôn là 44 hex nếu pin còn tốt. Byte thứ tư là độ ẩm và nó là một giá trị không được chia tỷ lệ từ 0 đến 99. Điều quan trọng cần lưu ý là bit quan trọng nhất của byte 4, 5 và 6 là bit chẵn lẻ và không phải là một phần của phép đo các giá trị. Các byte 5 và 6 là nhiệt độ được chia tỷ lệ (độ C) với 4 bit thấp hơn của byte 5 được ghép với 7 bit thấp hơn của byte 6 để tạo thành giá trị 11 bit. Nhiệt độ luôn được biểu diễn dưới dạng một số dương và chỉ trở thành âm khi áp dụng tỷ lệ. Tỷ lệ là (C / 10) - 100. Cần chia cho 10 vì độ phân giải nhiệt độ là phần mười độ. Phép trừ là bắt buộc vì 100 được thêm vào bởi cảm biến để giữ giá trị được truyền dương.

Bước 2: Máy thu RF

Máy thu RF
Máy thu RF
Máy thu RF
Máy thu RF

Mô-đun RF mà tôi sử dụng cho dự án này là RXB6. Nó là một máy thu siêu dị loại trái ngược với các máy thu siêu tái sinh ít được mong muốn hơn. Nếu bạn nhìn vào các mô-đun RF giá rẻ ngoài kia, bạn sẽ thấy rằng các bảng mạch phát và nhận thường được đóng gói cùng nhau. Hầu hết các máy thu đi kèm đó là loại siêu tái sinh nên chúng có xu hướng có các đặc tính hiệu suất thấp hơn nhiều (bao gồm cả phạm vi) so với máy thu siêu dị loại. Chúng tôi chỉ cần mô-đun bộ thu cho dự án này vì chúng tôi sẽ nhận được tín hiệu từ bộ phát cảm biến thời tiết.

Bước 3: Ăng ten RF

Ăng ten RF
Ăng ten RF

RXB6 không đi kèm với ăng-ten. Bạn có thể mua một số loại xoắn ốc khá rẻ nhưng cũng dễ dàng để tự chế tạo ăng-ten cho riêng bạn. Trên thực tế, cáp jumper breadboard có thể bị tuột vào chân ăng-ten của mô-đun nếu bạn không muốn quá cầu kỳ. Lý tưởng nhất, một ăng-ten dây thẳng sẽ là 1/4 bước sóng hoạt động trong khoảng 6,8 inch. Ban đầu tôi đã làm công việc dây nhảy và không gặp vấn đề gì khi nhặt cảm biến bên ngoài của mình mặc dù xưởng điện tử của tôi nằm trong tầng hầm của tôi.

Một khả năng khác là tự chế tạo ăng-ten xoắn ốc của riêng bạn. Có rất nhiều kế hoạch cho điều đó trên web nhưng kế hoạch được hiển thị trong hình trên là những gì tôi đã thực hiện. Tôi đã sử dụng một số dây lõi rắn từ một đoạn cáp Ethernet phế liệu và quấn nó xung quanh chuôi trơn của một mũi khoan 5/32 inch. Để nguyên lớp cách nhiệt ngoại trừ đầu hàn vào bo mạch RF. Bạn sẽ cần 20 lượt. Bạn cũng có thể sử dụng một mũi khoan 7/32 inch và quấn 17 vòng để thay thế. Bất kỳ điều nào trong số này có thể sẽ hoạt động tốt đối với phạm vi bạn có thể có cho cảm biến của mình. Chìa khóa thực sự là có một bộ thu RF tốt để bắt đầu. Các cảm biến AcuRite cũng có bộ truyền tín hiệu khá mạnh.

Bước 4: Giao thức truyền thông RF

Có một số kỹ thuật điều chế khác nhau để truyền dữ liệu nhưng các cảm biến này sử dụng đơn giản nhất là OOK (on-off-keying) hoặc ASK (biên độ-shift-keying). Vì chúng ta đang xử lý các bit dữ liệu 0/1 trong ví dụ này, nên biên độ được bật hoặc tắt hoàn toàn. Vì vậy, theo mục đích của chúng tôi, OOK và ASK giống nhau bởi vì OOK có nghĩa là sóng mang RF đang bật hoặc tắt hoàn toàn. Định dạng thông báo thường được xác định bởi nhà sản xuất thiết bị truyền và họ có thể sử dụng khá nhiều tốc độ truyền, bất kỳ kiểu định dạng bit nào và bất kỳ độ dài nào của thông báo. Băng tần 433 MHz bị nhiễu đầy đường truyền cho những thứ như đồng hồ thông minh, v.v. vì vậy phần mềm cần được điều chỉnh để lọc chỉ định dạng tin nhắn mà chúng tôi muốn sử dụng.

Bước 5: Dữ liệu thời gian

Dữ liệu thời gian
Dữ liệu thời gian

Tôi sử dụng đơn vị GPS giá rẻ để có được dữ liệu thời gian chính xác sẽ tự động khởi động lại sau khi cúp điện. Tôi có một số đơn vị GPS (không có màn hình) xuất ra các câu NMEA tiêu chuẩn nhưng đơn vị nhỏ nhất và rẻ nhất tôi có là NEO-6M. Mô-đun NEO-6M dễ dàng giao tiếp với Arduino vì nó sử dụng cổng nối tiếp cấp TTL. Sự khác biệt thực sự duy nhất là tiêu chuẩn NMEA chỉ định tốc độ baud nối tiếp là 4800 nhưng NEO-6M mặc định là 9600 baud. Bạn có thể chạy chương trình “u-center” miễn phí để thay đổi tốc độ truyền nhưng tôi chỉ để nó ở chế độ mặc định ban đầu. Ngoài ra còn có một chương trình tiện ích miễn phí có tên là GPSInfo (do Globalsat đưa ra) rất tiện dụng để xem thông tin GPS trên PC. Bạn có thể kết nối thiết bị GPS với cáp USB to TTL tiêu chuẩn để kiểm tra hoặc thiết lập thiết bị bằng PC. Hãy nhớ rằng chip GPS trên mô-đun thực sự chạy ở 3,3 volt (thông qua bộ điều chỉnh điện áp trên bo mạch) vì vậy nếu bạn muốn kết nối với cổng RXD của nó, bạn nên thay đổi mức từ 5 volt. Cổng TXD có thể kết nối trực tiếp với Arduino hoặc PC.

Bước 6: Múi giờ

Hiển thị thời gian GPS là một điều dễ dàng thực hiện miễn là bạn chỉ muốn hiển thị UTC (Phối hợp theo giờ quốc tế). Các câu NMEA bao gồm các ký tự ASCII có thể được xuất trực tiếp ra màn hình LCD. Phần thời gian có định dạng HHMMSS. FF (giờ, phút, giây và giây phân số). Đối với đồng hồ của chúng tôi, phần phân số không hữu ích vì vậy tất cả những gì chúng tôi cần xử lý là sáu ký tự. Vấn đề là sau đó bạn cần chuyển đổi sang giờ địa phương của mình và sang định dạng SA / CH 12 giờ nếu bạn muốn. Nhưng đôi khi các vấn đề lại là thứ khiến cuộc sống trở nên thú vị, vì vậy đó là phần thực sự của phần mềm.

Đối với múi giờ, bạn có thể nghĩ rằng sẽ có 24 múi giờ trong đó 12 múi ở phía đông của vị trí UTC (+ múi) và 12 múi ở phía tây của vị trí UTC (- múi). Trên thực tế, có một số giờ kỳ quặc là giờ phân số và một vài giờ vượt quá “giới hạn” 12 giờ. Nếu bạn tình cờ sống ở một trong những khu vực đó, tôi xin lỗi vì phần mềm của tôi chỉ chiếm các khu vực 24 giờ. Cũng có một số người trong chúng ta sử dụng Giờ tiết kiệm ánh sáng ban ngày một phần trong năm nhưng điều đó không được tự động tính vào phần mềm. Điều đó sẽ yêu cầu một bảng tra cứu các ngày trong tương lai, độ phức tạp cao hơn trong phần mềm và sự cần thiết phải cập nhật phần mềm nếu các tuần trong năm cho chuyển đổi thay đổi. Thay vào đó, phần cứng sử dụng công tắc tiếp xúc tạm thời để cho phép dễ dàng thiết lập múi giờ (độ lệch UTC).

Bước 7: Sơ đồ

Sơ đồ
Sơ đồ

Sơ đồ được hiển thị ở trên và bao gồm các kết nối cho giao diện LCD 4-bit 1602. Dữ liệu nối tiếp từ bộ thu RF ở mức logic kỹ thuật số nên nó được kết nối trực tiếp với một trong các chân đầu vào dữ liệu Arduino. Chân được cấu hình trong phần mềm để thực hiện chức năng ngắt khi thay đổi để chúng ta có thể đo độ rộng xung. Đầu ra GPS TXD được kết nối trực tiếp với đầu vào Arduino RX.

Có hai công tắc được sử dụng. Như đã đề cập trước đó, công tắc tiếp điểm tạm thời cho phép thiết lập độ lệch UTC. Có thể nhấn công tắc bất cứ lúc nào để vào chế độ đã cài đặt. Ban đầu, màn hình sẽ hiển thị chênh lệch UTC không hợp lệ là “+77”. Tham khảo phần “Phần mềm Đồng hồ” để biết hướng dẫn cài đặt độ lệch UTC.

Công tắc thứ hai là công tắc bật / tắt đơn giản. Ở vị trí “tắt”, thời gian sẽ được hiển thị ở định dạng 12 giờ (AM / PM) và ở vị trí “bật”, thời gian sẽ được hiển thị ở định dạng 24 giờ. Công tắc này có thể được thay đổi bất kỳ lúc nào để chuyển đổi giữa các định dạng.

Nếu chỉ cần chức năng đồng hồ là mong muốn, thì không cần kết nối mô-đun thu RF. Nếu chỉ cần chức năng thời tiết là mong muốn, thì không cần kết nối GPS và hai công tắc.

Bước 8: Phần mềm LCD

Tôi có xu hướng sử dụng một trong hai loại giao diện LCD. Một là giao diện 4 bit tiêu chuẩn và giao diện còn lại là giao diện 3 dây sử dụng thanh ghi dịch chuyển. Tôi đã thiết kế giao diện đó khi làm việc với các bộ vi điều khiển PIC nhỏ có số lượng chân I / O hạn chế. Tôi đã sử dụng giao diện 4-bit cho dự án này nhưng có tệp bao gồm màn hình LCD của riêng tôi thay vì sử dụng thư viện LCD Arduino chung. Điều đó làm giảm mức tiêu thụ bộ nhớ và độ phức tạp của mã và cũng cho phép tôi chỉnh sửa mã cho các dự án cụ thể như dự án này.

Bước 9: Phần mềm đồng hồ

Bộ GPS xuất ra các câu chuẩn NMEA-0183 là các chuỗi ASCII chứa nhiều thông tin. Đối với ứng dụng này, tôi đã chọn câu GGA để lấy thông tin thời gian vì đó là câu tôi đã sử dụng cho một dự án GPS trước đây. Các trường thông tin trong câu NMEA được phân tách bằng dấu phẩy, do đó, sau khi tiêu đề câu GGA được phát hiện, phần mềm thường đếm dấu phẩy và gọi quy trình thích hợp cho từng trường thông tin GPS mong muốn. Ở đây chỉ cần thông tin thời gian và thông tin đó nằm trong trường sau dấu phẩy đầu tiên nên không cần đếm.

Sáu chữ số thời gian (HHMMSS) được lưu vào bộ đệm và sau đó được xử lý sau khi tất cả chúng được nhận. GPS có thể sớm xuất ra một số thông báo không hoàn chỉnh để quy trình lưu vào bộ đệm xác minh rằng mỗi ký tự là một giá trị số ASCII. Nếu nhận được một ký tự xấu, thông báo sẽ bị loại bỏ. Điều này cũng có thể xảy ra trong một số trường hợp hiếm hoi trong quá trình hoạt động bình thường, đặc biệt nếu giao tiếp cổng nối tiếp giảm một chút. Tôi chỉ thấy điều này một lần và tất cả những gì đã xảy ra là thời gian tạm dừng trong một giây và sau đó tăng lên hai giây thay vì một giây.

Nếu phần mềm được cấu hình để chỉ hiển thị thời gian, thì dòng đầu tiên của màn hình LCD sẽ hiển thị giờ địa phương và dòng thứ hai sẽ hiển thị UTC. Đối với UTC, phần mềm chỉ gửi trực tiếp các ký tự ASCII đến quy trình hiển thị, với dấu hai chấm (:) được chèn thích hợp.

Để chuyển đổi UTC sang giờ địa phương, độ lệch UTC (múi giờ) phải được áp dụng. Vì giờ UTC từ GPS ở định dạng ASCII, phần mềm sẽ chuyển đổi các ký tự giờ ASCII thành số thập phân và sau đó thêm độ lệch UTC. Phần bù UTC được lưu trữ dưới dạng giá trị BCD dương với một bit dấu nên trước tiên nó được chuyển đổi thành giá trị số nguyên và sau đó bị phủ định nếu bit dấu được đặt. Sau khi giá trị giờ địa phương được tính toán, một bảng tra cứu được sử dụng để chuyển đổi nó thành BCD và sau đó BCD được chuyển đổi trở lại ASCII để hiển thị. Bảng tra cứu cần xử lý định dạng UTC 24 giờ cũng như +/- 12 múi giờ. Để làm được điều này, thời gian UTC từ 0000 đến 2300 chiếm 24 mục ở giữa trong bảng với 12 mục trước và 12 mục sau để tính cho các múi giờ. Một bảng ở định dạng 12 giờ vì vậy tôi cũng đã thêm một bảng tra cứu cho phần AM / PM của màn hình. Bảng còn lại ở định dạng 24 giờ. Như đã đề cập trước đó, công tắc bật / tắt cho phép lựa chọn định dạng 12 giờ hoặc 24 giờ.

Múi giờ được truy xuất từ EEPROM trong quá trình khởi tạo và hiển thị ngắn gọn. Nếu nó chưa được đặt ít nhất một lần thì quy trình cài đặt được gọi. Quy trình cài đặt cũng có thể được gọi bất kỳ lúc nào bằng cách nhấn vào công tắc tiếp điểm tạm thời. Quy trình cài đặt sẽ khởi tạo màn hình thành “UTC OFFSET +77”. Nhấn nhanh vào công tắc sẽ thay đổi giá trị thành “-00”. Nếu múi giờ dương là bắt buộc, thì một lần nhấn ngắn khác sẽ thay đổi giá trị thành “+00”. Nhấn và giữ (> 1 giây) sẽ chuyển chế độ cài đặt sang bước tiếp theo. Tại thời điểm này, mỗi lần nhấn ngắn sẽ tăng giá trị thời gian lên đến tối đa là 12. Sau khi đạt đến múi giờ mong muốn, nhấn và giữ công tắc trong hơn 1 giây rồi thả ra. Sau đó, phần mềm sẽ lưu giá trị UTC trong EEPROM và hiển thị ngắn gọn “OFFSET SAVED”. Nếu bạn mắc lỗi trong khi nhập, chỉ cần thoát ra và sau đó nhấn lại công tắc để đặt lại.

NEO-6M không yêu cầu cố định vị trí tốt để xuất thời gian, vì vậy nó sẽ xuất tin nhắn ngay khi nhận được một vệ tinh. Cho đến lúc đó màn hình sẽ đọc “KHÔNG CÓ DỮ LIỆU”.

Bước 10: Phần mềm thời tiết

Bộ vi điều khiển PIC có khả năng bật / tắt bộ hẹn giờ bằng cách sử dụng xung bên ngoài. Xung đầu vào tương tự đó cũng có thể được sử dụng như một ngắt bên ngoài để báo hiệu đọc khoảng thời gian của xung. Arduino không có khả năng chính xác đó nên tôi đã sử dụng chức năng ngắt khi thay đổi. Trên một cạnh của xung thông điệp RF, thời gian micro giây hiện tại được lưu bởi trình xử lý ngắt. Ở cạnh đối diện, thời gian trôi qua được tính toán để xác định độ rộng xung.

Phần mềm có định nghĩa “GỠ LỖI” cho phép hiển thị định dạng dữ liệu thô của các tin nhắn đã nhận. Ngoài ra còn có một định nghĩa để chỉ định chân đầu vào Arduino cho luồng nối tiếp từ bộ thu RF. Phần mềm được thiết lập để tính toán cài đặt thanh ghi ngắt khi thay đổi phù hợp dựa trên định nghĩa này. Tính toán chỉ hoạt động đối với các chân kỹ thuật số Arduino. Một chân tương tự có thể được sử dụng thay thế nhưng điều đó sẽ yêu cầu mã hóa cứng các giá trị thanh ghi.

Bộ xử lý ngắt xác định xem số đếm được bắt có đủ dài để trở thành xung bắt đầu hay không. Như đã đề cập trước đó, khoảng cách giữa nhiều tin nhắn là 2ms vì vậy đó là những gì phần mềm tìm kiếm. Do tất cả lưu lượng 433 MHz, quá trình sàng lọc ban đầu trong phần mềm đảm bảo rằng thời gian đo được ít nhất là 1,8 mili giây nhưng không lớn hơn 2,4 mili giây. Sau khi phát hiện bắt đầu, phần mềm sẽ tìm kiếm các bit đồng bộ (600us) và đếm để đảm bảo rằng bốn trong số chúng được nhận. Sau khi các bài kiểm tra này được vượt qua, phần mềm sẽ tìm các bit time thích hợp là 200us và 400us.

Các bit nhận được được tạo thành các byte và mỗi byte được lưu lại. Sau khi nhận được bảy byte, tổng kiểm tra thông báo được xác minh trước khi cho phép xử lý thêm. Nếu các byte thô được xuất ra (chế độ gỡ lỗi), thì các byte sẽ được chuyển đổi thành các ký tự ASCII và được gửi ra màn hình LCD. Nếu đầu ra độ ẩm và nhiệt độ là mong muốn, thì các chuyển đổi thích hợp sẽ được thực hiện.

Hai byte dữ liệu Centigrade trong thông điệp RF được trộn với nhau để tạo thành giá trị 11 bit. Phần dưới được dịch sang trái một bit để loại bỏ bit chẵn lẻ và để căn chỉnh nó với các bit ở phần trên. Hai byte được tạo thành một biến từ 16 bit và sau đó toàn bộ được dịch sang phải một bit để có được sự liên kết bit cuối cùng. Biến word sau đó được chuyển thành biến dấu phẩy động cho các phép tính toán học.

Một lợi thế lớn của việc sử dụng C ++ trên Arduino so với ngôn ngữ hợp ngữ trên PIC là nó đơn giản hóa các phép tính toán học. Như đã đề cập trước đó, chuyển đổi Centigrade là (C / 10) -100. Kết quả được chuyển đổi thành một chuỗi và được gửi đến màn hình LCD để hiển thị. Phép tính Fahrenheit là (C * 1.8) + 32. Kết quả một lần nữa được chuyển đổi thành chuỗi và gửi đến màn hình LCD để hiển thị. Trong cả hai trường hợp, chuyển đổi chuỗi bao gồm dấu âm (nếu thích hợp) và dấu thập phân. Kiểm tra dấu thập phân được thực hiện để đảm bảo rằng chỉ một ký tự sau số thập phân được gửi đến màn hình. Việc kiểm tra đó là cần thiết vì chuỗi có thể có độ dài từ 3 đến 5 ký tự.

Tôi có hai cảm biến AcuRite nên tôi đã thêm kiểm tra phần mềm để đảm bảo rằng dữ liệu của một cảm biến không ghi đè lên dữ liệu của cảm biến kia nếu phần mềm được đặt chỉ thực hiện chức năng thời tiết. Cảm biến đầu tiên nhận được sau khi bật nguồn được hiển thị trên dòng 1 và cảm biến còn lại hiển thị trên dòng 2. Bằng cách sử dụng chế độ gỡ lỗi, tôi có thể xem ID là gì cho mỗi cảm biến để tôi có thể kiểm tra mã đơn giản nếu tôi chỉ. muốn xử lý dữ liệu từ một trong số họ.

Phần mềm giám sát trạng thái pin (byte3) và hiển thị thông báo nếu nó cho biết pin yếu. Thông báo này ghi đè lên tất cả các dữ liệu khác cho cảm biến đó.

Bước 11: Hiển thị

Hiển thị
Hiển thị
Hiển thị
Hiển thị
Hiển thị
Hiển thị

Dưới đây là một số hiển thị ví dụ cho các chức năng khác nhau. Tôi có một số Tài liệu hướng dẫn khác nhưng hầu hết các dự án vi điều khiển PIC của tôi có thể được tìm thấy trên trang web của tôi tại: www.boomerrules.wordpress.com

Đề xuất: