ผู้แต่ง Instructables ภายใต้ชื่อเล่น ShaneCunningham เสนอที่จะใช้รีเลย์แบบ capacitive Arduino ซอฟต์แวร์ ในส่วนที่เพิ่มเติมจะต้องมีเซ็นเซอร์ capacitive และตัวต้านทานเท่านั้น ไม่มีตัวสร้างฮาร์ดแวร์ภายนอก ในซอฟต์แวร์ ทำที่บ้าน ที่เกี่ยวข้อง นี้ และ นี้ การพัฒนาบุคคลที่สาม
เซ็นเซอร์ capacitive - สองชั้นสามขา เจ้านายทำให้พวกเขา ทำมันเอง. สี่เหลี่ยมกระดาษแข็งที่มีด้าน 300 มม. วางด้วยฟอยล์ - นี่จะเป็นเอาต์พุตที่เชื่อมต่อกับสายสามัญ ด้านบนของมันวางสี่เหลี่ยมกระดาษแข็งด้าน 100 มม. และยังติดด้วยกระดาษฟอยล์ บนชั้นฟอยล์นั้นแบ่งออกเป็นสองส่วนตามรูปร่างคล้ายกับออสซิลโลแกรมของพัลส์รูปสี่เหลี่ยมผืนผ้า สิ่งเหล่านี้จะเป็นข้อสรุปอีกสองข้อ
เซ็นเซอร์ที่ผลิตแต่ละชิ้นจะมีตัวต้านทาน 1 MΩ หากมีเซ็นเซอร์เดียวให้เชื่อมต่อตามที่แสดงด้านล่าง หากมีหลายตัวคุณจะต้องใช้ข้อสรุปของ Arduino - สองตัวต่อเซ็นเซอร์ - และนำสิ่งนี้มาพิจารณาในร่าง
นี่คือสิ่งที่ตัวช่วยสร้างทำ:
ประกอบด้วยร่างที่ส่งข้อมูลจากเซ็นเซอร์ผ่านอินเตอร์เฟสแบบอนุกรม:
///////////////////////////////////////
void loop () {
ยาวทั้งหมด 1 = cs_4_2.capacitiveSensor (30);
Serial.println (ทั้งหมด 1);
/////////////////////////////////////////
รหัสสำหรับการสื่อสารกับการประมวลผลผ่านอนุกรม
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // ตัวต้านทาน 1M ระหว่างพิน 4 และ 2, พิน 2 เป็นพินของเซ็นเซอร์, เพิ่มลวดและหรือฟอยด์หากต้องการ
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // ตัวต้านทาน 1M ระหว่างพิน 4 และ 6, พิน 6 คือพินของเซ็นเซอร์, เพิ่มลวดและหรือฟอยล์
การตั้งค่าเป็นโมฆะ () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // ปิด autocalibrate ในช่องที่ 1 - เช่นเดียวกับตัวอย่าง
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
EstabContact (); // ส่งไบต์เพื่อสร้างที่ติดต่อจนกว่าผู้รับจะตอบกลับ
void loop () {
// ถ้าเราได้ byte ที่ถูกต้อง, อ่าน input:
if (Serial.available ()> 0) {
// รับ byte ขาเข้า:
inByte = Serial.read ();
// long start = millis ();
ยาวทั้งหมด 1 = cs_4_2.capacitiveSensor (30);
ยาวทั้งหมด 2 = cs_4_6.capacitiveSensor (30);
// ยาวทั้งหมด 3 = cs_4_8.capacitiveSensor (30);
// ล่าช้า (10);
แผนที่ val1 = (ทั้งหมด 1, 700, 2300, 0, 255); // ค่าเซ็นเซอร์จากการสอบเทียบจะถูกแมปไว้ที่นี่ - เริ่มตรวจจับความใกล้ชิดของมนุษย์ที่ 700 (4 "ออกไป), เซ็นเซอร์เกือบสัมผัสมือที่ 2300
แผนที่ val2 = (ทั้งหมด 2, 30, 175, 0, 255);
// val3 = แผนที่ (ทั้งหมด 3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// ล่าช้า (50);
}
เป็นโมฆะ establishContact () {
ในขณะที่ (Serial.available () <= 0) {
Serial.print ('A');
ล่าช้า (300); }
วิซาร์ดจัดระเบียบการวิเคราะห์ข้อมูลขาเข้าเพิ่มเติมบนพีซีในสภาพแวดล้อมการประมวลผล
แต่นี่เป็นเพียงจุดเริ่มต้นของการทดสอบ ในอนาคตคุณสามารถใช้มันเพื่อประมวลผลสัญญาณจากเซ็นเซอร์ Arduino - สิ่งเดียวกันหรือถ้าทรัพยากรไม่เพียงพออีกหนึ่ง