- รีดสวิทช์
- ส่วนประกอบที่จำเป็น
- Arduino Reed Switch Circuit Diagram
- การทำงานของ Reed Switch กับ Arduino
- คำอธิบายรหัส
สวิทช์กกถูกนำมาใช้ในหลายของการใช้งานในชีวิตจริงเช่นสวิทช์ประตูแม่เหล็กแล็ปท็อปมาร์ทโฟนอื่น ๆ ในบทความนี้เราได้เรียนรู้เกี่ยวกับกกสวิทช์และแนะนำให้คุณอินเตอร์เฟซสวิทช์กกกับ Arduino
รีดสวิทช์
สวิตช์กกเป็นสวิตช์ ไฟฟ้า ที่ทำงานเมื่อมีการนำสนามแม่เหล็กเข้ามาใกล้ คิดค้นโดยWB Ellwoodในปีพ. ศ. 2479 ที่ห้องปฏิบัติการเบลล์ ประกอบด้วยชิ้นโลหะขนาดเล็กสองชิ้นที่เก็บไว้ในหลอดแก้วภายใต้สุญญากาศ ในสวิตช์กกทั่วไปโลหะสองชิ้นจะทำจากวัสดุแม่เหล็กไฟฟ้าและหุ้มด้วยโรเดียมหรือรูทีเนียมเพื่อให้มีอายุการใช้งานยาวนาน สวิทช์จะเปิดใช้งานเมื่อมีการปรากฏตัวของสนามแม่เหล็กรอบสวิทช์
โครงกระจกของโลหะทั้งสองชิ้นช่วยปกป้องพวกเขาจากสิ่งสกปรกฝุ่นละอองและอนุภาคอื่น ๆ สวิตช์กกสามารถใช้งานได้ในทุกสภาพแวดล้อมเช่นสภาพแวดล้อมที่มีก๊าซไวไฟหรือสภาพแวดล้อมที่การกัดกร่อนจะส่งผลต่อหน้าสัมผัสสวิตช์เปิด
มีสองประเภทของการเปลี่ยนกก
- ปกติเปิดสวิตช์กก
- ปกติปิดสวิตช์กก
ในสวิตช์กกแบบเปิดตามปกติสวิตช์จะเปิดในกรณีที่ไม่มีสนามแม่เหล็กและปิดเมื่อมีสนามแม่เหล็ก ภายใต้สนามแม่เหล็กหน้าสัมผัสโลหะสองชิ้นภายในหลอดแก้วจะดึงดูดซึ่งกันและกันเพื่อให้สัมผัสกัน
ในสวิตช์กกปิดตามปกติสวิตช์จะปิดในกรณีที่ไม่มีสนามแม่เหล็กและจะเปิดในที่ที่มีสนามแม่เหล็ก
การใช้งานของสวิตช์กก
- ใช้ในการแลกเปลี่ยนโทรศัพท์
- ในแล็ปท็อปเพื่อให้หน้าจอเข้าสู่โหมดสลีปหากปิดฝา
- ใช้ในเซ็นเซอร์หน้าต่างและประตูในระบบสัญญาณกันขโมย
ส่วนประกอบที่จำเป็น
- Arduino Uno
- รีดสวิทช์
- ตัวต้านทาน
- LED
- แม่เหล็ก
- การเชื่อมต่อสายไฟ
Arduino Reed Switch Circuit Diagram
การทำงานของ Reed Switch กับ Arduino
Arduino Uno เป็นบอร์ดไมโครคอนโทรลเลอร์โอเพนซอร์สที่ใช้ไมโครคอนโทรลเลอร์ ATmega328p มีพินดิจิตอล 14 พิน (ซึ่ง 6 พินสามารถใช้เป็นเอาต์พุต PWM ได้) อินพุตอะนาล็อก 6 ตัวควบคุมแรงดันไฟฟ้าบนบอร์ดเป็นต้น Arduino Uno มีหน่วยความจำแฟลช 32KB SRAM 2KB และ EEPROM 1KB ทำงานที่ความถี่สัญญาณนาฬิกา 16MHz Arduino Uno รองรับการสื่อสาร Serial, I2C, SPI สำหรับการสื่อสารกับอุปกรณ์อื่น ๆ ตารางด้านล่างแสดงข้อกำหนดทางเทคนิคของ Arduino Uno
ไมโครคอนโทรลเลอร์ |
ATmega328p |
แรงดันไฟฟ้าที่ใช้งาน |
5V |
แรงดันไฟฟ้าขาเข้า |
7-12V (แนะนำ) |
พิน I / O ดิจิทัล |
14 |
หมุดอะนาล็อก |
6 |
หน่วยความจำแฟลช |
32KB |
SRAM |
2KB |
EEPROM |
1KB |
ความเร็วนาฬิกา |
16MHz |
ในการเชื่อมต่อสวิตช์กกกับ Arduinoเราจำเป็นต้องสร้างวงจรแบ่งแรงดันไฟฟ้าดังแสดงในรูปด้านล่าง Vo คือ + 5V เมื่อสวิตช์เปิดและ 0V เมื่อปิดสวิตช์ เรากำลังใช้ สวิตช์กกแบบเปิดตามปกติ ในโปรเจ็กต์นี้ สวิตช์ถูกปิดในที่ที่มีสนามแม่เหล็กและเปิดอยู่ในกรณีที่ไม่มีสนามแม่เหล็ก
คำอธิบายรหัส
รหัสที่สมบูรณ์สำหรับโครงการสวิตช์ Arduino reed นี้มีให้ในตอนท้ายของบทความนี้ รหัสจะแบ่งออกเป็นส่วนเล็ก ๆ ที่มีความหมายและอธิบายไว้ด้านล่าง
ในส่วนนี้ของรหัสเราต้องกำหนดพินที่สวิตช์ Reed และ LED ซึ่งเชื่อมต่อกับ Arduino สวิตช์กกเชื่อมต่อกับพินดิจิตอล 4 ของ Arduino และ LED เชื่อมต่อกับพินดิจิทัล 7 ของ Arduino ผ่านตัวต้านทาน จำกัด กระแส ตัวแปร “ reed_status” ใช้เพื่อเก็บสถานะของสวิตช์กก
int LED = 7; int reed_switch = 4; int reed_status;
ในส่วนนี้ของรหัสเราต้องตั้งค่าสถานะของหมุดที่ LED และสวิตช์กกเชื่อมต่ออยู่ หมายเลขพิน 4 ถูกตั้งค่าเป็นอินพุตและหมายเลขพิน 7 ถูกตั้งเป็นเอาต์พุต
การตั้งค่าเป็นโมฆะ () { pinMode (LED, OUTPUT); pinMode (reed_switch, INPUT); }
ต่อไปเราจะต้องอ่านสถานะของสวิทช์กกหากมีค่าเท่ากับ 1 แสดงว่าสวิตช์เปิดอยู่และ LED จะดับลง ถ้าเท่ากับ 0 สวิตช์จะปิดและเราต้องเปิด LED กระบวนการนี้ซ้ำทุกวินาที งานนี้ทำได้โดยใช้ส่วนนี้ของรหัสด้านล่าง
โมฆะ loop () {reed_status = digitalRead (reed_switch); ถ้า (reed_status == 1) digitalWrite (LED, LOW); อื่น ๆ digitalWrite (LED, สูง); ล่าช้า (1,000); }
อย่างที่คุณเห็นว่า Reed Switch ใช้งานง่ายมากกับ Arduino