- Capacitive Touch Sensor คืออะไรและทำงานอย่างไร?
- การสร้างเซ็นเซอร์สัมผัสแบบ Capacitive สี่ทิศทาง
- วัสดุที่จำเป็นสำหรับวงจรควบคุมแบบสัมผัส ESP32
- วงจรควบคุมสำหรับ Capacitive Touch Sensor ของเรา
- การออกแบบ PCB สำหรับวงจรเซ็นเซอร์สัมผัสแบบ Capacitive
- รหัส Arduino สำหรับเซ็นเซอร์สัมผัสแบบ Capacitive ที่ใช้ ESP32
- การทดสอบวงจรเซนเซอร์สัมผัสที่ใช้ ESP32
- การปรับปรุงเพิ่มเติม
ในหลาย ๆ กรณีเซ็นเซอร์แบบสัมผัสถูกใช้แทนปุ่มกด ข้อดีคือเราไม่ต้องออกแรงกดปุ่มใด ๆ และเราสามารถเปิดใช้งานปุ่มได้โดยไม่ต้องสัมผัสโดยใช้เซ็นเซอร์สัมผัส เทคโนโลยีการตรวจจับการสัมผัสกำลังเป็นที่นิยมในแต่ละวัน และในช่วงทศวรรษที่ผ่านมามันเป็นเรื่องยากที่จะจินตนาการถึงโลกที่ปราศจากอุปกรณ์อิเล็กทรอนิกส์ที่ไวต่อการสัมผัส สามารถใช้ทั้งวิธีการสัมผัสตัวต้านทานและแบบ capacitiveเพื่อพัฒนาเซ็นเซอร์สัมผัสและในบทความนี้เราจะพูดถึงวิธีการสร้างเซ็นเซอร์สัมผัสแบบ capacitive ด้วย ESP32ก่อนหน้านี้เราได้สร้างปุ่มสัมผัสแบบ Capacitive ด้วย Raspberry pi
แม้ว่าเซ็นเซอร์สัมผัสเฉพาะแอปพลิเคชันอาจมีความซับซ้อนเล็กน้อย แต่หลักการพื้นฐานที่ใช้เทคโนโลยีนี้ยังคงเหมือนเดิมดังนั้นในบทความนี้เราจะมุ่งเน้นไปที่การพัฒนาเซ็นเซอร์สัมผัสแบบ capacitive ของเราด้วยความช่วยเหลือของESP32ที่เราชื่นชอบและชิ้นส่วนทองแดง คณะกรรมการเกราะ
ในบทช่วยสอนก่อนหน้านี้เราได้ทำการควบคุมไฟบ้านด้วยระบบสัมผัสโดยใช้ TTP223 Touch Sensor และ Arduino UNO ตอนนี้ในโครงการนี้เรากำลังสร้างเซ็นเซอร์ Touch สำหรับ ESP32แต่ก็สามารถใช้กับ Arduino ได้เช่นกัน นอกจากนี้ก่อนหน้านี้เราใช้วิธีการป้อนข้อมูลแบบสัมผัสโดยใช้ทัชแพดแบบ capacitive กับไมโครคอนโทรลเลอร์ที่แตกต่างกันเช่นปุ่มกดแบบสัมผัสการเชื่อมต่อกับไมโครคอนโทรลเลอร์ ATmega32 และทัชแพดแบบ Capacitive พร้อม Raspberry Pi คุณยังสามารถตรวจสอบได้หากสนใจ
Capacitive Touch Sensor คืออะไรและทำงานอย่างไร?
ตัวเก็บประจุมีหลายรูปแบบ สิ่งที่พบมากที่สุดครั้งหนึ่งมาในรูปแบบของบรรจุภัณฑ์ที่มีสารตะกั่วหรือชุดติดตั้งบนพื้นผิวแต่ในการสร้างความจุเราต้องใช้ตัวนำที่คั่นด้วยวัสดุอิเล็กทริก ดังนั้นจึงเป็นเรื่องง่ายที่จะสร้าง ตัวอย่างที่ดีคือตัวอย่างที่เรากำลังจะพัฒนาในตัวอย่างต่อไปนี้
เมื่อพิจารณาจากPCB ที่แกะสลักเป็นวัสดุนำไฟฟ้าสติกเกอร์จะทำหน้าที่เป็นวัสดุอิเล็กทริกดังนั้นตอนนี้ยังคงมีคำถามอยู่ว่าการสัมผัสแผ่นทองแดงทำให้ความจุเปลี่ยนไปในลักษณะที่คอนโทรลเลอร์เซ็นเซอร์สัมผัสสามารถตรวจจับได้อย่างไร? นิ้วของมนุษย์แน่นอน
สาเหตุหลักมีสองประการ: ประการแรกประการแรกมีคุณสมบัติเป็นฉนวนของนิ้วของเราประการที่สองเป็นเพราะคุณสมบัติที่เป็นสื่อกระแสไฟฟ้าของนิ้วของเรา เรากำลังจะต้องใช้การสัมผัส capacitive ตาม ดังนั้นเราจะมุ่งเน้นไปที่เซ็นเซอร์สัมผัสที่ใช้ capacitive แต่ก่อนที่เราจะพูดถึงเรื่องทั้งหมดนี้สิ่งสำคัญคือต้องทราบว่าไม่มีการนำไฟฟ้าใด ๆ เกิดขึ้นและนิ้วมีฉนวนเนื่องจากกระดาษที่ใช้ในสติกเกอร์ ดังนั้นนิ้วจึงไม่สามารถปล่อยตัวเก็บประจุได้
นิ้วทำหน้าที่เป็นอิเล็กทริก:
เป็นความรู้ทั่วไปว่าตัวเก็บประจุมีค่าคงที่ซึ่งสามารถรับรู้ได้จากพื้นที่ของแผ่นตัวนำทั้งสองระยะห่างระหว่างแผ่นเปลือกโลกและค่าคงที่ของอิเล็กทริก เราไม่สามารถเปลี่ยนพื้นที่ของตัวเก็บประจุได้เพียงแค่สัมผัส แต่เราสามารถเปลี่ยนค่าคงที่ไดอิเล็กทริกของตัวเก็บประจุได้เนื่องจากนิ้วของมนุษย์มีค่าคงที่ของอิเล็กทริกที่แตกต่างจากวัสดุที่แสดง ในกรณีของเรามันคืออากาศเรากำลังแทนที่อากาศด้วยนิ้วของเรา. หากคุณกำลังถามว่าเป็นอย่างไร เป็นเพราะค่าคงที่อิเล็กทริกของอากาศ 1006 ที่อุณหภูมิห้องระดับน้ำทะเลและค่าคงที่เป็นฉนวนของนิ้วนั้นสูงกว่ามากประมาณ 80 เนื่องจากนิ้วของมนุษย์ประกอบด้วยน้ำเป็นส่วนใหญ่ ดังนั้นการทำงานร่วมกันของนิ้วกับสนามไฟฟ้าของตัวเก็บประจุทำให้ค่าคงที่ของอิเล็กทริกเพิ่มขึ้นดังนั้นความจุจึงเพิ่มขึ้น
ตอนนี้เราเข้าใจหลักการแล้วเรามาดูการสร้าง PCB จริงกัน
การสร้างเซ็นเซอร์สัมผัสแบบ Capacitive สี่ทิศทาง
เซ็นเซอร์สัมผัส capacitiveใช้ในโครงการนี้มีสี่ช่องและมันเป็นเรื่องง่ายที่จะทำให้ ด้านล่างนี้เราได้กล่าวถึงขั้นตอนโดยละเอียดในการสร้าง
ขั้นแรกเราสร้าง PCB สำหรับเซ็นเซอร์ด้วยความช่วยเหลือของเครื่องมือออกแบบ Eagle PCBซึ่งมีลักษณะคล้ายกับภาพด้านล่าง
ด้วยความช่วยเหลือของมิติข้อมูลและ Photoshopเราสร้างเทมเพลตและสุดท้ายสติกเกอร์สำหรับเซ็นเซอร์ซึ่งมีลักษณะคล้ายกับภาพด้านล่าง
ตอนนี้เมื่อเราทำสติกเกอร์เสร็จแล้วเราก็ไปสร้างเทมเพลตบอร์ดหุ้มจริงที่เราจะใช้ในการสร้าง PCB ของเราซึ่งมีลักษณะคล้ายกับภาพด้านล่าง
ตอนนี้เราสามารถพิมพ์ไฟล์นี้และดำเนินการตามขั้นตอนการทำ PCB แบบโฮมเมดได้ หากคุณยังใหม่คุณสามารถอ่านบทความเกี่ยวกับวิธีสร้าง PCB ที่บ้าน คุณยังสามารถดาวน์โหลดไฟล์ PDF และ Gerber ที่ต้องการได้จากลิงค์ด้านล่าง
- ไฟล์ GERBER สำหรับ Four Channel Capacitive Touch Sensor
เมื่อเสร็จแล้ว Etched PCB จริงจะมีลักษณะดังภาพด้านล่าง
ตอนนี้ถึงเวลาเจาะรูแล้วเราเชื่อมต่อสายไฟกับ PCB เพื่อให้เราสามารถเชื่อมต่อกับบอร์ด ESP32 เมื่อทำเสร็จแล้วจะมีลักษณะดังภาพด้านล่าง
เนื่องจากเราไม่ได้ใส่เข้าไปใน PCB การบัดกรีจึงไปทั่วในขณะที่บัดกรีเราจึงแก้ไขข้อผิดพลาดของเราโดยใส่รูเจาะบน PCB ซึ่งคุณสามารถพบได้ในส่วนดาวน์โหลดด้านบน ในที่สุดก็ถึงเวลาติดสติกเกอร์และทำให้เสร็จ ซึ่งมีลักษณะคล้ายกับภาพด้านล่าง
ตอนนี้เราทำกับแผงสัมผัสเสร็จแล้วก็ถึงเวลาสร้างวงจรควบคุมสำหรับแผงสัมผัส
วัสดุที่จำเป็นสำหรับวงจรควบคุมแบบสัมผัส ESP32
ส่วนประกอบที่จำเป็นในการสร้างส่วนคอนโทรลเลอร์โดยใช้ ESP32 มีให้ด้านล่างนี้คุณควรจะพบส่วนประกอบส่วนใหญ่ในร้านขายอุปกรณ์งานอดิเรกในพื้นที่
ฉันได้แสดงรายการส่วนประกอบในตารางด้านล่างพร้อมประเภทและปริมาณที่ต้องการเนื่องจากเราเชื่อมต่อเซ็นเซอร์สัมผัสสี่ช่องสัญญาณและควบคุมโหลด AC สี่ตัวเราจะใช้รีเลย์ 4 ตัวเพื่อเปลี่ยนโหลด AC และทรานซิสเตอร์ 4 ตัวเพื่อสร้างรีเลย์ วงจรไดรเวอร์
ส. เลขที่ |
อะไหล่ |
ประเภท |
ปริมาณ |
1 |
รีเลย์ |
สวิตซ์ |
4 |
2 |
BD139 |
ทรานซิสเตอร์ |
4 |
3 |
ขั้วเกลียว |
ขั้วเกลียว 5 มม. x 2 |
4 |
4 |
1N4007 |
ไดโอด |
5 |
5 |
0.1 ยูเอฟ |
คาปาซิเตอร์ |
1 |
6 |
100uF, 25V |
คาปาซิเตอร์ |
2 |
7 |
LM7805 |
ตัวควบคุมแรงดันไฟฟ้า |
1 |
8 |
1 พัน |
ตัวต้านทาน |
4 |
9 |
560R |
ตัวต้านทาน |
4 |
10 |
LED สีเหลืองอำพัน |
LED |
4 |
11 |
ส่วนหัวชาย |
ตัวเชื่อมต่อ |
4 |
12 |
ส่วนหัวหญิง |
ตัวเชื่อมต่อ |
30 |
13 |
LED สีแดง |
LED |
1 |
14 |
บอร์ด ESP32 Dev V1.0 |
บอร์ด ESP32 |
1 |
12 |
คณะกรรมการหุ้ม |
ทั่วไป 50x 50 มม |
1 |
13 |
สายจัมเปอร์ |
สายไฟ |
4 |
14 |
การเชื่อมต่อสายไฟ |
สายไฟ |
5 |
วงจรควบคุมสำหรับ Capacitive Touch Sensor ของเรา
ภาพด้านล่างแสดงแผนภาพวงจรทั้งหมดสำหรับเซ็นเซอร์สัมผัสที่ใช้ ESP32ของเรา
อย่างที่คุณเห็นมันเป็นวงจรที่เรียบง่ายและต้องการส่วนประกอบขั้นต่ำมาก
เนื่องจากเป็นวงจรเซ็นเซอร์แบบสัมผัสที่เรียบง่ายจึงมีประโยชน์ในสถานที่ที่คุณต้องการโต้ตอบกับอุปกรณ์ผ่านการสัมผัสเช่นแทนที่จะใช้สวิตช์ที่ติดตั้งบนบอร์ดทั่วไปคุณสามารถเปิด / ปิดเครื่องใช้ของคุณด้วยการสัมผัส
ในแผนผังนั้นแจ็คบาร์เรล DC ถูกใช้เป็นอินพุตที่เราให้พลังงานที่จำเป็นในการจ่ายไฟให้กับวงจรจากนั้นเรามีตัวควบคุมแรงดันไฟฟ้า 7805 ของเราซึ่งจะแปลงอินพุต DC ที่ไม่ได้ควบคุมเป็น 5V DC คงที่ซึ่งเราจัดหาให้ กำลังให้กับโมดูล ESP32
ถัดไปในแผนผังเรามีตัวเชื่อมต่อระบบสัมผัสที่พิน 25, 26, 27, 28 ซึ่งเราจะเชื่อมต่อทัชแพด
ต่อไปเรามีรีเลย์ของเราซึ่งเปลี่ยนผ่านทรานซิสเตอร์ BD139, ไดโอด D2, D3, D4, D5 เพื่อป้องกันวงจรจากแรงดันไฟฟ้าชั่วคราวใด ๆ ที่สร้างขึ้นเมื่อรีเลย์สลับไดโอดในการกำหนดค่านี้เรียกว่า ไดโอดบินกลับ / ไดโอดอิสระ ตัวต้านทาน 560R ที่ฐานของทรานซิสเตอร์แต่ละตัวใช้เพื่อ จำกัด การไหลของกระแสผ่านฐาน
การออกแบบ PCB สำหรับวงจรเซ็นเซอร์สัมผัสแบบ Capacitive
PCB วงจรเซ็นเซอร์สัมผัสของเราได้รับการออกแบบมาสำหรับคณะกรรมการด้านเดียวเราใช้ Eagle เพื่อออกแบบ PCB ของฉัน แต่คุณสามารถใช้ซอฟต์แวร์ออกแบบใดก็ได้ที่คุณต้องการ ภาพ 2D ของการออกแบบบอร์ดของเราแสดงอยู่ด้านล่าง
ใช้เส้นผ่านศูนย์กลางการติดตามที่เพียงพอในการสร้างรางไฟฟ้าซึ่งใช้ในการไหลของกระแสผ่านแผงวงจร เราวางขั้วสกรูไว้ที่ด้านบนเพราะง่ายกว่ามากในการเชื่อมต่อโหลดของคุณด้วยวิธีนั้นและขั้วต่อสายไฟซึ่งเป็นแจ็คกระบอกสูบ DCถูกวางไว้ที่ด้านข้างซึ่งช่วยให้เข้าถึงได้ง่าย ไฟล์ออกแบบที่สมบูรณ์สำหรับ Eagle พร้อมกับ Gerber สามารถดาวน์โหลดได้จากลิงค์ด้านล่าง
- GERBER สำหรับวงจรควบคุมเซนเซอร์สัมผัสที่ใช้ ESP32
ขณะที่การออกแบบของเราพร้อมที่, เวลาในการแกะสลักและการประสานคณะกรรมการหลังจากเสร็จสิ้นกระบวนการแกะสลักการเจาะและการบัดกรีบอร์ดจะมีลักษณะดังภาพที่แสดงด้านล่าง
รหัส Arduino สำหรับเซ็นเซอร์สัมผัสแบบ Capacitive ที่ใช้ ESP32
สำหรับโครงการนี้เราจะตั้งโปรแกรม ESP32 ด้วยโค้ดที่กำหนดเองซึ่งเราจะอธิบายในไม่ช้า รหัสนี้ง่ายมากและใช้งานง่าย
เราเริ่มต้นด้วยการกำหนดพินที่จำเป็นทั้งหมดในกรณีของเราเรากำหนดพินสำหรับเซ็นเซอร์สัมผัสและรีเลย์ของเรา
#define Relay_PIN_1 15 # กำหนดรีเลย์ _PIN_2 2 # กำหนดรีเลย์ _PIN_3 4 # กำหนดรีเลย์ _PIN_4 16 # กำหนด TOUCH_SENSOR_PIN_1 13 # กำหนด TOUCH_SENSOR_PIN_2 12 # กำหนด TOUCH_SENSOR_PIN_3 14 # กำหนดค่าเซ็นเซอร์ 27
ต่อไปในส่วนการตั้งค่าเราเริ่มต้นด้วยการเริ่มต้น UART สำหรับการดีบักต่อไปเราได้แนะนำความล่าช้า 1S ซึ่งทำให้เรามีเวลาเล็กน้อยในการเปิดหน้าต่าง Serial Monitor ต่อไปเราจะใช้ Arduinos pinMode ฟังก์ชั่นที่จะทำให้ขารีเลย์เป็นผลผลิตซึ่งเป็นจุดสิ้นสุดของ การตั้งค่า () ส่วน
การตั้งค่าเป็นโมฆะ () {Serial.begin (115200); ล่าช้า (1,000); pinMode (Relay_PIN_1, เอาท์พุท); pinMode (Relay_PIN_2, เอาท์พุท); pinMode (Relay_PIN_3, เอาท์พุท); pinMode (Relay_PIN_4, เอาท์พุท); }
เราเริ่มต้นส่วนการ วนซ้ำ ของเราด้วยคำสั่ง if ซึ่งจะใช้ฟังก์ชัน touchRead (pin_no) ในตัวเพื่อตรวจสอบว่าหมุดถูกแตะหรือไม่ touchRead (pin_no) ฟังก์ชั่นส่งกลับช่วงค่าจำนวนเต็ม (0 - 100), การเข้าพักค่าใกล้ 100 ตลอดเวลา แต่ถ้าเราสัมผัสขาเลือกที่มูลค่าลดลงไปใกล้ศูนย์และด้วยความช่วยเหลือของมูลค่าการเปลี่ยนแปลงที่ เราสามารถตรวจสอบได้ว่าหมุดนั้นถูกนิ้วหรือไม่
ในคำสั่ง if เรากำลังตรวจสอบการเปลี่ยนแปลงของค่าจำนวนเต็มและหากค่าถึงต่ำกว่า 28 เราสามารถมั่นใจได้ว่าเราได้รับทราบการสัมผัส เมื่อ คำสั่ง if กลายเป็นจริงเรารอ 50ms และตรวจสอบพารามิเตอร์อีกครั้งซึ่งจะช่วยให้เราตรวจสอบได้ว่าค่าเซ็นเซอร์ถูกทริกเกอร์ผิดหรือไม่หลังจากนั้นเราจะกลับสถานะของพินโดยใช้ digitalWrite (Relay_PIN_1,! digitalRead (Relay_PIN_1)) และส่วนที่เหลือของรหัสจะยังคงเหมือนเดิม
ถ้า (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("เซ็นเซอร์ตัวหนึ่งถูกสัมผัส"); digitalWrite (Relay_PIN_1,! digitalRead (Relay_PIN_1)); }} else if (touchRead (TOUCH_SENSOR_PIN_2) <28) {if (touchRead (TOUCH_SENSOR_PIN_2) <28) {Serial.println ("เซ็นเซอร์สองถูกสัมผัส"); digitalWrite (Relay_PIN_2,! digitalRead (Relay_PIN_2)); }} else if (touchRead (TOUCH_SENSOR_PIN_3) <28) {if (touchRead (TOUCH_SENSOR_PIN_3) <28) {Serial.println ("เซ็นเซอร์สามถูกสัมผัส"); digitalWrite (Relay_PIN_3,! digitalRead (Relay_PIN_3)); }} else if (touchRead (TOUCH_SENSOR_PIN_4) <28) {if (touchRead (TOUCH_SENSOR_PIN_4) <28) {Serial.println ("เซนเซอร์โฟร์ถูกสัมผัส"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
ในที่สุดเราก็สิ้นสุดรหัสของเราด้วยความล่าช้าในการบล็อกอีก 200 ms
การทดสอบวงจรเซนเซอร์สัมผัสที่ใช้ ESP32
เนื่องจากนี่เป็นโครงการที่เรียบง่ายมากชุดทดสอบจึงง่ายมากอย่างที่คุณเห็นฉันได้เชื่อมต่อ LED 4 ดวงที่มีตัวต้านทานซึ่งทำหน้าที่เป็นโหลดเนื่องจากเชื่อมต่อกับรีเลย์คุณจึงสามารถเชื่อมต่อโหลดใด ๆ ได้ถึง 3Amps
การปรับปรุงเพิ่มเติม
แม้ว่า PCB จะเรียบง่าย แต่ก็ยังมีช่องว่างสำหรับการปรับปรุงดังที่คุณเห็นจากด้านล่างของ PCB จริงฉันได้เชื่อมต่อตัวต้านทานหลายตัวเพื่อพยายามเชื่อมต่อ LED บ่งชี้สี่ตัวและขนาดของ PCB ก็สามารถลดลงได้เช่นกันหากเป็นเช่นนั้น กลายเป็นข้อกำหนด
หวังว่าคุณจะสนุกกับบทความและเรียนรู้สิ่งที่เป็นประโยชน์ หากคุณมีคำถามใด ๆ คุณสามารถฝากไว้ในส่วนความคิดเห็นด้านล่างหรือใช้ฟอรัมของเราเพื่อโพสต์คำถามทางเทคนิคอื่น ๆ