สารบัญ:
- ขั้นตอนที่ 1: ตัวจัดการขัดจังหวะ
- ขั้นตอนที่ 2: ตั้งค่าช่วงเวลาเป็นระยะ
- ขั้นตอนที่ 3: การเริ่มต้นขัดจังหวะ
- ขั้นตอนที่ 4: จะเพิ่มรหัสของคุณที่ไหน
วีดีโอ: Arduino - การขัดจังหวะเป็นระยะ: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
คำแนะนำนี้เกี่ยวกับการใช้การขัดจังหวะเป็นระยะสำหรับกำหนดเวลาในโปรแกรม Arduino นี่เป็นขั้นตอนสำหรับโปรแกรมเมอร์ Arduino รุ่นใหม่ที่รู้ว่า Arduino สามารถทำได้มากกว่านี้ แต่ไม่ค่อยรู้ว่าจะทำอย่างไรให้สิ่งนั้นเกิดขึ้น
หากมีปัญหาด้านประสิทธิภาพ ฉันคิดว่าคุณกำลังใช้ฟังก์ชัน delay() อย่างน้อยหนึ่งฟังก์ชัน เคล็ดลับคือการกำจัดฟังก์ชัน delay() และแทนที่การขัดจังหวะ ฟังก์ชัน delay() บังคับให้ Arduino ไม่ทำอะไรเลยในขณะที่รอให้ delay() เสร็จสิ้น การใช้อินเตอร์รัปต์ช่วยให้โปรแกรมของคุณทำอย่างอื่นได้ในขณะที่รอการหน่วงเวลาสิ้นสุด โดยปกติจะมีเวลาตายที่ไม่ได้ใช้จำนวนมากซึ่งสามารถใช้สำหรับสิ่งอื่นเมื่อใช้ delay() การใช้อินเตอร์รัปต์ช่วยแก้ปัญหานี้ได้
ขั้นตอนที่ 1: ตัวจัดการขัดจังหวะ
1. เพิ่มตัวจัดการขัดจังหวะในโปรแกรมของคุณ เพียงคัดลอกและวางที่ใดที่หนึ่งด้านบน setup();
const unsigned long TIMER0_COUNT = 500; // ช่วงเวลาตัวจับเวลา 500 มิลลิวินาที
// TIMER0 ตัวจัดการขัดจังหวะเวลาบูลที่ระเหยได้ = false; ISR (TIMER0_COMPA_vect) { จำนวนยาวที่ไม่ได้ลงชื่อคงที่ = 0; ถ้า (++นับ > TIMER0_COUNT) { จำนวน = 0; เวลา = จริง; // เวลาถูกตั้งค่าเป็น true ทุกๆ TIMER0_COUNT ms } // (ต้องล้างเวลาในรูทีนหลัก) }
ขั้นตอนที่ 2: ตั้งค่าช่วงเวลาเป็นระยะ
2. ตั้งช่วงเวลา กิจวัตรนี้จะย้อนกลับไปยังการขัดจังหวะ TIMER0 ซึ่งตั้งค่าให้เริ่มทำงานทุกๆ ~1 มิลลิวินาที
"ช่วงเวลา" ของคุณคือจำนวน TIMER0 ขัดจังหวะในการประมวลผล แต่ละช่วงเวลาคือ ~1 มิลลิวินาที ดังนั้นคุณกำลังตั้งค่าจำนวนการขัดจังหวะ TIMER0 ให้นับก่อนที่จะเปิดใช้งานช่วงเวลาของคุณ IOW ตั้งค่าตัวแปร TIMER0_COUNT เป็นจำนวนมิลลิวินาทีที่คุณต้องการรอ ตัวอย่างเช่น ใช้ 500 เป็นเวลาครึ่งวินาที ใช้ 3000 เป็นเวลา 3 วินาที
ขั้นตอนที่ 3: การเริ่มต้นขัดจังหวะ
3. เพิ่มโค้ด "TIMER0 initialization" ลงในวิธี setup() ของคุณ อีกครั้งเพียงคัดลอกและวางใน setup()
// *** การเริ่มต้น TIMER0 ***
cli(); // ปิดการขัดจังหวะทั้งหมด TIMSK0 = 0; // ปิดตัวจับเวลา0 สำหรับความกระวนกระวายใจที่ต่ำกว่า OCR0A = 0xBB; // การนับอินเตอร์รัปต์โดยพลการ TIMSK0 |= _BV(OCIE0A); // หมูกลับไปที่อินเตอร์รัปต์ sei(); // เปิดอินเตอร์รัปต์อีกครั้ง
ขั้นตอนที่ 4: จะเพิ่มรหัสของคุณที่ไหน
4. เพิ่มรหัส "ตรวจสอบเวลา" ให้กับวิธีการวนรอบ () ของคุณ คัดลอกและวางในลูป ()
ถ้า (เวลา) {
เวลา = เท็จ; // ทำอะไรที่นี่ }
"เวลา = เท็จ" ไลน์เป็นสิ่งสำคัญ หากไม่มีบรรทัดนี้ บรรทัด "ทำอะไรที่นี่" จะถูกดำเนินการทุกครั้งที่โปรแกรมรันลูป ()
แน่นอน คุณแทนที่กิจกรรมของคุณเองในบรรทัด "ทำอะไรที่นี่" เริ่มต้นด้วยการพิมพ์ข้อความหรือไฟ LED กะพริบ
คุณทำเสร็จแล้ว!
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino