Tác giả của Instructables dưới biệt danh ShaneCickyham đề xuất thực hiện một rơle điện dung trên Arduino lập trình. Trong số các bộ phận bổ sung, chỉ yêu cầu cảm biến điện dung và điện trở. Không có máy phát điện phần cứng bên ngoài. Trong phần mềm tự làm tham gia cái này và cái này sự phát triển của bên thứ ba.
Cảm biến điện dung - hai lớp, ba pin. Bậc thầy làm cho họ tự làm. Một hình vuông các tông có cạnh 300 mm được dán bằng giấy bạc - đây sẽ là đầu ra được kết nối với dây chung. Trên đầu nó đặt một hình vuông bằng bìa cứng với một cạnh 100 mm, cũng được dán bằng giấy bạc. Trên đó, lớp giấy bạc được chia thành hai phần dọc theo một đường viền tương tự như một dao động của các xung hình chữ nhật. Đây sẽ là hai kết luận nữa.
Mỗi cảm biến được sản xuất được trang bị điện trở 1 MΩ. Nếu chỉ có một cảm biến, hãy kết nối nó như hình bên dưới. Nếu có một vài trong số chúng, bạn sẽ phải sử dụng kết luận Arduino - hai cho mỗi cảm biến - và tính đến điều này trong bản phác thảo.
Đây là những gì trình hướng dẫn làm:
Soạn thảo một bản phác thảo gửi dữ liệu lấy từ cảm biến thông qua giao diện nối tiếp:
///////////////////////////////////////////
void loop () {
tổng dài1 = cs_4_2.capacitiveSensor (30);
Nối tiếp.println (tổng1);
/////////////////////////////////////////////
Mã để giao tiếp với xử lý qua nối tiếp
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
Bộ cảm ứng điện dung cs_4_2 = Bộ cảm ứng điện dung (4.2); // Điện trở 1M giữa các chân 4 & 2, chân 2 là chân cảm biến, thêm dây và hoặc lá nếu muốn
Bộ cảm ứng điện dung cs_4_6 = Bộ cảm ứng điện dung (4.6); // Điện trở 1M giữa các chân 4 & 6, chân 6 là chân cảm biến, thêm dây và hoặc lá
void setup () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // tắt autocalibrate trên kênh 1 - chỉ là một ví dụ
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Nối tiếp.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
setupContact (); // gửi một byte để thiết lập liên hệ cho đến khi người nhận phản hồi
void loop () {
// nếu chúng ta nhận được một byte hợp lệ, hãy đọc các đầu vào:
if (serial.av Available ()> 0) {
// lấy byte đến:
inByte = serial.read ();
// bắt đầu dài = millis ();
tổng dài1 = cs_4_2.capacitiveSensor (30);
tổng dài2 = cs_4_6.capacitiveSensor (30);
// dài Total3 = cs_4_8.capacitiveSensor (30);
// độ trễ (10);
val1 = bản đồ (tổng1, 700, 2300, 0, 255); // giá trị cảm biến từ hiệu chuẩn được ánh xạ tới đây - bắt đầu phát hiện khoảng cách của con người ở khoảng cách 700 (4 "), tay gần chạm vào cảm biến ở 2300
val2 = bản đồ (tổng 2, 30, 175, 0, 255);
// val3 = map (tổng 3, 0, 13000, 0, 255);
Nối tiếp.write (val1);
Nối tiếp.write (val2);
//Serial.write (val3);
//Serial.print(val1);
// độ trễ (50);
}
void setupContact () {
while (serial.av Available () <= 0) {
Số sê-ri ('A');
độ trễ (300); }
Trình hướng dẫn tổ chức phân tích thêm về thông tin đến trên PC trong môi trường Xử lý.
Nhưng đây mới chỉ là khởi đầu của thí nghiệm. Trong tương lai, bạn có thể sử dụng nó để xử lý tín hiệu từ các cảm biến Arduino - điều tương tự, hoặc, nếu tài nguyên của nó không đủ, thêm một lần nữa.