คู่มือนี้ครอบคลุมโครงร่างต่อไปนี้:
เหตุใดการรีเซ็ตบอร์ด Arduino จึงมีประโยชน์
- วิธีรีเซ็ตบอร์ด Arduino โดยใช้ปุ่มรีเซ็ต
- วิธีรีเซ็ตบอร์ด Arduino โดยใช้รีเซ็ตพิน
- วิธีรีเซ็ตบอร์ด Arduino โดยใช้ฟังก์ชันรีเซ็ต ()
- วิธีรีเซ็ตบอร์ด Arduino โดยใช้วิธี Watchdog Timer
- วิธีรีเซ็ตบอร์ด Arduino โดยการรีเซ็ต Sketch ในหน่วยความจำ
- วิธีรีเซ็ตบอร์ด Arduino โดยการรีเซ็ตหน่วยความจำ EEPROM
เหตุใดการรีเซ็ตบอร์ด Arduino จึงมีประโยชน์
การรีเซ็ตบอร์ด Arduino มีประโยชน์ในสถานการณ์ต่างๆ เช่น:
- คุณสามารถรีเซ็ตบอร์ด Arduino ได้ หากคุณประสบปัญหาในการอัปโหลดภาพร่าง
- บางครั้งภาพร่างที่อัปโหลดอาจทำงานไม่ถูกต้อง ในกรณีนี้ การรีเซ็ตบอร์ด Arduino จะเป็นประโยชน์
- การรีเซ็ตบอร์ด Arduino ยังสามารถปลดล็อคบอร์ดได้หากล็อคอยู่หรือไม่ตอบสนอง
วิธีรีเซ็ตบอร์ด Arduino
คุณสามารถรีเซ็ตบอร์ด Arduino ได้:
- การใช้ปุ่มรีเซ็ต
- การใช้รีเซ็ตพิน
- การใช้ฟังก์ชันรีเซ็ต()
- ใช้วิธี Watchdog Timer
- โดยการรีเซ็ตร่างในความทรงจำ
- โดยการรีเซ็ตหน่วยความจำ EEPROM
วิธีรีเซ็ตบอร์ด Arduino โดยใช้ปุ่มรีเซ็ต
บอร์ด Arduino มีมาให้ในตัว ปุ่มรีเซ็ต ที่คุณสามารถใช้เพื่อรีเซ็ตบอร์ดของคุณ ปุ่มนี้จะถูกวางไว้ตรงหน้าพอร์ต USB ที่ใช้สำหรับพาวเวอร์ซัพพลาย เมื่อกดปุ่มนี้ ทุกกิจกรรมบนบอร์ดนี้จะหยุดลงและจะนำการดำเนินการกลับไปที่บรรทัดแรกของโค้ด
วิธีรีเซ็ตบอร์ด Arduino โดยใช้รีเซ็ตพิน
หากคุณดูบอร์ด Arduino อย่างใกล้ชิด คุณจะสังเกตเห็นว่ามีพินรีเซ็ตด้วย ซึ่งสามารถตั้งโปรแกรมในลักษณะที่สามารถรีเซ็ตบอร์ดได้ภายในไม่กี่วินาที สิ่งนี้มีประโยชน์ในกรณีที่ปุ่มรีเซ็ตของคุณทำงานไม่ถูกต้อง หากต้องการใช้รีเซ็ตพินนี้เพื่อรีเซ็ตบอร์ด Arduino คุณต้องใช้ขั้นตอนต่อไปนี้:
ขั้นตอนที่ 1: ดาวน์โหลดและติดตั้ง Arduino IDE
ขั้นแรก ให้ดาวน์โหลดและติดตั้ง Arduino IDE บนระบบของคุณ เนื่องจากเราจะใช้เพื่ออัปโหลดโค้ด คุณสามารถดาวน์โหลดและติดตั้ง Arduino IDE บนระบบของคุณได้จาก ที่นี่ .
ขั้นตอนที่ 2: เชื่อมต่อบอร์ด Arduino กับระบบ
ตอนนี้ใช้สาย USB เสียบปลายด้านหนึ่งของ USB ประเภท B ภายในบอร์ด Arduino และอีกด้านหนึ่งของ USB ประเภท A ลงในคอมพิวเตอร์ของคุณ
ขั้นตอนที่ 3: เลือกบอร์ด Arduino
เปิด Arduino IDE ไปที่ เครื่องมือ ส่วนและเลือกบอร์ด Arduino จากที่นั่น คุณควรเลือกพอร์ตเช่นกันหลังจากเลือกบอร์ดแล้ว:
ขั้นตอนที่ 4: เพิ่มรหัสลงใน Arduino IDE
ตอนนี้ให้เพิ่มโค้ดต่อไปนี้ในไฟล์ อาร์ดูโน่ IDE : :
ภายใน รีเซ็ต = 4 ;เป็นโมฆะ ติดตั้ง ( ) {
ดิจิทัลเขียน ( รีเซ็ต สูง ) ;
ล่าช้า ( 200 ) ;
พินโหมด ( รีเซ็ต, เอาท์พุต ) ;
อนุกรม เริ่ม ( 9600 ) ;
อนุกรม พิมพ์ ( 'การรีเซ็ต Arduino โดยทางโปรแกรม' ) ;
อนุกรม พิมพ์ ( 'www.linuxhint.com' ) ;
ล่าช้า ( 200 ) ;
}
เป็นโมฆะ วนซ้ำ ( )
{
อนุกรม พิมพ์ ( 'เอ' ) ;
ล่าช้า ( 1,000 ) ;
อนุกรม พิมพ์ ( 'บี' ) ;
ล่าช้า ( 1,000 ) ;
อนุกรม พิมพ์ ( 'มารีเซ็ต Arduino โดยทางโปรแกรมกันเถอะ' ) ;
อนุกรม พิมพ์ ( ) ;
ล่าช้า ( 1,000 ) ;
ดิจิทัลเขียน ( รีเซ็ต ต่ำ ) ;
อนุกรม พิมพ์ ( 'Arduino จะไม่ไปถึงที่นั่น' ) ;
}
ขั้นตอนที่ 5: เชื่อมต่อสายไฟ
นำลวดเชื่อมต่อโดยเปิดปลายทั้งสองข้างแล้วต่อปลายด้านหนึ่งของสายไฟเข้ากับ พิน 4 ในขณะที่อีกจุดหนึ่งสิ้นสุดลง รีเซ็ต ปักหมุดบน Arduino UNO ดังแสดงด้านล่าง:
ขั้นตอนที่ 6: อัปโหลดรหัส
อัพโหลดโค้ดโดยใช้ ที่อัพโหลด ปุ่ม:
ขั้นตอนที่ 7: เปิดการตรวจสอบแบบอนุกรม
นำทางไปยัง การตรวจสอบแบบอนุกรม ตัวเลือก:
ที่นั่นคุณจะเห็นผลลัพธ์ต่อไปนี้:
ผลลัพธ์ข้างต้นแสดงว่า Arduino ไม่แสดงข้อความ “ Arduino จะไม่ไปถึงที่นั่น” และได้รีเซ็ตแล้วจึงแสดงผลตั้งแต่เริ่มต้น เพื่อให้แน่ใจว่าวิธีนี้รีเซ็ตบอร์ด Arduino ได้สำเร็จ
วิธีรีเซ็ตบอร์ด Arduino โดยใช้ฟังก์ชันรีเซ็ต ()
คุณยังสามารถใช้ รีเซ็ต() ฟังก์ชั่นในโค้ด Arduino ของคุณเพื่อรีเซ็ตบอร์ด Arduino ภายในไม่กี่วินาที วิธีนี้ค่อนข้างตรงไปตรงมาตั้งแต่นั้นมา รีเซ็ต() ฟังก์ชั่นรวมอยู่ในไลบรารี Arduino IDE คุณสามารถรีเซ็ตบอร์ด Arduino ได้โดยใช้ รีเซ็ต() ฟังก์ชั่นจากขั้นตอนต่อไปนี้:
ขั้นตอนที่ 1: เปิด Arduino IDE แล้วเขียนโค้ดของคุณ ตัวอย่างเช่น ฉันกำลังเพิ่มโค้ดต่อไปนี้:
เป็นโมฆะ ( * รีเซ็ตฟังก์ชั่น ) ( เป็นโมฆะ ) = 0 ;เป็นโมฆะ ติดตั้ง ( ) {
อนุกรม เริ่ม ( 9600 ) ;
}
เป็นโมฆะ วนซ้ำ ( )
{
อนุกรม พิมพ์ ( '1..' ) ;
ล่าช้า ( 1,000 ) ;
อนุกรม พิมพ์ ( '2..' ) ;
ล่าช้า ( 1,000 ) ;
อนุกรม พิมพ์ ( '3..' ) ;
ล่าช้า ( 1,000 ) ;
อนุกรม พิมพ์ ( 'ขณะนี้บอร์ด Arduino กำลังรีเซ็ต' ) ;
อนุกรม พิมพ์ ( ) ;
ล่าช้า ( 1,000 ) ;
รีเซ็ตฟังก์ชั่น ( ) ;
อนุกรม พิมพ์ ( 'ถ้าฟังก์ชันรีเซ็ต() ทำงาน Arduino จะไม่แสดงผลนี้!' ) ;
}
ขั้นตอนที่ 2: ติดตาม ขั้นตอนที่ 4 ถึง ขั้นตอนที่ 7 (ไม่รวมขั้นตอนที่ 5) ที่ให้ไว้ในวิธีการข้างต้น ซึ่งรวมถึงการอัปโหลดโค้ด จากนั้นใช้ การตรวจสอบแบบอนุกรม เพื่อตรวจสอบผลลัพธ์
ผลลัพธ์ข้างต้นยืนยันว่าบอร์ด Arduino ได้รับการรีเซ็ตสำเร็จโดยใช้ รีเซ็ต() ฟังก์ชั่นตั้งแต่รีเซ็ตแล้วจึงแสดงผลตั้งแต่เริ่มต้น
วิธีรีเซ็ตบอร์ด Arduino โดยใช้วิธี Watchdog Timer
ที่ ตัวจับเวลาสุนัขเฝ้าบ้าน เป็นอีกวิธีที่มีประสิทธิภาพในการรีเซ็ตบอร์ด Arduino ในโค้ดของคุณ ช่วยให้คุณสามารถรีเซ็ตไมโครโปรเซสเซอร์หลังจากช่วงเวลาที่กำหนด จะมีประโยชน์ในกรณีที่โปรแกรมของคุณหยุดทำงานระหว่างการดำเนินการ และคุณไม่มีวิธีอื่นนอกจากการรีเซ็ตบอร์ด ในการรีเซ็ตบอร์ด Arduino โดยใช้ วิธีจับเวลา Watchdog ให้ทำตามขั้นตอนด้านล่าง:
ขั้นตอนที่ 1: เปิด Arduino IDE และวางรหัสต่อไปนี้:
#รวม < เฉลี่ย / ตกลง ชม. >เป็นโมฆะ ติดตั้ง ( ) {
อนุกรม เริ่ม ( 9600 ) ;
wdt_disable ( ) ; //ปิดการใช้งาน WDT
ล่าช้า ( 2000 ) ;
wdt_enable ( WDTO_2S ) ; //เปิดใช้งานการหมดเวลา WDT 2 วินาที
อนุกรม พิมพ์ ( 'เปิดใช้งาน WDT แล้ว' ) ;
}
เป็นโมฆะ วนซ้ำ ( ) {
สำหรับ ( ภายใน ฉัน = 0 ; ฉัน < 5 ; ฉัน ++ )
{
อนุกรม พิมพ์ ( 'ต่อเนื่อง' ) ;
ล่าช้า ( 500 ) ;
wdt_reset ( ) ; //รีเซ็ตโปรแกรมเฝ้าระวัง
}
ในขณะที่ ( 1 ) ; //ตัวจับเวลา Watchdog จะทำงานที่นี่
}
ในโค้ดข้างต้น เราจะเริ่มต้นไลบรารีสำหรับ ตัวจับเวลาสุนัขเฝ้าบ้าน วิธี. จากนั้นภายในโค้ดเราจะเริ่มต้น Serial และปิดการใช้งาน สุนัขเฝ้าบ้าน จุดเริ่มต้น. หลังจากล่าช้าไปบ้าง เราก็เปิดใช้งาน ตัวจับเวลาสุนัขเฝ้าบ้าน 2 วินาที ซึ่งหมายความว่า Watchdog ควรถูกกระตุ้นและรีสตาร์ทไมโครคอนโทรลเลอร์โดยหมดเวลา 2 วินาที จากนั้นโค้ดจะเข้าสู่ลูปและดำเนินการคำสั่งในขณะที่รีเซ็ต ตัวจับเวลาสุนัขเฝ้าบ้าน ทุกวินาที. จากนั้นจะเข้าสู่ลูปในขณะที่ไม่มีที่สิ้นสุดซึ่งทริกเกอร์ Watchdog และรีเซ็ตบอร์ด Arduino
ขั้นตอนที่ 2: ตอนนี้ทำซ้ำ ขั้นตอนที่ 4 ถึงขั้นตอนที่ 6 (ไม่รวมขั้นตอนที่ 5) ที่ให้ไว้ในวิธีแรกในการอัพโหลดโค้ด จากนั้นใช้ไฟล์ การตรวจสอบแบบอนุกรม ตัวเลือกในการตรวจสอบผลลัพธ์:
ผลลัพธ์ข้างต้นแสดงว่าครั้งหนึ่ง ตัวจับเวลาสุนัขเฝ้าบ้าน เมื่อเปิดใช้งาน มันจะวนซ้ำต่อไป จากนั้นรีเซ็ตบอร์ด Arduino และทำซ้ำขั้นตอนเดิมอีกครั้ง
วิธีรีเซ็ตบอร์ด Arduino โดยการรีเซ็ต Sketch ในหน่วยความจำ
บอร์ด Arduino มีหน่วยความจำสองประเภท: หน่วยความจำแฟลชและ RAM หน่วยความจำแฟลชจะเก็บเนื้อหาไว้เมื่อปิดอุปกรณ์ ในขณะที่เนื้อหาใน RAM จะสูญหายไปเมื่อปิดอุปกรณ์ ภาพร่างที่ทำงานบนบอร์ด Arduino ของคุณจะถูกจัดเก็บไว้ในหน่วยความจำแฟลช และเมื่อคุณอัปโหลดภาพร่างใหม่ มันจะเขียนทับภาพร่างที่มีอยู่ในหน่วยความจำแฟลช ดังนั้นคุณจึงสามารถรีเซ็ตบอร์ด Arduino ได้อย่างง่ายดายโดยการรีเซ็ตภาพสเก็ตช์ในหน่วยความจำ ซึ่งหมายถึงการเขียนทับด้วยสเก็ตช์ใหม่ ซึ่งสามารถทำได้โดยใช้ขั้นตอนต่อไปนี้:
ขั้นตอนที่ 1: ขั้นแรกให้เชื่อมต่อบอร์ด Arduino ของคุณเข้ากับระบบของคุณดังที่ได้กล่าวไว้ก่อนหน้านี้
ขั้นตอนที่ 2: ไปที่ ตัวอย่าง จาก ไฟล์ ส่วน จากนั้นเลือก ขั้นต่ำเปล่า จาก พื้นฐาน หมวดหมู่:
ขั้นตอนที่ 3: ตรวจสอบให้แน่ใจว่าได้เลือกบอร์ด Arduino ของคุณสำหรับตัวอย่างนี้ ซึ่งคุณสามารถยืนยันได้จาก เครื่องมือ>กระดาน ส่วน:
บันทึก: คุณควรตรวจสอบพอร์ตสำหรับ Arduino UNO ของคุณจาก ท่าเรือ ตัวเลือกโดยใช้เมนูเดียวกัน
ขั้นตอนที่ 4: ตอนนี้คุณสามารถใช้ ที่อัพโหลด ตัวเลือกในการอัปโหลดโค้ดและรีเซ็ตบอร์ด Arduino:
วิธีรีเซ็ตบอร์ด Arduino โดยการรีเซ็ตหน่วยความจำ EEPROM
บอร์ดที่ใช้ AVR มี EEPROM ซึ่งเป็นหน่วยความจำแฟลชแบบไม่ลบเลือนซึ่งจะเก็บค่าไว้แม้ว่าบอร์ดจะปิดอยู่ก็ตาม คุณสามารถรีเซ็ต EEPROM ได้โดยใช้ EEPROM.write() ฟังก์ชั่นที่ตั้งค่าเป็นไบต์เป็นศูนย์เพื่อรีเซ็ตบอร์ด Arduino ควรอัปโหลดโค้ดต่อไปนี้บน Arduino IDE ของคุณโดยเชื่อมต่อ Arduino UNO กับระบบของคุณก่อน จากนั้นใช้ ที่อัพโหลด ตัวเลือกในการรีเซ็ตบอร์ด Arduino บน Arduino IDE
#รวม < อีพรอม ชม. >เป็นโมฆะ ติดตั้ง ( ) {
// การเริ่มต้นพิน Arduino LED เป็นเอาต์พุต
พินโหมด ( 13 , เอาท์พุท ) ;
สำหรับ ( ภายใน ฉัน = 0 ; ฉัน < อีพรอม ความยาว ( ) ; ฉัน ++ ) {
อีพรอม เขียน ( ฉัน, 0 ) ;
}
// เปิด Arduino LED เมื่อเสร็จแล้ว
ดิจิทัลเขียน ( 13 , สูง ) ;
}
เป็นโมฆะ วนซ้ำ ( ) {
}
บทสรุป
การรีเซ็ตบอร์ด Arduino เป็นงานพื้นฐานและใช้กันอย่างแพร่หลายสำหรับผู้ใช้ที่ทำงานในโครงการของตน มันมีประโยชน์ในกรณีที่รหัสค้างและวิธีเดียวที่เหลือคือการรีเซ็ตบอร์ด คุณสามารถรีเซ็ตบอร์ด Arduino ผ่านทางบิวท์อินได้ ปุ่มรีเซ็ต หรือใช้ รีเซ็ตพิน . คุณยังสามารถรีเซ็ตบอร์ด Arduino ได้โดยใช้ ฟังก์ชั่นรีเซ็ต , วิธีจับเวลาจ้องจับผิด , กำลังรีเซ็ตภาพร่างในหน่วยความจำ หรือ หน่วยความจำอีพรอม ในรหัสของคุณ คำแนะนำสำหรับวิธีการทั้งหมดมีอยู่ในส่วนด้านบนของคู่มือนี้ เลือกวิธีที่เหมาะกับคุณที่สุด และเริ่มเขียนโค้ดด้วยบอร์ด Arduino ได้อย่างราบรื่น