Mục lục:
Video: Arduino 1-dây Chung thiết bị khách / Slave (Cảm biến): 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Vui lòng đọc Phần giới thiệu và Bước 2 trong tài liệu hướng dẫn của tôi về cách xây dựng Màn hình 1 dây Arduino (144 Chars) để biết thêm thông tin về tình hình và các thư viện có sẵn. Như đã giải thích ở đó, chúng tôi sẽ sử dụng thư viện OneWire-Hub (trình giả lập thiết bị nô lệ OneWire) của orgua (chú ý rằng có các nhánh rẽ khác xung quanh) để xây dựng các thiết bị 1 dây chung (ví dụ: cảm biến) bằng Arduino.
Bước 1: Phần mềm
Điều quan trọng nhất là tạo ra một thiết bị có thể trả về cơ bản bất kỳ loại giá trị nào một cách đơn giản. Có nghĩa là phần mềm tiêu chuẩn có thể được sử dụng để đọc trực tiếp tất cả các giá trị (không cần hội thoại hoặc thao tác nhị phân). Để làm được điều đó, chúng tôi cần một thiết bị 1 dây mặc định rất đơn giản có thể trả về phao và được hỗ trợ rộng rãi. Sự lựa chọn duy nhất mà tôi biết là Nhiệt kế DS18B20 (Màn hình Pin DS2438 cũng thú vị và hữu ích nhưng khá phức tạp và do đó chậm trong số các nhược điểm khác). Thư viện OneWire-Hub chứa một ví dụ có tên là DS18B20_asInterface thực hiện chính xác những gì chúng ta cần. Nó tạo ra một loạt DS18B20 trong đó mỗi DS18B20 đại diện cho một giá trị float mà chúng tôi muốn trả về từ (các) cảm biến của chúng tôi. Các hạn chế ở đây là độ phân giải và các giá trị phải nằm trong phạm vi -55, 0… 125, 0. Điều đó có thể dễ dàng đạt được - trong trường hợp xấu nhất là thay đổi tỷ lệ - và thực sự tốt hơn các giá trị có thể được biểu thị bằng ví dụ: giá trị DS2438 (1,5 đến 10V). Ngoài ra, bạn có thể đặt phạm vi giá trị lớn hơn bằng cách sử dụng:
setTempenticRaw (static_cast (value * 16.0f));
nhưng việc đọc và xử lý các giá trị này có thể không được hỗ trợ bởi tất cả các phần mềm vì nó nằm ngoài thông số kỹ thuật.
Điều bạn phải biết là ban đầu, số lượng nô lệ tối đa bị giới hạn ở 8 nhưng có thể thay đổi trong "OneWireHub_config.h" bằng cách tăng HUB_SLAVE_LIMIT lên đến 32. Ngoài ra, bạn phải đảm bảo sử dụng ONEWIRE_TIME_MSG_HIGH_TIMEOUT nếu bạn cần Mạng 1 dây (ví dụ: x10), như được giải thích trong Bước 2 của Màn hình 1 dây Arduino (144 Chars). Và sử dụng Phiên bản IDE> = 1.8.3 để biên dịch và tải mã lên Arduino của bạn.
Đây là một ví dụ về mã của thiết bị mà tôi xây dựng gần đây. Vì tôi cho rằng bạn không sử dụng cùng một tổ hợp cảm biến mà tôi sử dụng, tôi sẽ không đi sâu vào chi tiết ở đây, hãy kiểm tra mã và đặt câu hỏi nếu bạn cần trợ giúp.
Bước 2: Phần cứng
Về cơ bản, bất cứ thứ gì bạn có thể kết nối với Arduino đều có thể được sử dụng làm cảm biến mà bạn lựa chọn. Hạn chế duy nhất là việc đọc cảm biến phải nhanh nhất có thể để có nhiều thời gian còn lại cho giao tiếp 1 dây diễn ra (trình bày Bước 2 trong tài liệu hướng dẫn của tôi về Màn hình 1 dây Arduino (144 Mã) theo thứ tự để lấy một ví dụ).
Một ví dụ về phần cứng khả thi có thể là một trạm thời tiết như ví dụ:
https://shop.boxtec.ch/wetter-messer-p-41289.html
Ngoài ra hoặc thay vì bạn chỉ có thể muốn sử dụng chính Arduino làm cảm biến của mình. Bạn có thể đọc thêm về điều đó trong tài liệu hướng dẫn của tôi về Các tính năng ít được biết đến của Arduino - các giá trị có thể có là điện áp nguồn và nhiệt độ bên trong.
Đây là một ví dụ về hình ảnh của thiết bị mà tôi xây dựng gần đây. Vì tôi cho rằng bạn không sử dụng cùng một tổ hợp cảm biến mà tôi sử dụng, tôi sẽ không đi sâu vào chi tiết ở đây, hãy kiểm tra mã và đặt câu hỏi nếu bạn cần trợ giúp.
Bước 3: Kiểm tra thiết bị
Kết nối nó với mạng của bạn và kiểm tra phần mềm của bạn để tìm tất cả các ID ROM và các giá trị mà chúng trả về dưới dạng nhiệt độ.
Bước 4: Phụ lục: ATtiny85
Các thiết bị đơn lẻ (giới hạn bộ nhớ) cũng có thể được thực hiện trên ATtiny85. Điều này cần một vài bước khi chúng tôi lập trình ATtiny85 sử dụng Arduino Uno làm ISP với sự trợ giúp của Arduino IDE:
-
Liên kết
- https://playground.boxtec.ch/doku.php/arduino/att…
- https://sebastian.expert/could-not-find-usbtiny-d…
- https://learn.sparkfun.com/tutorials/tiny-avr-pro…
- https://forum.arduino.cc/index.php?topic=425532.0
- https://forum.arduino.cc/index.php?topic=128963.0
- sử dụng Arduino IDE> = 1.8.3
-
cài đặt tùy chọn ATtiny vào IDE
- Tệp> Tùy chọn> URL trình quản lý bảng bổ sung:
- Công cụ> Bảng: ??? > Quản lý hội đồng quản trị…
- tìm kiếm: "tiny" và cài đặt
-
tải bản phác thảo ISP lên Uno
Tệp> Ví dụ> ArduinoISP> ArduinoISP
-
chèn ATtiny85 vào ổ cắm lập trình (lực không) và nối dây:
- Pin Arduino MOSI D11 đến Pin ATtiny 5
- Pin Arduino MISO D12 đến Pin ATtiny 6
- Pin Arduino SCK D13 đến Pin ATtiny 7
- Đặt lại Pin Arduino D10 thành Pin ATtiny 1
- Arduino Pin GND sang ATtiny Pin 4
- Arduino Pin VCC sang ATtiny Pin 8
- (> = Nắp 10uF trên chân Arduino Uno RESET có thể cần thiết)
-
chọn ATtiny85 (xem hình):
- Bảng: "ATtiny25 / 45/85"
- Đồng hồ hẹn giờ 1: "CPU"
- B. O. D: "Đã tắt B. O. D."
- LTO (chỉ 1.6.11 +): "Đã tắt"
- Chip: "ATtiny85"
- Đồng hồ: "8 MHz (nội bộ)" (tương thích ATtiny85 và ATtiny84)
- Đồng hồ: "16 MHz (PLL)" (cài đặt thay thế chỉ dành cho ATtiny85)
- Hải cảng: ???
-
chọn Lập trình viên:
Công cụ> Lập trình viên: "Arduino as ISP" (KHÔNG PHẢI "ArduinoISP"!)
-
đặt cài đặt cầu chì (đồng hồ, v.v.):
Công cụ> Ghi Bootloader
- tải lên mã này (đèn LED báo lỗi của lập trình viên cần phải tắt, nếu không hãy đặt lại nó)
-
Bố cục chân ATtinyX5 (ATtiny85):
- Chân 1: PB5 (RST)
- Chân 2: PB3 (A3) - kết nối tùy chọn qua 220ohm đến 1 <-TX
- Chân 3: PB4 (A2) - kết nối với DATA 1 dây
- Chân 4: GND - được kết nối với GND
- Chân 5: PB0 (PWM) - kết nối với cảm biến I2C SDA
- Chân 6: PB1 (PWM) - kết nối với đèn LED với 4,7k đến GND
- Chân 7: PB2 (A1) - kết nối với cảm biến I2C SCL
- Chân 8: VCC - kết nối với 5V
Làm việc với ATTiny85 cần nhiều công việc hơn một chút vì bạn cần có thêm các thư viện cho I2C comm (adafruit / TinyWireM) và đầu ra nối tiếp (TinyDebugSerial). Ngoài ra, vì bộ nhớ khá hạn chế, bạn có thể muốn làm việc nhiều với #define, ví dụ: để loại bỏ gỡ lỗi nối tiếp. Trong ví dụ, bạn có thể thấy tất cả điều này được kết hợp với nhau.
Để kiểm tra, bước đầu tiên là kiểm tra xem đèn LED có nhấp nháy với tần số chính xác 0,5Hz hay không. Sau đó kết nối nó với bus 1wire và kiểm tra thiết bị mới.
Đề xuất:
Bộ đếm khách sử dụng 8051 và cảm biến hồng ngoại với màn hình LCD: 3 bước
Bộ đếm khách sử dụng 8051 và cảm biến hồng ngoại với màn hình LCD: Các bạn thân mến, tôi đã giải thích cách tạo bộ đếm khách sử dụng 8051 và cảm biến hồng ngoại và hiển thị nó trên màn hình LCD. 8051 là một trong những vi điều khiển phổ biến nhất được sử dụng cho các ứng dụng thương mại, sở thích trên toàn thế giới. Tôi đã nhìn thấy
Tự làm cảm biến hơi thở với Arduino (Cảm biến kéo giãn dệt kim dẫn điện): 7 bước (có hình ảnh)
Cảm biến hơi thở tự làm với Arduino (Cảm biến kéo giãn dệt kim dẫn điện): Cảm biến tự làm này sẽ có dạng một cảm biến kéo giãn dệt kim dẫn điện. Nó sẽ quấn quanh ngực / dạ dày của bạn và khi ngực / dạ dày của bạn giãn ra và co lại, cảm biến cũng sẽ như vậy, và do đó, dữ liệu đầu vào được cung cấp cho Arduino. Vì thế
Cảm biến giao diện, SPS-30, Cảm biến vật chất dạng hạt với Arduino Duemilanove sử dụng chế độ I2C: 5 bước
Cảm biến giao diện, SPS-30, Cảm biến vật chất hạt với Arduino Duemilanove Sử dụng chế độ I2C: Khi tôi đang xem xét các cảm biến giao tiếp SPS30, tôi nhận ra rằng hầu hết các nguồn đều dành cho Raspberry Pi nhưng không nhiều cho Arduino. Tôi dành một ít thời gian để làm cho cảm biến hoạt động với Arduino và tôi quyết định đăng trải nghiệm của mình ở đây để nó có thể
Nguyên mẫu - Thiết bị báo động sử dụng cảm biến cảm ứng của con người (KY-036): 4 bước
Nguyên mẫu - Thiết bị báo động sử dụng cảm biến chạm của con người (KY-036): Trong dự án này, tôi sẽ thiết kế một thiết bị báo động sẽ được kích hoạt bằng một lần chạm. Đối với dự án này, bạn sẽ cần một cảm biến cảm ứng của con người (KY-036). Hãy để tôi cung cấp cho bạn một cái nhìn sơ lược về dự án này. Như bạn có thể thấy trong các hình ảnh ở trên, cảm ứng cảm ứng
Cảm biến cảm ứng & Cảm biến âm thanh Điều khiển đèn AC / DC: 5 bước
Cảm biến cảm ứng & Cảm biến âm thanh Điều khiển đèn AC / DC: Đây là dự án đầu tiên của tôi và dự án này hoạt động dựa trên hai cảm biến cơ bản, một là Cảm biến cảm ứng và cảm biến thứ hai là Cảm biến âm thanh, khi bạn nhấn bàn phím trên cảm biến cảm ứng, đèn AC sẽ chuyển BẬT, nếu bạn nhả nó ra, Đèn sẽ TẮT và cùng