สารบัญ:

Arduino Hall Effect Sensor พร้อมอินเตอร์รัปต์: 4 ขั้นตอน
Arduino Hall Effect Sensor พร้อมอินเตอร์รัปต์: 4 ขั้นตอน

วีดีโอ: Arduino Hall Effect Sensor พร้อมอินเตอร์รัปต์: 4 ขั้นตอน

วีดีโอ: Arduino Hall Effect Sensor พร้อมอินเตอร์รัปต์: 4 ขั้นตอน
วีดีโอ: Interfacing KY-024 Hall Effect sensor with Arduino | DigitSpace.com 2024, กรกฎาคม
Anonim
Image
Image
เซ็นเซอร์ Hall Effect คืออะไร?
เซ็นเซอร์ Hall Effect คืออะไร?

สวัสดีทุกคน, วันนี้ฉันจะแสดงให้คุณเห็นว่าคุณสามารถเชื่อมต่อเซ็นเซอร์เอฟเฟกต์ฮอลล์กับ Arduino และใช้งานด้วยการขัดจังหวะได้อย่างไร

เครื่องมือและวัสดุที่ใช้ในวิดีโอ (ลิงก์พันธมิตร): Arduino Uno:

Hall effect เซ็นเซอร์:

ตัวต้านทานสารพัน:

ขั้นตอนที่ 1: เซนเซอร์ Hall Effect คืออะไร?

เซ็นเซอร์ Hall Effect คืออะไร?
เซ็นเซอร์ Hall Effect คืออะไร?
เซ็นเซอร์ Hall Effect คืออะไร?
เซ็นเซอร์ Hall Effect คืออะไร?
เซ็นเซอร์ Hall Effect คืออะไร?
เซ็นเซอร์ 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 ของฉันสำหรับบทแนะนำและโครงการที่ยอดเยี่ยมเพิ่มเติมใน อนาคต.

ไชโยและขอบคุณสำหรับการรับชม!

แนะนำ: