Mục lục:

Sử dụng 1 đầu vào tương tự cho 6 nút cho Arduino: 6 bước
Sử dụng 1 đầu vào tương tự cho 6 nút cho Arduino: 6 bước

Video: Sử dụng 1 đầu vào tương tự cho 6 nút cho Arduino: 6 bước

Video: Sử dụng 1 đầu vào tương tự cho 6 nút cho Arduino: 6 bước
Video: Arduino - Bước Đầu Làm Quen Lập Trình Arduino Với Arduino Nano 2024, Tháng mười một
Anonim
Sử dụng 1 đầu vào tương tự cho 6 nút cho Arduino
Sử dụng 1 đầu vào tương tự cho 6 nút cho Arduino

Tôi thường tự hỏi làm thế nào tôi có thể nhận được nhiều Đầu vào Kỹ thuật số hơn cho Arduino của mình. Gần đây, tôi nghĩ rằng tôi có thể sử dụng một trong các Đầu vào Analog để mang lại nhiều đầu vào kỹ thuật số. Tôi đã tìm kiếm nhanh và tìm thấy nơi mọi người có thể làm điều này, nhưng những điều này chỉ cho phép nhấn một nút duy nhất tại một thời điểm. Tôi muốn có bất kỳ tổ hợp nút nào được nhấn ĐƠN GIẢN. Vì vậy, với sự trợ giúp của TINKERCAD CIRCUITS, tôi đã bắt đầu biến điều này thành hiện thực.

Tại sao tôi muốn nhấn nút đồng thời? Như được minh họa trong thiết kế Mạch TinkerCad, nó có thể được sử dụng cho các đầu vào chuyển mạch DIP để lựa chọn các chế độ khác nhau trong chương trình.

Mạch mà tôi nghĩ ra sử dụng nguồn 5V có sẵn từ Arduino và sử dụng 7 điện trở và 6 nút hoặc công tắc.

Bước 1: Mạch

Mạch
Mạch

Arduino có đầu vào tương tự chấp nhận đầu vào 0V đến 5V. Đầu vào này có độ phân giải 10 bit, có nghĩa là tín hiệu được chia thành 2 ^ 10 đoạn hoặc 1024 số đếm. Dựa trên điều này, nhiều nhất mà chúng tôi có thể nhập vào đầu vào analog trong khi cho phép nhấn đồng thời sẽ là 10 nút đến 1 đầu vào analog. Nhưng, đây không phải là một thế giới hoàn hảo. Có điện trở trong dây dẫn, nhiễu từ các nguồn bên ngoài và nguồn điện không hoàn hảo. Vì vậy, để tạo cho mình nhiều sự linh hoạt, tôi đã lên kế hoạch thiết kế cái này cho 6 nút. Điều này một phần bị ảnh hưởng bởi thực tế là Mạch TinkerCAD có đối tượng Bộ chuyển mạch DIP 6-Switch, điều này sẽ giúp việc kiểm tra trở nên dễ dàng.

Bước đầu tiên trong thiết kế của tôi là đảm bảo rằng mỗi nút, khi được nhấn riêng lẻ, sẽ cung cấp một điện áp duy nhất. Điều này loại trừ tất cả các điện trở có cùng giá trị. Bước tiếp theo là các giá trị điện trở, khi được thêm vào song song, không thể có cùng điện trở với bất kỳ giá trị điện trở đơn lẻ nào. Khi các điện trở được nối song song, điện trở thu được có thể được tính bằng Rx = 1 / [(1 / R1) + (1 / R2)]. Vì vậy, nếu R1 = 2000 và R2 = 1000 thì Rx = 667. Tôi suy đoán rằng bằng cách tăng gấp đôi kích thước của mỗi điện trở, tôi sẽ không thấy cùng một điện trở cho bất kỳ sự kết hợp nào.

Vì vậy, mạch của tôi cho đến thời điểm này là có 6 công tắc, mỗi công tắc có điện trở riêng. Tuy nhiên, cần có thêm một điện trở để hoàn thành mạch này.

Điện trở cuối cùng có 3 mục đích. Đầu tiên, nó hoạt động như một điện trở kéo xuống. Nếu không có điện trở, khi không có nút nào được nhấn, mạch không hoàn chỉnh. Điều này sẽ cho phép điện áp tại Đầu vào Tương tự của Arduino nổi lên bất kỳ điện thế nào. Một điện trở kéo xuống về cơ bản là kéo điện áp xuống 0 V. Mục đích thứ hai là để hạn chế dòng điện của mạch này. Định luật Ohm phát biểu rằng V = IR, hoặc Điện áp = Dòng điện nhân với Điện trở. Với nguồn điện áp cho trước, điện trở càng lớn nghĩa là dòng điện sẽ càng nhỏ. Vì vậy, nếu tín hiệu 5V được áp dụng cho điện trở 500ohm, dòng điện lớn nhất mà chúng ta có thể thấy sẽ là 0,01A hoặc 10mA. Mục đích thứ ba là cung cấp điện áp tín hiệu. Tổng dòng điện chạy qua điện trở cuối cùng sẽ là: i = 5V / Rtotal, trong đó Rtotal = Rlast + {1 / [(1 / R1) + (1 / R2) + (1 / R3) + (1 / R4) + (1 / R5) + (1 / R6)]}. Tuy nhiên, chỉ bao gồm 1 / Rx cho mỗi Điện trở được nhấn nút tương ứng. Từ tổng dòng điện, Điện áp được cung cấp cho Đầu vào Tương tự sẽ là i * Rlast, hoặc i * 500.

Bước 2: Chứng minh - Excel

Bằng chứng - Excel
Bằng chứng - Excel

Cách nhanh nhất và dễ nhất để chứng minh rằng tôi sẽ nhận được điện trở duy nhất và do đó điện áp duy nhất với mạch này là sử dụng các khả năng của Excel.

Tôi thiết lập tất cả các kết hợp có thể có của đầu vào chuyển đổi và sắp xếp các đầu vào này tuần tự theo các mẫu nhị phân. Giá trị "1" cho biết công tắc đang bật, trống cho biết công tắc đang tắt. Ở đầu bảng tính, tôi nhập các giá trị điện trở cho mỗi công tắc và cho điện trở kéo xuống. Sau đó, tôi đã tính toán điện trở tương đương cho từng kết hợp, ngoại trừ khi tất cả các điện trở đều tắt vì những điện trở này sẽ không ảnh hưởng nếu không có nguồn điện cung cấp cho nó. Để thực hiện các phép tính của tôi dễ dàng để tôi có thể sao chép và dán vào từng kết hợp, tôi đã đưa tất cả các kết hợp vào phép tính bằng cách nhân mỗi giá trị công tắc (0 hoặc 1) với giá trị điện trở đảo ngược của nó. Làm như vậy sẽ loại bỏ điện trở của nó khỏi tính toán nếu công tắc tắt. Phương trình kết quả có thể được nhìn thấy trong hình ảnh của bảng tính, nhưng Req = Rx + 1 / (Sw1 / R1 + Sw2 / R2 + Sw3 / R3 + Sw4 / R4 + Sw5 / R5 + Sw6 / R6). Sử dụng Itotal = 5V / Req, ta xác định được tổng dòng điện qua mạch. Đây là cùng một dòng điện đi qua điện trở Kéo xuống và cung cấp cho chúng ta Điện áp cho Đầu vào Tương tự của chúng ta. Điều này được tính là Vin = Itotal x Rx. Kiểm tra cả dữ liệu Req và dữ liệu Vin, chúng ta có thể thấy rằng chúng tôi thực sự có các giá trị duy nhất.

Tại thời điểm này, có vẻ như mạch của chúng tôi sẽ hoạt động. Bây giờ để tìm ra cách lập trình Arduino.

Bước 3: Lập trình Arduino

Lập trình Arduino
Lập trình Arduino
Lập trình Arduino
Lập trình Arduino
Lập trình Arduino
Lập trình Arduino

Khi tôi bắt đầu nghĩ về cách lập trình Arduino, ban đầu tôi dự định thiết lập các dải điện áp riêng lẻ để xác định xem công tắc đang bật hay tắt. Nhưng, khi nằm trên giường vào một đêm, tôi chợt nhận ra rằng mình có thể tìm ra một phương trình để thực hiện điều này. Thế nào? EXCEL. Excel có khả năng tính toán các phương trình để phù hợp nhất với dữ liệu trong biểu đồ. Để làm điều này, tôi sẽ muốn một phương trình Giá trị nguyên của công tắc (nhị phân) so với đầu vào điện áp tương ứng với giá trị đó. Trong Sổ làm việc Excel của tôi, tôi đặt Giá trị Số nguyên xuống phía bên trái của bảng tính. Bây giờ để xác định phương trình của tôi.

Đây là hướng dẫn nhanh về cách xác định phương trình của một đường trong Excel.

1) Chọn một ô không chứa bất kỳ dữ liệu nào. Nếu bạn đã chọn một ô có dữ liệu, Excel sẽ cố gắng đoán xem bạn muốn tạo xu hướng gì. Điều này khiến việc thiết lập xu hướng trở nên khó khăn hơn nhiều, vì Excel hiếm khi dự đoán chính xác.

2) Chọn tab "Chèn" và Chọn biểu đồ "Phân tán".

3) Nhấp chuột phải vào hộp biểu đồ và nhấp vào "Chọn dữ liệu…". Thao tác này sẽ bật lên cửa sổ "Chọn Nguồn Dữ liệu". Chọn nút Thêm để tiếp tục chọn dữ liệu.

4) Đặt cho nó một Tên Dòng (Tùy chọn). Chọn Phạm vi cho Trục X bằng cách nhấp vào mũi tên lên, sau đó chọn dữ liệu Điện áp. Chọn Phạm vi cho Trục Y bằng cách nhấp vào mũi tên lên, sau đó chọn Dữ liệu Số nguyên (0-63).

5) Nhấp chuột phải vào các điểm dữ liệu và chọn "Thêm đường xu hướng…" Trong cửa sổ "Định dạng đường xu hướng", chọn nút Đa thức. Nhìn vào xu hướng, chúng ta thấy rằng Lệnh của 2 không hoàn toàn trùng khớp. Tôi đã chọn Thứ tự 3 và cảm thấy điều này chính xác hơn nhiều. Chọn hộp kiểm cho "Hiển thị phương trình trên biểu đồ". Phương trình cuối cùng bây giờ được hiển thị trên biểu đồ.

6) Đã xong.

VÂNG. Quay lại chương trình Arduino. Bây giờ chúng ta đã có phương trình, việc lập trình Arduino thật dễ dàng. Số nguyên đại diện cho các vị trí chuyển đổi được tính trong 1 dòng mã. Bằng cách sử dụng hàm "bitread", chúng ta có thể lấy giá trị của từng bit riêng lẻ và do đó biết được trạng thái của từng nút. (XEM ẢNH)

Bước 4: Mạch TinkerCAD

Mạch TinkerCAD
Mạch TinkerCAD

Nếu bạn chưa xem qua TinkerCAD Circuits, hãy làm điều đó ngay bây giờ. ĐỢI ĐÃ!!!! Đọc xong có thể hướng dẫn của tôi, và sau đó kiểm tra nó. Mạch TinkerCAD giúp kiểm tra mạch Arduino rất dễ dàng. Nó bao gồm một số đối tượng điện và Arduinos, thậm chí cho phép bạn lập trình Arduino để thử nghiệm.

Để kiểm tra mạch của mình, tôi thiết lập 6 công tắc bằng cách sử dụng gói công tắc DIP và buộc chúng vào các điện trở. Để chứng minh rằng giá trị điện áp trong Bảng tính Excel của tôi là chính xác, tôi đã hiển thị một vôn kế ở Đầu vào cho Arduino. Tất cả điều này đã hoạt động như mong đợi.

Để chứng minh rằng Lập trình Arduino hoạt động, tôi xuất trạng thái của các công tắc sang đèn LED, sử dụng các đầu ra kỹ thuật số của Arduino.

Sau đó, tôi đã chuyển mọi công tắc cho mọi sự kết hợp có thể và tự hào nói "NÓ HOẠT ĐỘNG" !!!

Bước 5: "Rất lâu, và cảm ơn vì tất cả cá." (ref.1)

Tôi vẫn chưa thử điều này bằng thiết bị thực, vì tôi hiện đang đi công tác. Nhưng, sau khi chứng minh điều đó bằng Mạch TinkerCAD, tôi tin rằng nó sẽ hoạt động. Thách thức là các giá trị của điện trở mà tôi đã chỉ định không phải là tất cả các giá trị tiêu chuẩn cho điện trở. Để giải quyết vấn đề này, tôi dự định sử dụng chiết áp và kết hợp các điện trở để có được các giá trị mà tôi cần.

Cảm ơn bạn đã đọc hướng dẫn của tôi. Tôi hy vọng rằng nó sẽ giúp bạn với các dự án của bạn.

Vui lòng để lại ý kiến nếu bạn đã cố gắng giải quyết cùng một trở ngại này và cách bạn đã giải quyết nó. Tôi rất thích tìm hiểu thêm nhiều cách để làm điều này.

Bước 6: Tham khảo

Bạn không nghĩ rằng tôi sẽ cung cấp một báo giá mà không cung cấp một tham chiếu đến nguồn của nó phải không?

giới thiệu 1: Adams, Douglas. Vì vậy, lâu dài và cảm ơn cho tất cả các cá. (Cuốn thứ 4 của "bộ ba" Hướng dẫn về Thiên hà cho Hitchhiker's)

Đề xuất: