สารบัญ:
- ขั้นตอนที่ 1: เซนเซอร์ Hall Effect คืออะไร?
- ขั้นตอนที่ 2: การขัดจังหวะคืออะไร?
- ขั้นตอนที่ 3: การเชื่อมต่อและรหัส
- ขั้นตอนที่ 4: การดำเนินการเพิ่มเติม
วีดีโอ: Arduino Hall Effect Sensor พร้อมอินเตอร์รัปต์: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
สวัสดีทุกคน, วันนี้ฉันจะแสดงให้คุณเห็นว่าคุณสามารถเชื่อมต่อเซ็นเซอร์เอฟเฟกต์ฮอลล์กับ Arduino และใช้งานด้วยการขัดจังหวะได้อย่างไร
เครื่องมือและวัสดุที่ใช้ในวิดีโอ (ลิงก์พันธมิตร): Arduino Uno:
Hall effect เซ็นเซอร์:
ตัวต้านทานสารพัน:
ขั้นตอนที่ 1: เซนเซอร์ Hall Effect คืออะไร?
Hall effect sensor เป็นอุปกรณ์ที่ใช้ในการวัดขนาดของสนามแม่เหล็ก แรงดันไฟขาออกเป็นสัดส่วนโดยตรงกับความแรงของสนามแม่เหล็กที่ไหลผ่าน
เซนเซอร์ Hall Effect ใช้สำหรับการตรวจจับระยะใกล้ การวางตำแหน่ง การตรวจจับความเร็ว และการตรวจจับปัจจุบัน
ตัวที่ฉันจะร่วมงานด้วยในวันนี้มีชื่อว่า 3144 ซึ่งเป็นสวิตช์เอฟเฟกต์ฮอลล์ซึ่งส่วนใหญ่ใช้สำหรับอุณหภูมิสูงและการใช้งานในยานยนต์ เอาต์พุตจะสูงโดยค่าเริ่มต้นและลดลงเมื่ออยู่ในสนามแม่เหล็ก
เซ็นเซอร์มี 3 พิน VCC กราวด์และเอาต์พุต คุณสามารถระบุได้ตามลำดับหากคุณถือเซ็นเซอร์โดยให้ฉลากหันเข้าหาตัวคุณ VCC อยู่ทางซ้าย และเอาท์พุตอยู่ทางด้านขวา เพื่อป้องกันแรงดันตกคร่อม ตัวต้านทาน 10k จะถูกใช้ระหว่าง VCC และเอาต์พุตในการกำหนดค่าแบบดึงขึ้น
ขั้นตอนที่ 2: การขัดจังหวะคืออะไร?
ในการเชื่อมต่อเซ็นเซอร์กับ Arduino เราจะใช้ฟีเจอร์ที่เรียบง่ายแต่ทรงพลังที่เรียกว่า Interrupt งานขัดจังหวะคือการทำให้แน่ใจว่าตัวประมวลผลตอบสนองอย่างรวดเร็วต่อเหตุการณ์สำคัญ เมื่อตรวจพบสัญญาณบางอย่าง การขัดจังหวะ (ตามชื่อแนะนำ) จะขัดจังหวะสิ่งที่โปรเซสเซอร์กำลังทำ และรันโค้ดที่ออกแบบมาเพื่อตอบสนองต่อสิ่งเร้าภายนอกใดๆ ก็ตามที่ป้อนให้กับ Arduino เมื่อโค้ดนั้นเสร็จสิ้น โปรเซสเซอร์จะกลับไปทำอะไรก็ตามที่มันทำในตอนแรกราวกับว่าไม่มีอะไรเกิดขึ้น!
สิ่งที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้ก็คือการจัดโครงสร้างระบบของคุณให้ตอบสนองต่อเหตุการณ์สำคัญๆ ที่คาดเดาได้ยากในซอฟต์แวร์อย่างรวดเร็วและมีประสิทธิภาพ เหนือสิ่งอื่นใด มันทำให้โปรเซสเซอร์ของคุณมีเนื้อที่ว่างมากขึ้นสำหรับทำสิ่งอื่น ๆ ในขณะที่กำลังรอกิจกรรมที่จะแสดง
Arduino Uno มีพินสองตัวที่เราสามารถใช้เป็น Interrupts, pin 2 และ 3 ฟังก์ชันที่เราใช้ในการลงทะเบียนพินเป็นอินเทอร์รัปต์เรียกว่า attachInterrupt โดยที่พารามิเตอร์แรกที่เราส่งในพินที่จะใช้ พารามิเตอร์ที่สองคือ ชื่อของฟังก์ชันที่เราต้องการเรียกเมื่อตรวจพบการขัดจังหวะและในฐานะพารามิเตอร์ที่สาม เราส่งในโหมดที่เราต้องการให้อินเตอร์รัปต์ทำงาน มีลิงก์ในคำอธิบายวิดีโอสำหรับการอ้างอิงแบบเต็มสำหรับฟังก์ชันนี้
ขั้นตอนที่ 3: การเชื่อมต่อและรหัส
ในตัวอย่างของเรา เราเชื่อมต่อเซ็นเซอร์เอฟเฟกต์ฮอลล์กับพิน 2 บน Arduino ในตอนต้นของสเก็ตช์ เรากำหนดตัวแปรสำหรับหมายเลขพินของ LED ในตัว ขาขัดจังหวะ และตัวแปรไบต์ที่เราจะใช้เพื่อแก้ไขผ่านอินเตอร์รัปต์ เป็นสิ่งสำคัญที่เราจะต้องทำเครื่องหมายสิ่งนี้ว่าผันผวนเพื่อให้คอมไพเลอร์สามารถทราบได้ว่ามีการแก้ไขนอกโฟลว์โปรแกรมหลักผ่านอินเตอร์รัปต์
ในฟังก์ชันการตั้งค่า ขั้นแรกเราจะระบุโหมดบนพินที่ใช้ จากนั้นเราจะแนบอินเทอร์รัปต์ตามที่อธิบายไว้ก่อนหน้านี้ ฟังก์ชันอื่นที่เราใช้ที่นี่คือ digitalPinToInterrupt ซึ่งตามชื่อหมายถึง แปลหมายเลขพินเป็นหมายเลขขัดจังหวะ
ในวิธีการหลัก เราเพียงแค่เขียนตัวแปรสถานะบนพิน LED และเพิ่มการหน่วงเวลาเล็กน้อยมาก เพื่อให้โปรเซสเซอร์มีเวลาทำงานอย่างเหมาะสม
เมื่อเราแนบอินเตอร์รัปต์ เราระบุการกะพริบเป็นพารามิเตอร์ที่สอง และนี่คือชื่อฟังก์ชันที่จะเรียก ภายในเราเพียงแค่กลับค่าสถานะ
พารามิเตอร์ที่สามของฟังก์ชัน AttachIntertupt คือโหมดการทำงาน เมื่อเราใช้เป็น CHANGE ฟังก์ชันการกะพริบจะทำงานทุกครั้งที่สถานะการขัดจังหวะเปลี่ยนแปลง ดังนั้นมันจะถูกเรียกเมื่อเราเอาแม่เหล็กเข้าใกล้เซ็นเซอร์และทำงานอีกครั้งเมื่อเราถอดออก ด้วยวิธีนี้ ไฟ LED จะเปิดขึ้นในขณะที่เราถือแม่เหล็กไว้ใกล้กับเซ็นเซอร์
หากตอนนี้เราเปลี่ยนโหมดเป็น RISING ฟังก์ชันการกะพริบจะทำงานก็ต่อเมื่อเห็นขอบที่เพิ่มขึ้นของสัญญาณบนพินอินเทอร์รัปต์ ทุกครั้งที่เรานำแม่เหล็กเข้าใกล้เซ็นเซอร์ ไฟ LED จะดับหรือเปิดขึ้น ดังนั้นเราจึงสร้างสวิตช์แม่เหล็กโดยพื้นฐาน
โหมดสุดท้ายที่เราจะลองคือ LOW เมื่อแม่เหล็กปิดอยู่ ฟังก์ชันกะพริบจะทำงานอย่างต่อเนื่องและไฟ LED จะกะพริบ โดยมีสถานะกลับด้านตลอดเวลา เมื่อเราเอาแม่เหล็กออก มันคาดเดาไม่ได้จริงๆ ว่าสถานะจะจบลงอย่างไร ขึ้นอยู่กับเวลา อย่างไรก็ตาม โหมดนี้มีประโยชน์จริง ๆ หากเราจำเป็นต้องรู้ว่ามีการกดปุ่มนานแค่ไหน เนื่องจากเราสามารถใช้ฟังก์ชันจับเวลาเพื่อกำหนดได้
ขั้นตอนที่ 4: การดำเนินการเพิ่มเติม
การขัดจังหวะเป็นวิธีง่ายๆ ในการทำให้ระบบของคุณตอบสนองต่องานที่ละเอียดอ่อนด้านเวลามากขึ้น พวกเขายังมีประโยชน์เพิ่มเติมในการเพิ่ม `loop()` หลักของคุณเพื่อมุ่งเน้นไปที่งานหลักบางอย่างในระบบ (ฉันพบว่าสิ่งนี้มีแนวโน้มที่จะทำให้โค้ดของฉันมีระเบียบขึ้นอีกเล็กน้อยเมื่อฉันใช้งาน - ง่ายต่อการดูว่าโค้ดหลักได้รับการออกแบบมาเพื่ออะไร ในขณะที่อินเทอร์รัปต์จัดการกับเหตุการณ์เป็นระยะ) ตัวอย่างที่แสดงที่นี่เป็นเพียงตัวอย่างที่ใกล้เคียงที่สุด กรณีพื้นฐานสำหรับการใช้อินเตอร์รัปต์ คุณสามารถใช้เพื่ออ่านอุปกรณ์ I2C ส่งหรือรับข้อมูลไร้สาย หรือแม้แต่สตาร์ทหรือหยุดมอเตอร์
หากคุณมีการใช้งานที่น่าสนใจของการขัดจังหวะหรือเซ็นเซอร์เอฟเฟกต์ฮอลล์ โปรดแจ้งให้เราทราบในความคิดเห็น กดไลค์และแชร์คำแนะนำนี้ และอย่าลืมสมัครรับข้อมูลจากช่อง YouTube ของฉันสำหรับบทแนะนำและโครงการที่ยอดเยี่ยมเพิ่มเติมใน อนาคต.
ไชโยและขอบคุณสำหรับการรับชม!
แนะนำ:
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java บทช่วยสอน: 4 ขั้นตอน
Raspberry Pi A1332 Precision Hall - เซ็นเซอร์มุมเอฟเฟกต์ บทช่วยสอน Java: A1332 เป็นเซ็นเซอร์ตำแหน่งมุมแม่เหล็กที่ตั้งโปรแกรมได้ความละเอียดสูง 360 °แบบไม่ต้องสัมผัส ออกแบบมาสำหรับระบบดิจิทัลโดยใช้อินเทอร์เฟซ I2C สร้างขึ้นจากเทคโนโลยี Circular Vertical Hall (CVH) และสัญญาณไมโครโปรเซสเซอร์ที่ตั้งโปรแกรมได้
วิธีสร้างเครื่องวัดความเร็วลมของคุณเองโดยใช้ Reed Switches, Hall Effect Sensor และบางส่วนใน Nodemcu - ส่วนที่ 2 - ซอฟต์แวร์: 5 ขั้นตอน (พร้อมรูปภาพ)
วิธีสร้างเครื่องวัดความเร็วลมของคุณเองโดยใช้ Reed Switches, Hall Effect Sensor และบางส่วนใน Nodemcu - ส่วนที่ 2 - ซอฟต์แวร์: บทนำ นี่เป็นภาคต่อของโพสต์แรก "วิธีสร้างเครื่องวัดความเร็วลมของคุณเองโดยใช้ Reed Switches, Hall Effect Sensor และเรื่องที่สนใจบางส่วน บน Nodemcu - ส่วนที่ 1 - ฮาร์ดแวร์" - ที่จะแสดงวิธีการประกอบความเร็วลมและการวัดทิศทาง
วิธีสร้างเครื่องวัดความเร็วลมของคุณเองโดยใช้ Reed Switches, Hall Effect Sensor และเศษเล็กเศษน้อยบน Nodemcu - ส่วนที่ 1 - ฮาร์ดแวร์: 8 ขั้นตอน (พร้อมรูปภาพ)
วิธีสร้างเครื่องวัดความเร็วลมของคุณเองโดยใช้ Reed Switches, Hall Effect Sensor และเศษเล็กเศษน้อยบน Nodemcu - ส่วนที่ 1 - ฮาร์ดแวร์: บทนำตั้งแต่ฉันเริ่มต้นด้วยการศึกษา Arduino และ Maker Culture ฉันชอบที่จะสร้างอุปกรณ์ที่มีประโยชน์โดยใช้เศษขยะและเศษวัสดุ เช่น ฝาขวด ชิ้นส่วนของ PVC กระป๋องเครื่องดื่ม ฯลฯ ฉันชอบที่จะให้วินาที ชีวิตของชิ้นส่วนใด ๆ หรือคู่ใด ๆ
Arduino Tone Generator ที่ไม่มีไลบรารี่หรือฟังก์ชั่นแบบอนุกรม (พร้อมอินเตอร์รัปต์): 10 ขั้นตอน
Arduino Tone Generator ที่ไม่มีไลบรารี่หรือฟังก์ชั่นแบบอนุกรม (พร้อมอินเตอร์รัปต์): นี่ไม่ใช่สิ่งที่ปกติแล้วฉันจะสอนได้ ฉันชอบงานโลหะมากกว่า แต่เนื่องจากฉันเป็นนักเรียนวิศวกรรมไฟฟ้าและต้องเรียนวิชาเกี่ยวกับไมโครคอนโทรลเลอร์ ( การออกแบบระบบสมองกลฝังตัว) ฉันคิดว่าฉันจะสร้างคำสั่งบนหนึ่งใน p
Hall Effect Sensor บน Arduino โดยใช้ Fidget Spinner: 3 ขั้นตอน (พร้อมรูปภาพ)
Hall Effect Sensor บน Arduino โดยใช้ Fidget Spinner: บทคัดย่อในโครงการนี้ ฉันกำลังอธิบายเกี่ยวกับวิธีการทำงานของเซ็นเซอร์ Hall Effect ในการวัดความเร็วของ Fidget Spinner ด้วยบอร์ด Arduino การทำงาน: -A Hall effect sensor เป็นทรานสดิวเซอร์ที่เปลี่ยนแรงดันเอาต์พุตเพื่อตอบสนองต่อสนามแม่เหล็ก ฮอลล์เอฟเฟค