วิธีรีเซ็ตบอร์ด Arduino

Withi Riset Bxrd Arduino



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

คู่มือนี้ครอบคลุมโครงร่างต่อไปนี้:

เหตุใดการรีเซ็ตบอร์ด Arduino จึงมีประโยชน์







วิธีรีเซ็ตบอร์ด Arduino



บทสรุป



เหตุใดการรีเซ็ตบอร์ด 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 ได้อย่างราบรื่น