สารบัญ:

คำแนะนำในการทำให้ Arduino เข้าสู่โหมดสลีป: 5 ขั้นตอน
คำแนะนำในการทำให้ Arduino เข้าสู่โหมดสลีป: 5 ขั้นตอน

วีดีโอ: คำแนะนำในการทำให้ Arduino เข้าสู่โหมดสลีป: 5 ขั้นตอน

วีดีโอ: คำแนะนำในการทำให้ Arduino เข้าสู่โหมดสลีป: 5 ขั้นตอน
วีดีโอ: live ขั้นตอนในการรวมโค้ด arduino 2 โปรแกรมเข้าด้วยกัน สำหรับมือใหม่ 2024, พฤศจิกายน
Anonim
Image
Image
วัสดุที่จำเป็น/ กระดานอะไรที่จะใช้
วัสดุที่จำเป็น/ กระดานอะไรที่จะใช้

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

Adafruit DS3231 Precision RTC BreakoutAdafruit

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

ขั้นตอนที่ 1: วัสดุที่จำเป็น/ กระดานอะไรที่จะใช้

ใช้บอร์ดอะไร

ในบทช่วยสอนนี้ เราจะใช้ Arduino Uno เพียงเพราะเป็นบอร์ดที่ง่ายต่อการสร้างต้นแบบ ในโครงการจริง ฉันจะใช้ Arduino Pro Mini สำหรับสิ่งนี้ Arduino Uno และ Arduino Pro Mini มีลักษณะที่คล้ายคลึงกันมาก Arduino pro mini มีฮาร์ดแวร์ในการใช้พลังงานน้อยกว่ามาก (เช่น ส่วน USB, ไฟ LED พิเศษ และสิ่งอื่น ๆ) จึงใช้พลังงานน้อยกว่ามาก นี่คือเหตุผลที่ Arduino Pro mini เป็นตัวเลือกที่ดีกว่า เพื่อยกตัวอย่าง Uno ใช้ระหว่าง 30-40 mA เมื่อตื่นและประมาณ 19 mA เมื่อหลับ Pro Mini ใช้ 25mA เมื่อตื่นและ 0.57 mA เมื่อหลับ เนื่องจากทุกๆ mA มีความสำคัญเมื่อต่อเข้ากับแบตเตอรี่ คุณจะเห็นได้ว่าไม่มีการแข่งขันใดๆ และ Arduino Pro Mini เป็นผู้ชนะ

หมายเหตุ: ในฐานะผู้เริ่มต้นสร้าง Arduino Pro Mini อาจดูน่ากลัวเล็กน้อย แต่ไม่มีเหตุผลสำหรับมัน ใช่ คุณต้องประสานส่วนหัวเข้ากับบอร์ด และคุณต้องใช้สายเคเบิล FTDI เพื่ออัปโหลดภาพร่างของคุณ แต่นอกเหนือจากนั้นไม่มีความแตกต่างที่สำคัญ

ขั้นตอนที่ 2: โหมดสลีป

เมื่อคุณดูเอกสารประกอบของโปรเซสเซอร์ ATmega328p (คลิกลิงก์นี้เพื่อคัดลอกเอกสารนี้) โปรเซสเซอร์ที่ใช้สำหรับทั้ง Arduino Uno และ Arduino Pro mini คุณจะสังเกตเห็นว่ามีโหมดสลีปให้เลือกหลากหลาย แต่ในสถานการณ์จริงมีเพียงโหมดเดียวเท่านั้นที่มีประโยชน์ โหมดปิดเครื่อง (SLEEP_MODE_PWR_DOWN) เมื่อคุณทำให้ Arduino เข้าสู่โหมดสลีป จะปิดส่วนประกอบที่ไม่จำเป็นทั้งหมด ซึ่งจะช่วยลดการใช้พลังงานของ MCU (หน่วยไมโครคอนโทรลเลอร์) ในโหมดนี้ วิธีเดียวที่คุณจะปลุกได้คือการใช้อิทธิพลภายนอก (เช่น เราสะกิดให้ตื่น) เราจะตรวจสอบวิธีการทำสิ่งนี้ในภายหลังในบทช่วยสอนนี้

ขั้นตอนที่ 3: INTERRUPTS

ก่อนที่เราจะเข้าสู่โค้ดเพื่อให้ Arduino เข้าสู่โหมดสลีป เราต้องเข้าใจแนวคิดการขัดจังหวะก่อน วิธีอธิบายที่ดีที่สุดคือ; คุณกำลังทำงานกับสิ่งที่คุณต้องมีสมาธิจริงๆ คุณสวมหูฟังที่ส่งเสียงดังเพื่อกลบการยอมจำนนของคุณ คุณจดจ่อกับสิ่งนี้มากจนโลกภายนอกหายไปจากคุณ วิธีเดียวที่จะดึงความสนใจของคุณคือการสะกิด หลังจากที่คุณได้รับการกระตุ้นนี้ คุณจะต้องให้ความสนใจกับสิ่งที่ขัดจังหวะนั้นเกี่ยวกับมัน และหลังจากจัดการกับมันแล้ว คุณจะต้องเปิดเพลงขึ้นใหม่และทำงานต่อไป

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

Arduino ที่แท้จริงส่วนใหญ่มีพินสองสามตัวที่ทำอย่างนั้น Uno และ Pro Mini มี 2 พิน (d2 และ d3) ที่มีความสามารถในการขัดจังหวะสิ่งที่ Arduino กำลังทำอยู่ ด้วยวิธีนี้ เราสามารถดัน Arduino กลับสู่สถานะตื่นได้

ขั้นตอนที่ 4: โค้ด/Sketch

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

ขั้นตอนที่ 5: การออกกำลังกาย 1

ออกกำลังกาย 1
ออกกำลังกาย 1
ออกกำลังกาย 1
ออกกำลังกาย 1

ขั้นตอนที่ 1)

ตอนนี้ได้เวลาอัปโหลดภาพร่างแล้ว แต่ก่อนที่จะทำนั้นให้ใส่สายจัมเปอร์ใน d2 อย่าเพิ่งถอดปลั๊กที่ปลายอีกด้านออกก่อน โหลดภาพร่างของคุณและรอ 5 วินาทีเพื่อให้ LED ปิดและ Arduino จะเข้าสู่โหมดสลีป

ขั้นตอนที่ 2)

หลังจากที่ไฟ LED ดับลง ให้เสียบปลายอีกด้านหนึ่งของสายจัมเปอร์ในพิน GND บน Arduino Uno ของคุณ สิ่งนี้จะดึงพิน 2 LOW เพื่อกระตุ้นการขัดจังหวะจึงปลุก Arduino ที่หลับอยู่ หลังจากที่ไฟ LED กลับมา คุณสามารถถอดสายจัมเปอร์ออกจาก GND และ 5 วินาทีต่อมา Arduino จะกลับสู่โหมดสลีป

สำหรับตัวอย่างโครงการที่ฉันใช้นาฬิกาเรียลไทม์ (RTC) เพื่อปลุกเครื่องบันทึกข้อมูลความชื้นและอุณหภูมิ เพียงคลิกลิงก์ต่อไปนี้: ตัวอย่างการใช้ RTC เพื่อปลุกเครื่องบันทึกข้อมูล ARDUINO เป็นตัวอย่างที่ดีในการทำงานในโลกแห่งความเป็นจริง

แนะนำ: