Mục lục:

Sử dụng cảm biến hồng ngoại với Arduino: 8 bước (có hình ảnh)
Sử dụng cảm biến hồng ngoại với Arduino: 8 bước (có hình ảnh)

Video: Sử dụng cảm biến hồng ngoại với Arduino: 8 bước (có hình ảnh)

Video: Sử dụng cảm biến hồng ngoại với Arduino: 8 bước (có hình ảnh)
Video: Arduino - Kết Nối & Điều Khiển Cảm Biến Hồng Ngoại 2024, Tháng sáu
Anonim
Sử dụng cảm biến hồng ngoại với Arduino
Sử dụng cảm biến hồng ngoại với Arduino

Cảm biến hồng ngoại (hay còn gọi là IR) là gì?

Cảm biến IR là một thiết bị điện tử quét các tín hiệu IR trong các dải tần số cụ thể được xác định bởi các tiêu chuẩn và chuyển đổi chúng thành tín hiệu điện trên chân đầu ra của nó (thường được gọi là chân tín hiệu). Các tín hiệu IR chủ yếu được sử dụng để truyền các lệnh qua không trung ở khoảng cách ngắn (thường là vài mét) giống như những gì bạn đã làm việc với điều khiển từ xa của TV hoặc các thiết bị điện tử tương tự khác.

Giao thức truyền thông IR

Mỗi tín hiệu đại diện cho một mã cụ thể. Tín hiệu điện có thể được chuyển đổi trở lại dữ liệu / mã thực tế mà người gửi đã gửi. Khi bạn nhấn một nút trên điều khiển từ xa của TV, nó sẽ tạo ra tín hiệu tương ứng với mã nút (ví dụ: Bật / Tắt, Tăng âm lượng, v.v.) và gửi tín hiệu đó cho người nhận (trong trường hợp này là TV của bạn). Cả người gửi và người nhận đều đồng ý về một bộ mã để người nhận biết phải làm gì dựa trên mỗi mã. Cách mã nên được điều chế (mô hình hóa) như một tín hiệu được xác định theo tiêu chuẩn khác nhau và mỗi nhà sản xuất cảm biến thường cố gắng tạo ra một sản phẩm tương thích với chúng để nó có thể được sử dụng trong các thiết bị khác nhau. Một trong những giao thức tiêu chuẩn được biết đến nhiều nhất là từ NEC. Bạn có thể tìm thấy lịch sử ngắn gọn của các giao thức IR trên Wikipedia dưới tiêu đề Consumer IR.

Bước 1: Cảm biến IR trông như thế nào?

Cảm biến IR trông như thế nào?
Cảm biến IR trông như thế nào?
Cảm biến IR trông như thế nào?
Cảm biến IR trông như thế nào?
Cảm biến IR trông như thế nào?
Cảm biến IR trông như thế nào?

Cảm biến hồng ngoại có sẵn trên các gói khác nhau. Ở đây bạn có thể xem một số bao bì điển hình cho bộ thu IR.

Bước 2: Bảng / mô-đun đột phá cảm biến IR

Bảng / mô-đun đột phá cảm biến IR
Bảng / mô-đun đột phá cảm biến IR
Bảng / mô-đun đột phá cảm biến IR
Bảng / mô-đun đột phá cảm biến IR
Bảng / mô-đun đột phá cảm biến IR
Bảng / mô-đun đột phá cảm biến IR
Bảng / mô-đun đột phá cảm biến IR
Bảng / mô-đun đột phá cảm biến IR

Bạn cũng có thể mua chúng dưới dạng mô-đun IR / bảng đột phá trên eBay, Aliexpress hoặc Amazon. Các mô-đun như vậy thường kết hợp một trong các cảm biến được đề cập ở trên với một gói thân thiện với breadboard đẹp mắt cùng với đèn LED sẽ nhấp nháy khi cảm biến phát hiện ra tín hiệu. Bằng cách đó, bạn sẽ nhận thấy nếu có bất kỳ dữ liệu nào đang được chuyển. Tôi thực sự khuyên bạn nên bắt đầu với một trong những mô-đun này.

Lưu ý: nếu bạn có cảm biến IR thô, sẽ không có gì thay đổi, ngoại trừ việc bạn nên kiểm tra biểu dữ liệu của cảm biến để đảm bảo rằng bạn đang đấu dây chính xác vì nếu không, bạn có thể có một làn khói màu xanh lam tuyệt đẹp kèm theo mùi sẽ kéo dài giờ. Bạn có hiểu ý tôi;)

Bước 3: Các bộ phận và thành phần bắt buộc

Các bộ phận và thành phần bắt buộc
Các bộ phận và thành phần bắt buộc

Tại đây, bạn có thể tìm thấy danh sách các thành phần mà bạn cần để hoàn thành hướng dẫn này:

Liên kết eBay:

  • 1 x Arduino Uno:
  • 1 x mô-đun cảm biến IR với điều khiển từ xa:
  • Điện trở 4 x 220 ohm:
  • 4 x LED:
  • 8 x cáp Dupont:
  • 1 x breadboard không hàn:
  • 1 x breadboard mini (tùy chọn):

Liên kết Amazon.com:

  • 1 x Arduino Uno:
  • 1 x mô-đun cảm biến hồng ngoại với điều khiển từ xa:
  • 1 x breadboard không hàn:
  • Điện trở 4 x 220 ohm:
  • 4 x LED:
  • 8 x cáp Dupont:
  • 1 x breadboard mini (tùy chọn):

Bước 4: Kết nối Cảm biến IR với Arduino

Kết nối cảm biến hồng ngoại với Arduino
Kết nối cảm biến hồng ngoại với Arduino
Kết nối cảm biến hồng ngoại với Arduino
Kết nối cảm biến hồng ngoại với Arduino
Kết nối cảm biến hồng ngoại với Arduino
Kết nối cảm biến hồng ngoại với Arduino

Thiết lập kết nối cảm biến hồng ngoại với Arduino rất đơn giản. Bên cạnh chân VCC và GND, cảm biến chỉ có một chân đầu ra nên được kết nối với một trong các chân kỹ thuật số của Arduino. Trong trường hợp này, nó được kết nối với chân 13.

Tôi đã cố gắng chứng minh cả mô-đun cảm biến IR và thiết lập cảm biến IR thô. Như có thể thấy trên hình ảnh, vị trí của các chân VCC và GND trên mô-đun cảm biến ngược lại với cảm biến thô. Tuy nhiên, nó có thể không đúng với trường hợp của cảm biến của bạn, vì vậy, như đã đề cập ở bước trước, trong trường hợp sử dụng cảm biến thô, hãy kiểm tra biểu dữ liệu trước.

Bước 5: Tìm mã tương ứng với từng phím trên điều khiển từ xa

Tìm mã tương ứng với mỗi khóa trên điều khiển từ xa
Tìm mã tương ứng với mỗi khóa trên điều khiển từ xa
Tìm mã tương ứng với mỗi khóa trên điều khiển từ xa
Tìm mã tương ứng với mỗi khóa trên điều khiển từ xa
Tìm mã tương ứng với mỗi khóa trên điều khiển từ xa
Tìm mã tương ứng với mỗi khóa trên điều khiển từ xa

Để lập trình Arduino thực hiện điều gì đó khi bạn nhấn một phím trên điều khiển từ xa, trước tiên bạn phải có mã tương ứng với phím đó. Mã khóa là một số thường được trình bày dưới dạng hệ thập lục phân. Mỗi bộ điều khiển từ xa có bộ mã khóa riêng trong khi có thể hai bộ điều khiển chia sẻ cùng một mã cho các mục đích khác nhau. Việc có các mã khóa khác nhau cùng với việc sử dụng các dải tần số khác nhau, đảm bảo rằng hai bộ điều khiển từ xa của các thiết bị khác nhau sẽ không bị nhiễu. Đó là lý do tại sao khi bạn thay đổi kênh TV, đầu đĩa DVD của bạn hoàn toàn không phản ứng.

Để phát hiện mã cho điều khiển từ xa IR của bạn, trước tiên bạn phải chạy một bản phác thảo đơn giản để cố gắng đọc mã từ cảm biến khi bạn nhấn một phím và gửi mã đó qua cổng nối tiếp đến máy tính của bạn, nơi bạn có thể truy cập nó bằng cách sử dụng các công cụ Serial Monitor của Arduino IDE. Đây là những gì bản phác thảo đính kèm với phần này làm. Sẽ tốt hơn nếu bạn nhấn mọi nút để xem mã và ghi danh sách mã vào đâu đó để sau này bạn không cần phải chạy lại mã này. Danh sách các mã khóa bạn thấy như một bảng trong hình thực tế là các mã tôi nhận được khi nhấn các nút trên điều khiển từ xa IR giá rẻ của mình.

Bạn cũng có thể truy cập mã nguồn thực tế được chia sẻ trên trình chỉnh sửa web Arduino của tôi tại ir-key-code-logger.

Lưu ý: Đừng lo lắng nếu bạn thấy mã như FFFFFF ở đâu đó ở giữa. Nó có nghĩa là bạn đã nhấn và giữ một nút trong một thời gian. Chúng tôi sẽ trở lại với nó sau. Bây giờ chỉ cần bỏ qua chúng và tập trung vào các mã khác.

Bước 6: Điều khiển một bộ đèn LED bằng IR Remote

Điều khiển một bộ đèn LED bằng IR Remote
Điều khiển một bộ đèn LED bằng IR Remote
Điều khiển một bộ đèn LED bằng IR Remote
Điều khiển một bộ đèn LED bằng IR Remote
Điều khiển một bộ đèn LED bằng IR Remote
Điều khiển một bộ đèn LED bằng IR Remote

Bây giờ chúng ta đã có mã cho mỗi nút, đã đến lúc tập trung vào cách chúng ta có thể sử dụng chúng. Thông thường, bạn sử dụng điều khiển từ xa IR để gửi lệnh đến Arduino để thực hiện một số việc như bật hoặc tắt đèn, di chuyển rô bốt theo hướng cụ thể, hiển thị thứ gì đó trên màn hình LCD / OLED, v.v. Ở đây chúng tôi cố gắng trình diễn quy trình bằng cách sử dụng đơn giản mạch gồm 4 đèn LED với các màu khác nhau. Chúng tôi muốn bật hoặc tắt từng cái trong số chúng bằng một nút chuyên dụng của điều khiển từ xa IR. Như bạn có thể thấy trên giản đồ, bạn phải kết nối Arduino theo cách sau với đèn LED và cảm biến:

Arduino GND -> IR cảm biến GND.

Arduino VCC -> IR cảm biến VCC.

Arduino 13 -> Ngõ ra tín hiệu cảm biến IR.

Arduino 2 -> Cực dương của đèn LED màu xanh lam (chân ngắn hơn của đèn LED màu xanh lam)

Arduino 3 -> Cực dương của đèn LED màu xanh lá cây (chân ngắn hơn của đèn LED màu xanh lá cây)

Arduino 4 -> Cực dương của đèn LED màu vàng (chân ngắn hơn của đèn LED màu vàng)

Arduino 5 -> Cực dương của đèn LED màu đỏ (chân ngắn hơn của đèn LED màu đỏ)

Arduino GND -> Cathode của tất cả các đèn LED thông qua điện trở 220 ohm (chân dài hơn của đèn LED)

Bạn có thể tìm thấy mã tương ứng với mạch này trong tệp đính kèm hoặc trên trình chỉnh sửa web Arduino của tôi tại ir-led-control.

Bước 7: Khắc phục sự cố

Trong khi thiết lập dự án của bạn và làm theo các bước, bạn có thể gặp phải nhiều tình huống kỳ lạ. Dưới đây là danh sách một số lỗi phổ biến mà bạn có thể mắc phải khi làm việc với cảm biến IR.

Nhận FFFFFF khi nhấn một phím

Khi nhấn một nút, bạn có thể nhận thấy rằng hầu hết thời gian nó báo cáo một mã như FFFFFF. Điều này xảy ra khi bạn nhấn một nút và giữ nó một lúc, thậm chí trong một khoảng thời gian ngắn. Tình huống là khi bạn nhấn nút ban đầu, điều khiển từ xa IR sẽ gửi mã nút và miễn là bạn giữ nút, nó lặp lại gửi FFFFFF, có nghĩa là người dùng vẫn đang nhấn nút được báo cáo gần đây. Điều đó sẽ ổn. Bạn chỉ có thể bỏ qua chúng. Mã thực tế là mã bạn nhận được ngay trước FFFFFF trên Serial Monitor.

Cảm biến IR hoàn toàn không phản ứng và có vẻ như nó đang nóng lên

Cắt điện !!! Nếu bạn chắc chắn rằng bản phác thảo trình ghi mã khóa là chính xác, thì sự cố có thể do thiết lập sai dây của bạn. Kịch bản đã xảy ra với tôi là đối với mô-đun IR của tôi (mô-đun được gắn vào bảng) tôi đã kết nối VCC và GND theo cách ngược lại (do không sử dụng màu sắc phù hợp cho dây nối của tôi). Bằng cách đó, thành phần cảm biến bị đốt cháy và một làn khói xanh đẹp mắt bốc lên. Tôi đã mua một gói cảm biến IR thô và cố gắng thay thế nó và bây giờ nó hoạt động như một sự quyến rũ:). Thật không may, tôi đã mắc phải lỗi tương tự khi thử nghiệm với cảm biến IR thô và lần này không có gì xảy ra ngoại trừ việc cảm biến bị nóng lên. Vì vậy, hãy luôn kiểm tra thông mạch trước khi bật nguồn!

Đôi khi cảm biến phát hiện mã mà tôi chưa từng thấy trước đây

Đây là một trong những vấn đề phổ biến nhất. Rất có thể là do một trong những lý do sau:

Bạn không hướng trực tiếp điều khiển từ xa IR của mình về phía cảm biến

Điều này sẽ dẫn đến việc có một số mã mới (chủ yếu là mã dài hơn) mà bạn chưa từng nhận được trước đây và thường không khớp với độ dài của mã bạn đã có. Vì vậy, hãy nhớ luôn hướng điều khiển từ xa về phía cảm biến của bạn.

Bạn đang sử dụng một điều khiển từ xa IR giá rẻ (như điều tôi đã sử dụng trong hướng dẫn này)

Thay vì sử dụng điều khiển từ xa rẻ tiền không thể đoán trước, bạn có thể thử kịch bản tương tự bằng cách sử dụng điều khiển từ xa của TV hoặc Đầu DVD hoặc điều khiển từ xa IR của bất kỳ thiết bị nào bạn có. Chúng thường có chất lượng tín hiệu / phần cứng tốt (và tất nhiên là đắt hơn) và dựa trên kinh nghiệm của tôi, chúng thường hoạt động tốt ngay cả khi bạn không hướng điều khiển từ xa trực tiếp về phía cảm biến.

Làm cách nào để biết mã được ghi lại không phải là mã rác

Các mã thường được trình bày ở định dạng thập lục phân. Nếu bạn chuyển đổi chúng thành giá trị nhị phân tương ứng, bạn sẽ nhận thấy rằng biểu diễn nhị phân của byte cuối cùng là sự phủ định của byte xuất hiện trước đó. Nếu bạn biết điều này, bạn có thể kiểm tra mã này để đảm bảo rằng mã bạn nhận được thực sự là mã hợp lệ hay không. Ví dụ: nếu bạn có FF7A85, biểu diễn nhị phân của nó sẽ như sau:

1111 1111 0111 1010 1000 0101

Từ trái sang phải, mỗi lô gồm 4 chữ số là đại diện của một ký tự trong số thập lục phân ban đầu. Như bạn có thể thấy, lô tương ứng với 7 là 0111 và lô tương ứng với 8 là 1000 là phủ định chính xác của nó. Bằng cách phủ định, tôi có nghĩa là tất cả các số 0 sẽ là 1 và tất cả các số 1 sẽ được thay thế bằng các số 0. Điều tương tự cũng đúng với số tiếp theo là A (1010) và 5 (0101).

Bước 8: Làm gì tiếp theo?

Bây giờ đến lượt của bạn. Tất cả tùy thuộc vào trí tưởng tượng của bạn để xem bạn có thể làm gì với bộ cảm biến đơn giản nhỏ bé này trong tay. Dưới đây là một số ý tưởng để bắt đầu:

  • Sử dụng điều khiển từ xa IR của một trong các thiết bị bạn có ở nhà (TV, Âm thanh nổi, v.v.) và cố gắng sử dụng nó trong dự án Arduino của bạn
  • Cố gắng bật tất cả các đèn LED cùng một lúc bằng cách nhấn một phím và sau đó tắt chúng bằng một phím khác
  • Sử dụng nút Lên / Xuống của điều khiển từ xa để bật / tắt từng đèn LED cho đến khi tất cả chúng cùng bật / tắt
  • Tạo đèn giao thông bằng đèn LED và điều khiển nó bằng điều khiển từ xa của bạn
  • Nếu bạn có động cơ DC nhỏ trong tay, hãy thử khởi động / dừng hoặc thay đổi hướng quay của nó thông qua điều khiển từ xa IR
  • Bạn có thể sử dụng điều khiển từ xa của TV để điều khiển rô bốt hoặc bật / tắt một số cảm biến / bộ truyền động trên đó

Hãy cho tôi biết về nhận xét, bạn sẽ làm gì (hoặc bạn đã làm) bằng điều khiển từ xa IR.

Đề xuất: