- วัสดุที่ต้องการ:
- เซนเซอร์ Hall Effect:
- แผนภาพวงจรและคำอธิบาย:
- Hall Effect Sensor Arduino รหัส:
- Arduino Hall Effect Sensor ทำงาน:
เซนเซอร์เป็นส่วนประกอบที่สำคัญในโครงการใด ๆ นี่คือข้อมูลที่แปลงข้อมูลสิ่งแวดล้อมแบบเรียลไทม์เป็นข้อมูลดิจิทัล / ตัวแปรเพื่อให้สามารถประมวลผลด้วยอุปกรณ์อิเล็กทรอนิกส์ได้ มีเซ็นเซอร์ประเภทต่างๆมากมายในตลาดและคุณสามารถเลือกได้ตามความต้องการของคุณ ในโครงการนี้เราจะได้เรียนรู้วิธีการใช้เซ็นเซอร์ฮอลล์อาคาเซ็นเซอร์ผลฮอลล์กับ Arduino เซ็นเซอร์นี้สามารถตรวจจับแม่เหล็กและขั้วของแม่เหล็กได้
ทำไมต้องตรวจจับแม่เหล็ก คุณอาจถาม มีแอพพลิเคชั่นมากมายที่ใช้เซ็นเซอร์ Hall Effect ในทางปฏิบัติและเราอาจไม่เคยสังเกตเห็นมาก่อน การใช้งานทั่วไปอย่างหนึ่งของเซ็นเซอร์นี้คือการวัดความเร็วในจักรยานหรือเครื่องหมุนใด ๆ เซ็นเซอร์นี้ยังใช้ในมอเตอร์ BLDC เพื่อตรวจจับตำแหน่งของ Rotor Magnets และเรียกขดลวดสเตเตอร์ตามนั้น แอปพลิเคชันไม่มีที่สิ้นสุดดังนั้นเรามาเรียนรู้วิธีการเชื่อมต่อเซนเซอร์ Hall Hall Arduinoเพื่อเพิ่มเครื่องมืออื่นในคลังแสงของเรา นี่คือโครงการบางส่วนที่มีเซ็นเซอร์ Hall:
- DIY Speedometer โดยใช้ Arduino และการประมวลผลแอพ Android
- วงจรวัดความเร็วแบบดิจิตอลและเครื่องวัดระยะทางโดยใช้ไมโครคอนโทรลเลอร์ PIC
- ความจริงเสมือนโดยใช้ Arduino และการประมวลผล
- การวัดความแรงของสนามแม่เหล็กโดยใช้ Arduino
ในบทช่วยสอนนี้เราจะใช้ฟังก์ชั่นขัดจังหวะของ Arduino เพื่อตรวจจับแม่เหล็กที่อยู่ใกล้กับเซ็นเซอร์ Hall และเรืองแสง LED เซ็นเซอร์ Hall ส่วนใหญ่จะใช้กับอินเทอร์รัปต์เท่านั้นเนื่องจากแอปพลิเคชันของพวกเขาต้องการความเร็วในการอ่านและการดำเนินการสูงดังนั้นให้เราใช้อินเทอร์รัปต์ในบทช่วยสอน
วัสดุที่ต้องการ:
- Hall Effect Sensor (เวอร์ชันดิจิตอลใด ๆ)
- Arduino (ทุกรุ่น)
- 10k ohm และ 1K ohm Resistor
- LED
- การเชื่อมต่อสายไฟ
เซนเซอร์ Hall Effect:
ก่อนที่เราจะดำดิ่งสู่การเชื่อมต่อมีสิ่งสำคัญบางประการที่คุณควรรู้เกี่ยวกับเซ็นเซอร์ Hall Effect มีจริงสองชนิดที่แตกต่างกันของฮอลล์เซ็นเซอร์หนึ่ง คือเซ็นเซอร์ดิจิตอลฮอลล์และอื่น ๆ เป็นอนาล็อกเซ็นเซอร์ฮอลล์เซ็นเซอร์ฮอลล์ดิจิตอลสามารถตรวจจับได้ว่าแม่เหล็กมีอยู่หรือไม่ (0 หรือ 1) แต่เอาท์พุทของเซ็นเซอร์ฮอลล์แบบอะนาล็อกจะแตกต่างกันไปตามสนามแม่เหล็กรอบ ๆ แม่เหล็กซึ่งสามารถตรวจจับได้ว่าแม่เหล็กนั้นแรงแค่ไหน ในโครงการนี้จะมุ่งเป้าไปที่เซ็นเซอร์ Hall แบบดิจิทัลเท่านั้นเนื่องจากเป็นเซ็นเซอร์ที่ใช้กันมากที่สุด
ตามชื่อที่บ่งบอกว่าเซ็นเซอร์ Hall Effect ทำงานร่วมกับหลักการของ“ Hall effect” ตามกฎหมายนี้ "เมื่อนำตัวนำหรือเซมิคอนดักเตอร์ที่มีกระแสไหลไปในทิศทางเดียวตั้งฉากกับสนามแม่เหล็กแรงดันไฟฟ้าสามารถวัดได้ที่มุมฉากกับเส้นทางปัจจุบัน" การใช้เทคนิคนี้เซ็นเซอร์ฮอลล์จะสามารถตรวจจับการมีแม่เหล็กอยู่รอบ ๆ พอเป็นทฤษฎีแล้วเรามาดูฮาร์ดแวร์กันเถอะ
แผนภาพวงจรและคำอธิบาย:
แผนภาพวงจรที่สมบูรณ์สำหรับการเชื่อมต่อเซ็นเซอร์ Hall กับ Arduinoมีอยู่ด้านล่าง
อย่างที่คุณเห็นแผนภาพวงจร arduino เซ็นเซอร์เอฟเฟกต์ฮอลล์นั้นค่อนข้างเรียบง่าย แต่สถานที่ที่เรามักจะทำผิดพลาดคือการหาหมายเลขพินของเซ็นเซอร์ฮอลล์ วางการอ่านโดยหันหน้าเข้าหาคุณและหมุดแรกทางด้านซ้ายของคุณคือ Vcc แล้วกราวด์และสัญญาณตามลำดับ
เราจะใช้ Interrupts ตามที่บอกไว้ก่อนหน้านี้ดังนั้นขาเอาต์พุตของ Hall sensor จึงเชื่อมต่อกับ Pin 2 ของ Arduino พินเชื่อมต่อกับ LED ซึ่งจะเปิดเมื่อตรวจพบแม่เหล็ก ฉันเพิ่งทำการเชื่อมต่อบนเขียงหั่นขนมและดูเหมือนว่าด้านล่างนี้เมื่อเสร็จสมบูรณ์
Hall Effect Sensor Arduino รหัส:
รหัส Arduino สมบูรณ์ เป็นเพียงไม่กี่บรรทัดและมันสามารถพบได้ที่ด้านล่างของหน้านี้ซึ่งสามารถอัปโหลดโดยตรงกับบอร์ด Arduino ของคุณ หากคุณต้องการทราบว่าโปรแกรมทำงานอย่างไรอ่านเพิ่มเติม
เรามีอินพุตหนึ่งตัวซึ่งก็คือเซ็นเซอร์และหนึ่งเอาต์พุตซึ่งเป็น LED ต้องเชื่อมต่อเซ็นเซอร์เป็นอินพุทอินเทอร์รัปต์ ดังนั้นในฟังก์ชัน การตั้งค่า ของเราเราจะเริ่มต้นพินเหล่านี้และทำให้พิน 2 ทำงานเป็นการขัดจังหวะ นี่ขา 2 เรียกว่า Hall_sensor และขา 3 เรียกว่าLED
การตั้งค่าเป็นโมฆะ () {pinMode (LED, OUTPUT); // LED เป็น pinMode ขาออก (Hall_sensor, INPUT_PULLUP); // เซ็นเซอร์ฮอลล์คืออินพุตพิน Atterrupt (digitalPinToInterrupt (Hall_sensor), สลับ, เปลี่ยน); // พินสองคือพินขัดจังหวะซึ่งจะเรียกฟังก์ชันสลับ}
เมื่อตรวจพบการขัดจังหวะฟังก์ชันสลับจะถูกเรียกใช้ตามที่กล่าวไว้ในบรรทัดด้านบน มีพารามิเตอร์ขัดจังหวะมากมายเช่น Toggle , Change, Rise, Fall เป็นต้น แต่ในบทช่วยสอนนี้เรากำลังตรวจจับการเปลี่ยนแปลงของเอาต์พุตจากเซ็นเซอร์ Hall
ตอนนี้ภายในฟังก์ชัน toggle เราใช้ตัวแปรที่เรียกว่า“ state ” ซึ่งจะเปลี่ยนสถานะเป็น 0 ถ้ามี 1 อยู่แล้วและเป็น 1 ถ้าเป็นศูนย์แล้ว ด้วยวิธีนี้เราสามารถทำให้ LED เปิดหรือปิดได้
เป็นโมฆะ toggle () {state =! state; }
ในที่สุดภายในฟังก์ชัน ลูป ของเราเราต้องควบคุม LED สถานะตัวแปรจะถูกเปลี่ยนแปลงทุกครั้งที่ตรวจพบแม่เหล็กดังนั้นเราจึงใช้มันเพื่อพิจารณาว่า LED ควรจะยังคงเปิดหรือปิดอยู่
โมฆะ loop () {digitalWrite (LED, state); }
Arduino Hall Effect Sensor ทำงาน:
เมื่อคุณพร้อมกับฮาร์ดแวร์และรหัสของคุณแล้วเพียงแค่อัปโหลดรหัสไปยัง Arduino ฉันใช้แบตเตอรี่ 9V เพื่อจ่ายพลังงานให้กับการตั้งค่าทั้งหมดคุณสามารถใช้แหล่งพลังงานใดก็ได้ที่ต้องการ ตอนนี้นำแม่เหล็กเข้าใกล้เซ็นเซอร์แล้ว LED ของคุณจะเรืองแสงและถ้าคุณนำออกไปมันจะดับลง
หมายเหตุ:เซ็นเซอร์ Hall มีความไวต่อเสาซึ่งหมายความว่าเซ็นเซอร์ด้านหนึ่งสามารถตรวจจับได้เฉพาะขั้วโลกเหนือหรือขั้วโลกใต้เท่านั้นและไม่ใช่ทั้งสองอย่าง ดังนั้นหากคุณนำขั้วใต้เข้าใกล้พื้นผิวตรวจจับทิศเหนือ LED ของคุณจะไม่เรืองแสง
สิ่งที่เกิดขึ้นจริงภายในคือเมื่อเรานำแม่เหล็กเข้าใกล้เซ็นเซอร์เซ็นเซอร์จะเปลี่ยนสถานะ การเปลี่ยนแปลงนี้รับรู้ได้จากพินขัดจังหวะซึ่งจะเรียกฟังก์ชันสลับภายในซึ่งเราเปลี่ยนตัวแปร "สถานะ" จาก 0 เป็น 1 ดังนั้นไฟ LED จะเปิดขึ้น ตอนนี้เมื่อเราย้ายแม่เหล็กออกจากเซ็นเซอร์อีกครั้งผลลัพธ์ของเซ็นเซอร์จะเปลี่ยนไป การเปลี่ยนแปลงนี้จะสังเกตเห็นได้อีกครั้งโดยคำสั่งขัดจังหวะของเราและด้วยเหตุนี้ตัวแปร“ สถานะ” จะเปลี่ยนจาก 1 เป็น 0 ดังนั้น LED หากปิด การทำซ้ำแบบเดียวกันทุกครั้งที่คุณนำแม่เหล็กเข้าใกล้เซ็นเซอร์
คุณสามารถดูวิดีโอการทำงานทั้งหมดของโครงการได้ด้านล่าง หวังว่าคุณจะเข้าใจโครงการและสนุกกับการสร้างสิ่งใหม่ ๆ หากเป็นอย่างอื่นโปรดใช้ส่วนความคิดเห็นด้านล่างหรือฟอรัมเพื่อขอความช่วยเหลือ