Arduino Timer Library สำหรับการหน่วงเวลา

Arduino Timer Library Sahrab Kar Hnwng Wela



ตัวจับเวลาเป็นหนึ่งในองค์ประกอบหลักของ Arduino เพื่อจัดการกับงานที่มีความสำคัญต่อเวลา ตัวจับเวลาของ Arduino มักจะใช้ฟังก์ชันการหน่วงเวลา () เพื่อให้การทำงานล่าช้าหรือหยุดชั่วคราวในช่วงเวลาสั้นๆ อย่างไรก็ตาม จำเป็นต้องมีไลบรารีพิเศษสำหรับฟังก์ชันหน่วงเวลาสำหรับการทำงานหลายอย่างพร้อมกัน

คู่มือนี้จะครอบคลุมไลบรารีตัวจับเวลา Arduino ต่างๆ สำหรับการหน่วงเวลาพร้อมคำอธิบายสั้นๆ ก่อนหน้านั้นมาทำความเข้าใจกับข้อจำกัดของฟังก์ชัน Arduino delay()







ข้อ จำกัด ของความล่าช้า ()

ไม่สามารถใช้ฟังก์ชัน delay() หากคุณต้องการทำงานต่างๆ พร้อมกัน เนื่องจากเป็นฟังก์ชันบล็อก หมายความว่าเมื่อใดก็ตามที่ใช้ฟังก์ชัน delay() เพื่อหยุดการทำงานของงานชั่วคราว ฟังก์ชันนั้นจะไม่อนุญาตให้ฟังก์ชันอื่นทำงานในระหว่างนั้น ดังนั้นเมื่อมีคนต้องการหยุดโปรแกรมหนึ่งในขณะที่กำลังรันโปรแกรมอื่นอยู่ จะไม่สามารถใช้การหน่วงเวลา () ได้



แล้วจะทำอย่างไร?



Arduino Timer Library สำหรับการหน่วงเวลาการเรียกใช้ฟังก์ชัน

เพื่อแก้ปัญหานี้ คุณควรใช้ไลบรารี่พิเศษที่ออกแบบมาสำหรับการหน่วงเวลา ไลบรารีเหล่านี้อนุญาตให้คุณหยุดฟังก์ชันบางอย่างในโปรแกรมชั่วคราวและเรียกใช้ฟังก์ชันอื่นในระหว่างนี้ ไลบรารีเหล่านี้เป็นไลบรารีตัวจับเวลาที่ไม่ปิดกั้นการทำงานหลายอย่างพร้อมกัน สามารถใช้เรียกฟังก์ชันต่างๆ ได้ตามต้องการ





วิธีรวม Arduino Timer Library ใน Arduino Code

ในการรวมไลบรารีตัวจับเวลา ก่อนอื่นเราต้องเพิ่มไฟล์ zip โดยไปที่ รวมห้องสมุด ส่วนใน Arduino IDE สำหรับคำอธิบายโดยละเอียดของการเพิ่มไลบรารี Arduino คุณสามารถอ่านบทความได้ที่ วิธีการติดตั้ง Library ใน Arduino IDE .

ขั้นตอนที่ 1

ก่อนอื่นคุณจะต้องดาวน์โหลดไลบรารีตัวจับเวลา Arduino



ขั้นตอนที่ 2

หลังจากดาวน์โหลดไลบรารีตัวจับเวลาแล้ว ให้เปิด Arduino IDE แล้วไปที่ Sketch จากนั้นไปที่ Include Library จากนั้นคลิกที่ Add ZIP Library


Arduino จะแสดง 'ติดตั้งไลบรารีแล้ว' ในเอาต์พุต

ขั้นตอนที่ 3

หลังจากที่คุณเพิ่มไลบรารี ZIP ลงใน Arduino IDE แล้ว ไลบรารีนั้นจะปรากฏในรายการดรอปดาวน์ของตัวเลือกรวมไลบรารีใน Arduino IDE จากที่นี่รวมถึง จับเวลา ห้องสมุด.


เมื่อคุณรวม 'จับเวลา' ไลบรารี คำสั่งตัวประมวลผลล่วงหน้าจะปรากฏบนภาพร่าง มิฉะนั้น คุณสามารถทำตามขั้นตอนที่ 4 เพื่อรวมไลบรารีด้วยตนเอง

# รวม < จับเวลาh >

ขั้นตอนที่ 4

ในการรวม Arduino Timer Library ไว้ในรหัส Arduino คุณต้องใช้ #รวม คำสั่งพร้อมกับ (.ชม) ชื่อไลบรารีตัวจับเวลาส่วนขยายแล้วสร้างตัวจับเวลาที่แสดงด้านล่าง

#include
ตัวจับเวลาอัตโนมัติ = timer_create_default ( ) ;


หลังจากสร้างตัวจับเวลาแล้ว คุณต้องสร้างฟังก์ชันเพื่อเรียกตัวจับเวลานั้น คุณอาจต้องเรียกตัวจับเวลาในช่วงเวลาที่กำหนด หลังจากหน่วงเวลาสั้น ๆ หรือหลังจากช่วงเวลาหนึ่ง ตัวอย่างการเรียกตัวจับเวลาในเงื่อนไขดังกล่าวมีดังต่อไปนี้

ในกรณีที่คุณต้องการความล่าช้าสั้นๆ

จับเวลาใน ( หน่วงเวลา function_to_call ) ;
จับเวลาใน ( ล่าช้า, function_to_call, อาร์กิวเมนต์ ) ; // หรือมีข้อโต้แย้งเพิ่มเติม สำหรับ function_to_call


ในกรณีนี้ เราสามารถใช้ ตัวจับเวลาใน () ฟังก์ชันเพื่อแนะนำการหน่วงเวลาก่อนที่จะเรียกใช้ฟังก์ชันเฉพาะ พารามิเตอร์การหน่วงเวลาแสดงถึงเวลาเป็นมิลลิวินาทีที่เราต้องการรอก่อนที่จะดำเนินการโค้ด

หลังจากความล่าช้าที่ระบุ function_to_call จะถูกนำไปใช้. นอกจากนี้ยังสามารถกำหนดอาร์กิวเมนต์เพื่อส่งผ่านไปยังฟังก์ชันในเวลาที่เรียกใช้

ในกรณีที่คุณต้องการเรียกตัวจับเวลาตามเวลาที่กำหนด

ฟังก์ชันนี้ตั้งค่าตัวจับเวลาเพื่อเรียกใช้ฟังก์ชันเฉพาะ ณ เวลาใดเวลาหนึ่ง พารามิเตอร์เวลาระบุเวลาที่ควรจะเรียกใช้ฟังก์ชัน อาจเป็นการประทับเวลาเฉพาะหรือค่าการหน่วงเวลาเป็นมิลลิวินาที เดอะ function_to_call เป็นพารามิเตอร์ของฟังก์ชันที่จะดำเนินการหลังจากหมดเวลาของตัวจับเวลา

จับเวลาที่ ( เวลา , function_to_call ) ;
จับเวลาที่ ( เวลา , function_to_call, อาร์กิวเมนต์ ) ; // ด้วยการโต้แย้ง


timer.at (เวลา, function_to_call, อาร์กิวเมนต์) ฟังก์ชันสามารถส่งอาร์กิวเมนต์ไปยังฟังก์ชันที่กำลังเรียกได้ พารามิเตอร์อาร์กิวเมนต์จะเป็นค่าที่จะส่งผ่านในฟังก์ชัน

ในกรณีที่คุณต้องการเรียกตัวจับเวลาหลังจากช่วงเวลาหนึ่ง

ในกรณีนี้ คุณสามารถใช้ฟังก์ชัน timer.every() เพื่อเรียกใช้ฟังก์ชันซ้ำๆ หลังจากช่วงเวลาหนึ่งๆ พารามิเตอร์ช่วงเวลาแสดงเวลาเป็นมิลลิวินาทีระหว่างช่วงเวลาที่สามารถดำเนินการได้

ระบุช่วงเวลาที่ต้องการและ function_to_call จะใช้ซ้ำหลังจากช่วงเวลานั้น เช่นเดียวกับกรณีก่อนหน้านี้ คุณสามารถรวมอาร์กิวเมนต์เผื่อเลือกที่จะส่งผ่านไปยังฟังก์ชันเมื่อเรียกใช้

จับเวลาทุก ( ช่วงเวลา, function_to_call ) ;
จับเวลาทุก ( ช่วงเวลา, function_to_call, อาร์กิวเมนต์ ) ; // เขียนช่วงเวลาของคุณที่นี่


คุณสามารถเรียนรู้รายละเอียดเพิ่มเติมเกี่ยวกับวิธีการใช้ไลบรารีตัวจับเวลาสำหรับการหน่วงเวลาการเรียกใช้ฟังก์ชันผ่านลิงก์ Arduino Timer Library สำหรับฟังก์ชั่นหน่วงเวลา .

ไลบรารีอื่น ๆ สำหรับความล่าช้าใน Arduino

ลิงก์ด้านล่างจะนำคุณไปยังไลบรารีตัวจับเวลาของ Arduino ซึ่งคุณสามารถติดตั้งไลบรารีตัวจับเวลาเพื่อหน่วงเวลาการเรียกใช้ฟังก์ชันได้

ห้องสมุดจับเวลาโดย Michael Contreras

นอกจากนี้ยังมีผู้เขียนที่จัดเตรียมไลบรารีตัวจับเวลา Arduino ที่ไม่ปิดกั้นที่สร้างขึ้นเองสำหรับการหน่วงเวลาการเรียกใช้ฟังก์ชัน เขาใช้ฟังก์ชัน inbuilt ของ Arduino เช่น millis() และ micros() เพื่อทำหน้าที่หน่วงเวลาโดยไม่ปิดกั้น ลิงก์ไปยังห้องสมุดของเขามีดังต่อไปนี้:

ไมเคิล อูเรย์ ห้องสมุด Arduino Timer

บทสรุป

แม้ว่าฟังก์ชัน delay() จะมีอยู่แล้วใน Arduino แต่ก็ไม่สามารถใช้ทำงานหลายอย่างพร้อมกันได้ เพื่อดำเนินการหลายงานในเวลาเดียวกัน ไลบรารีตัวจับเวลาแบบไม่บล็อกถูกสร้างขึ้นโดยชุมชน Arduino ซึ่งสามารถใช้เป็นและเมื่อจำเป็น