Mục lục:

Cảm biến cảm ứng điện trở 5 dây: 10 bước
Cảm biến cảm ứng điện trở 5 dây: 10 bước

Video: Cảm biến cảm ứng điện trở 5 dây: 10 bước

Video: Cảm biến cảm ứng điện trở 5 dây: 10 bước
Video: Cảm biến Hall hoạt động như thế nào? | Học Nghề Kỹ Sư Điện & Điện Tử 2024, Tháng bảy
Anonim
Cảm biến cảm ứng điện trở 5 dây
Cảm biến cảm ứng điện trở 5 dây

Xin chào!

Đã một thời gian kể từ khi tôi làm việc trên trang web này và có vẻ như nó đã thay đổi rất nhiều! Cuối cùng thì tôi cũng đã sẵn sàng quay lại tay lái cho một dự án khác và tôi nghĩ đã đến lúc phải thay đổi mọi thứ một chút!

Tôi đã từng nghĩ đến một dự án dựa trên Tấm và Quả bóng của 271828, nhưng tôi còn phải tìm hiểu rất nhiều về cảm biến và lý thuyết điều khiển trước khi nó hoàn thành. Tôi đã nghĩ rằng chỉ cần tôi học được một hoặc hai điều, tôi có thể đưa các bạn đi cùng!

Vì vậy, mục tiêu của tôi cho những hướng dẫn này sẽ là một loại kết hợp giữa các hướng dẫn trau chuốt hơn của tôi và một bản ghi cho chính dự án. Mỗi hướng dẫn riêng lẻ sẽ là một bước trong hành trình đó và sẽ bao gồm các chi tiết mà tôi đã đề cập trong quá khứ, chẳng hạn như phát triển mã (thay vì chỉ hoàn thành mã) và những bước sai lầm mà tôi thực hiện trong suốt quá trình.

Tôi rất hào hứng với dự án mới này và tôi muốn xem nó hoạt động tốt như thế nào!

Hôm nay chúng ta sẽ giới thiệu một bảng điều khiển cảm ứng 5 dây đơn giản hoạt động với DP-32.

Bắt đầu nào!

Bước 1: Những gì bạn cần

Những gì bạn cần
Những gì bạn cần

Vì hướng dẫn này là về cách làm cho một cảm biến duy nhất hoạt động, bạn sẽ không cần nhiều thứ ngoài bộ vi điều khiển và bảng điều khiển cảm ứng.

  • Một bộ vi điều khiển.

    Tôi đang sử dụng DP32 của mình có tích hợp bảng mạch bánh mì vì nó làm cho việc tạo mẫu trở nên vô cùng đơn giản

  • Dây và cáp các loại.

    Tôi có thể đã sử dụng cáp ribbon tích hợp của bảng điều khiển cảm ứng, nhưng nếu nó bị rách thì toàn bộ bảng điều khiển sẽ vô dụng. Thay vào đó, tôi đang sử dụng cáp 6 dây để giảm căng thẳng cho cáp tích hợp

  • Bảng điều khiển cảm ứng điện trở 5 dây tiêu chuẩn!

    Tôi có một bảng điều khiển cảm ứng điện trở 4 dây, nhưng cáp ruy-băng cho nó bị đứt

Và đó là nó!

Bước 2: Bảng điều khiển cảm ứng điện trở 5 dây là gì?

Bảng điều khiển cảm ứng điện trở 5 dây là gì?
Bảng điều khiển cảm ứng điện trở 5 dây là gì?
Bảng điều khiển cảm ứng điện trở 5 dây là gì?
Bảng điều khiển cảm ứng điện trở 5 dây là gì?
Bảng điều khiển cảm ứng điện trở 5 dây là gì?
Bảng điều khiển cảm ứng điện trở 5 dây là gì?

Nếu bạn đã đọc qua hướng dẫn bảng điều khiển cảm ứng 4 dây của tôi, bạn sẽ quen với ý tưởng chung về cảm biến cảm ứng điện trở, nhưng bảng 5 dây và bảng 4 dây hoạt động hơi khác một chút.

Tôi thích bảng điều khiển này vì bạn có thể nhìn thấy tất cả các dấu vết của dây, giúp bạn dễ dàng xem những gì hoạt động. Trong bức tranh đầu tiên, tôi đã tô màu từng dấu vết khác nhau. Bạn có thể thấy rằng bốn trong số các dây (hồng, vàng, cam và tím) mỗi dây đi vào một trong bốn góc. Dây giữa (màu đỏ) đi đến bảng điều khiển cảm biến linh hoạt.

Trong hình thứ hai, Chúng tôi đã đặt hai trong số bốn dây (trên cùng bên phải và dưới cùng bên phải) thành điện áp cao (hiển thị màu đỏ), trong khi hai dây còn lại (trên cùng bên trái và dưới cùng bên trái) được đặt ở mức thấp điện áp (hiển thị màu xanh lam). Điều này tạo ra một gradient của điện áp trên toàn bộ bảng điều khiển. Trong trường hợp này, gradient đi dọc theo trục X, do đó, điện áp cao hơn thể hiện vị trí cao hơn dọc theo trục X.

Khi chúng ta chạm ngón tay vào bảng điều khiển, điều đó sẽ làm giảm cảm biến linh hoạt, kết nối với một nơi nào đó dọc theo trục X. Cảm biến điện áp trên bộ vi điều khiển của chúng tôi có thể cảm nhận được điện áp này và cho bạn biết vị trí trên trục X mà ngón tay của bạn đang chạm vào!

Trong hình thứ ba, bạn có thể thấy cấu hình thay đổi như thế nào để cho phép chúng ta cảm nhận dọc theo trục Y. Bằng cách này, chúng ta có thể biết vị trí trong không gian 2-D mà ngón tay của chúng ta đang chạm vào!

Bước 3: Đấu dây

Đấu dây
Đấu dây
Đấu dây
Đấu dây

Như bạn có thể thấy trong các hình trên, tôi đã kết nối bốn góc của mình mỗi góc với chân đầu ra kỹ thuật số của riêng chúng. Điều đó sẽ cho phép tôi đặt chúng riêng lẻ thành cao hoặc thấp. Chân cảm biến của tôi được kết nối với chân đầu vào tương tự. Điều thú vị về màn hình cảm ứng 5 dây, trái ngược với 4 dây, là bạn chỉ cần một chân analog, trong khi màn hình 4 dây sẽ yêu cầu 2.

Tất nhiên, hệ thống dây điện của bạn có thể khác nhau, nhưng hệ thống dây điện của tôi như sau:

Analog 0 (chân 6) kết nối với Cảm biến (chân giữa)

Kỹ thuật số 3 kết nối với trên cùng bên phải (chân trên cùng)

Kỹ thuật số 2 kết nối với trên cùng bên trái (chân trên cùng thứ hai)

Kỹ thuật số 1 kết nối với Bottom-Left (chân dưới cùng thứ hai)

Kỹ thuật số 0 kết nối với Bottom-Right (chân trên cùng)

Một lần nữa cần lưu ý rằng tôi đang sử dụng cáp 6 dây để đi giữa bộ vi điều khiển và bảng điều khiển. Tôi đã để chốt trên cùng của cáp này không được kết nối.

Bước 4: Phát triển phần mềm

Phát triển phần mềm
Phát triển phần mềm

Trước đây, tôi thường đưa ra một tệp phần mềm đã hoàn chỉnh để bạn sử dụng, có thể chỉ với một đoạn giới thiệu ngắn gọn về những gì mọi thứ hoạt động. Tôi không thích điều đó. Tôi muốn loạt bài này nói về các dự án đang được phát triển và cuối cùng tôi sẽ bao gồm quá trình phát triển thực tế của phần mềm này từ đầu đến cuối.

Như thường lệ, tôi sẽ sử dụng Arduino IDE, với lõi Digilent. Mỗi phần sẽ bao gồm một tệp mã, ảnh chụp màn hình, cũng như mô tả về các phần bổ sung và những gì chúng tôi đang cố gắng đạt được.

Hiện tại, tôi đang bắt đầu với một chương trình nhấp nháy kiểu trì hoãn đơn giản, giống hệt như những gì bạn tìm thấy trong thư mục Ví dụ. Nếu bạn đọc tiêu đề dài dòng mà tôi đã viết, bạn sẽ thấy rằng mỗi bước trong quy trình này sẽ sửa đổi chương trình để đưa nó đến gần hơn với mục tiêu cuối cùng của chúng ta.

Bước 5: Trạng thái máy nhấp nháy

Máy trạng thái nhấp nháy
Máy trạng thái nhấp nháy

Động thái đầu tiên của tôi là thay đổi chức năng nhấp nháy từ một chức năng dựa trên "delay ()" thành một máy trạng thái.

Đối với những người không được sử dụng để chuyển đổi câu lệnh, nó hoạt động tương tự như một câu lệnh if. Điều này (trong hộp màu cam) kiểm tra biến "trạng thái" của chúng tôi (bắt đầu từ 0). Sau đó, nó chuyển sang trường hợp cho trạng thái hiện tại của chúng ta. Bạn sẽ thấy rằng trường hợp 0 và 2 chịu trách nhiệm bật và tắt đèn LED (tương ứng), trong khi trường hợp 1 và 3 chịu trách nhiệm chờ giữa các công tắc.

Bước 6: Nút nhấp nháy

Nút nhấp nháy
Nút nhấp nháy
Nút nhấp nháy
Nút nhấp nháy
Nút nhấp nháy
Nút nhấp nháy

Tiếp theo, tôi muốn nút được sử dụng để nhấp nháy đèn. Thay vì làm phức tạp điều này, tôi chỉ di chuyển tất cả các trạng thái xuống một (trạng thái 0 trở thành trạng thái 1, v.v.). Khi thực hiện việc này, hãy cẩn thận tăng các trạng thái thoát cũng như trạng thái của chính nó (xem hình 3).

Tôi cũng đã xóa trạng thái "chờ đợi" thứ hai. Điều đó có nghĩa là nút bật đèn trong một giây và bạn có thể nhấn lại nút ngay sau khi nó tắt.

Điều đáng chú ý là hệ thống này sẽ tự động gỡ lỗi nút cho chúng tôi, vì chúng tôi phải đợi đèn LED tắt trước khi trở về trạng thái 0 nơi nút có thể kích hoạt lại chu kỳ.

Bước 7: Giao tiếp nối tiếp

Truyền thông nối tiếp
Truyền thông nối tiếp
Truyền thông nối tiếp
Truyền thông nối tiếp

Bản cập nhật này rất nhỏ. Tất cả những gì tôi muốn làm là thiết lập kết nối Serial và gửi tin nhắn. Trong hình đầu tiên, bạn có thể thấy rằng tôi bắt đầu Serial trong hàm setup (). Bên trong máy trạng thái của chúng tôi, tôi đã thêm các dòng vào trạng thái 1 và 3 sẽ gửi các tin nhắn đơn giản đến máy tính thông qua nối tiếp.

Bước 8: Đọc tọa độ

Đọc tọa độ
Đọc tọa độ
Đọc tọa độ
Đọc tọa độ
Đọc tọa độ
Đọc tọa độ
Đọc tọa độ
Đọc tọa độ

Thật tốt khi bước cuối cùng dễ dàng, bởi vì bước này là một sự ngu ngốc.

Để bắt đầu, tôi đã thêm các biến số cho bảng điều khiển cảm ứng của chúng tôi, bao gồm một số biến số thời gian dành riêng cho cả bảng điều khiển cảm ứng và nút của chúng tôi. Bạn sẽ thấy lý do tại sao trong một chút.

Tôi đã viết lại hoàn toàn máy trạng thái. Nó hơi khó hiểu khi nhìn vào mã, vì vậy tôi đã bao gồm một sơ đồ khối sẽ minh họa những gì đã được thực hiện.

Những điều cần lưu ý: Có ba bước "chờ đợi" bây giờ. Một cho mỗi cấu hình của bảng điều khiển cảm ứng, để để điện áp ổn định trước khi thực hiện phép đo và một để cho nút thời gian ngắt đúng cách. Các bước chờ đợi này là lý do tại sao tôi muốn cung cấp cho cả nút và bảng điều khiển cảm ứng các biến thời gian của riêng chúng.

Lưu ý: Hằng số DEBOUNCE_TIME có thể hơi thấp. Hãy tăng nó lên.

Bước 9: Dọn dẹp

Dọn dẹp
Dọn dẹp
Dọn dẹp
Dọn dẹp
Dọn dẹp
Dọn dẹp

Chúng tôi đã đến phiên bản cuối cùng của mã cho dự án này!

Để bắt đầu, tôi đã thêm một hàm có tên loop_diff () để tính thời gian đã trôi qua. Đồng hồ bên trong cho DP32 là một khoảng thời gian dài không được đánh dấu và mặc dù điều đó cực kỳ khó xảy ra, nhưng có khả năng đồng hồ có thể lặp lại đôi khi trong thời gian chạy của mã này *. Trong trường hợp đó, chỉ cần trừ thời gian hiện tại với thời gian được lưu trong btn_time hoặc panel_time sẽ cho chúng ta một điều gì đó kỳ lạ, vì vậy tôi đã viết loop_diff () để phát hiện khi các vòng lặp xảy ra và xử lý theo đó.

Tôi cũng đã làm một chút dọn dẹp nhỏ. Tôi đã xóa biến "state_time" hiện không được sử dụng. Tôi đã chuyển từ thẻ LED_BUILTIN (là một tiêu chuẩn Arduino) sang thẻ PIN_LED1 (tiêu chuẩn cho chipKit và DP32). Tôi cũng đã xóa tất cả các thông báo qua Serial về việc bắt đầu và kết thúc quá trình, điều này làm cho dữ liệu của chúng tôi thông qua Serial sạch hơn nhiều.

* Tôi đã làm toán cách đây nhiều năm và tôi nghĩ rằng đối với hàm millis (), nó sẽ mất một tuần thời gian chạy liên tục trước khi biến sẽ lặp lại.

Bước 10: Kết luận

Lời kết
Lời kết

Và đó là nó!

Nếu bạn đã làm theo, bây giờ bạn sẽ có một bảng điều khiển cảm ứng đang hoạt động được kết nối với bộ vi điều khiển của bạn! Đây là một dự án nhỏ, nhưng nó là một phần của một dự án lớn hơn. Tôi đang hướng tới một thứ như Đĩa và Bóng của 271828, và tôi còn một chặng đường dài trước khi điều đó xảy ra. Tôi sẽ cố gắng hướng dẫn bạn trong toàn bộ quá trình và mỗi phần phải là một dự án nhỏ của riêng nó.

Đây là một quá trình học hỏi của tôi, vì vậy hãy để lại suy nghĩ và đề xuất của bạn trong phần bình luận bên dưới.

Cảm ơn và hẹn gặp lại bạn lần sau!

Đề xuất: