ประเภทของความทรงจำใน Arduino
Arduino มาพร้อมกับหน่วยความจำ SRAM, Flash และ EEPROM สามประเภท หนึ่งในนั้นคือ Volatile และอีกสองตัวที่เหลือคือ Non-Volatile หน่วยความจำระเหยจะลบข้อมูลเมื่อคุณถอดกำลังไฟฟ้าเข้า ในทางกลับกัน หน่วยความจำแบบไม่ลบเลือนจะเก็บข้อมูลไว้แม้ว่าคุณจะถอดไฟ DC อินพุตหรือรีเซ็ต Arduino ก็ตาม
ด้านล่างนี้ฉันได้อธิบายสั้น ๆ เกี่ยวกับหน่วยความจำสามประเภทและสิ่งที่พวกเขาเก็บไว้:
แฟลช : เป็นประเภทของหน่วยความจำที่เก็บร่าง Arduino ของเรา เมื่อคุณรีเซ็ตข้อมูล Arduino จะยังคงถูกบันทึกไว้ในนั้น
SRAM : SRAM (Static Random Access Memory) สร้างและจัดเก็บตัวแปรทุกประเภทและเล่นกับตัวแปรเหล่านี้เมื่อเรียกใช้ในโปรแกรม เมื่อคุณรีเซ็ต Arduino เนื้อหาทั้งหมดถูกลบ
EEPROM : (หน่วยความจำแบบอ่านอย่างเดียวที่เขียนโปรแกรมได้แบบลบได้ด้วยไฟฟ้า) จัดเก็บข้อมูลที่จะเก็บไว้เป็นระยะเวลานานขึ้น จะเก็บข้อมูลไว้แม้ว่ากำลังไฟฟ้าเข้าจะสูญหาย ฉันอยากจะแนะนำ EEPROM เพราะมันมีความน่าเชื่อถือมากกว่าเมื่อพูดถึงการจัดการหน่วยความจำ EEPROM เป็นเหมือนฮาร์ดไดรฟ์ที่มีอยู่ในพีซี EEPROM จะจดจำโปรแกรมล่าสุดที่คุณรันโดยใช้ Arduino
จำนวนไบต์ทุกที่เก็บหน่วยความจำขึ้นอยู่กับไมโครคอนโทรลเลอร์ที่คุณใช้ด้านล่าง ฉันได้กล่าวถึงความจุหน่วยความจำของไมโครคอนโทรลเลอร์สองตัว:
ประเภทหน่วยความจำ | ATmega328P | ATmega2560 |
---|---|---|
แฟลช | 32K ไบต์ | 256K ไบต์ |
SRAM | 2K ไบต์ | 8K ไบต์ |
EEPROM | 1K ไบต์ | 4K ไบต์ |
วิธีล้างหน่วยความจำ Arduino
เรามีทางเลือกสองสามทางในการล้างหน่วยความจำ Arduino ของเรา:
- ง่ายสุดก็แค่กด รีเซ็ต มีปุ่มอยู่บนบอร์ด Arduino
- เข้าร่วมหมุด RX และ GND
- กำลังอัปโหลดร่างขั้นต่ำเปล่า
ตอนนี้ เราจะพูดถึงรายละเอียดสามวิธีเหล่านี้โดยละเอียด:
1: ใช้ปุ่มรีเซ็ตเพื่อล้างหน่วยความจำ
วิธีที่ง่ายที่สุดในการรีเซ็ต Arduino ของคุณคือการกดปุ่ม รีเซ็ต ปุ่มที่เน้นในภาพด้านบน:
การกดปุ่มนี้จะไม่ลบภาพสเก็ตช์ที่จัดเก็บไว้แล้ว แต่จะล้างเฉพาะ ระเหย หน่วยความจำเช่น RAM โปรแกรมที่เก็บไว้จะรีสตาร์ทและข้อมูลเช่นตัวแปรพอยน์เตอร์คำสั่งและการลงทะเบียนที่เก็บไว้ใน RAM จะชัดเจน
ทำตามขั้นตอนเหล่านี้เพื่อล้าง Arduino Memory (RAM) โดยใช้ปุ่มรีเซ็ต:
ขั้นตอนที่ 1 : ตัดการเชื่อมต่อ Arduino Power
ขั้นตอนที่ 2 : ตอนนี้ให้กดปุ่มรีเซ็ตค้างไว้ในขณะที่เปิด Arduino ของคุณโดยเชื่อมต่อกับแหล่งจ่ายไฟ
2: การล้างหน่วยความจำ Arduino โดยใช้ RX และ GND Pins
วิธีที่สองในการล้างหน่วยความจำ Arduino คือการใช้พิน RX และ GND ทำตามขั้นตอนที่กล่าวถึงด้านล่าง:
ขั้นตอนที่ 1 : ถอดสายเคเบิลอนุกรม USB ซึ่งจะเป็นการปิด Arduino ของคุณ การสื่อสารแบบอนุกรมบนบอร์ด Arduino ทำได้โดยใช้สองพิน RX และ TX การถอดสาย USB จะทำให้พินทั้งสองนี้ว่าง
ขั้นตอนที่ 2 : ตอนนี้เข้าร่วมพิน Rx และ GND ในระหว่างนั้นใช้ตัวต้านทาน (20kOhm) เพื่อรักษาขีด จำกัด กระแสไฟที่ปลอดภัย
ขั้นตอนที่ 3 : ถอดพิน RX เปิดเครื่อง Arduino โดยใช้สาย USB แต่ก่อนที่จะถอดพิน RX ออกก่อน
ขั้นตอนที่ 4 : เปิด Arduino IDE ของคุณและอัปโหลดภาพสเก็ตช์ง่ายๆ หรือภาพสเก็ตช์ 'Bare Minimum' จากไลบรารี Arduino
ขั้นตอนที่ 5 : อีกครั้ง ให้ถอดสาย USB ที่ Arduino ของคุณจะปิดอีกครั้ง การทำเช่นนี้จะทำให้มั่นใจได้ถึงขีดจำกัดปัจจุบันระหว่างพอร์ตเทอร์มินัลสองพอร์ต RX และ GND
ขั้นตอนที่ 6 : เนื่องจากเราได้ถอดสาย USB ออกแล้ว จึงตัดการเชื่อมต่อทั้งขั้ว RX และ GND
ขั้นตอนที่ 7 : สุดท้าย เชื่อมต่อบอร์ด Arduino ของคุณกับพีซีโดยตรงโดยใช้พอร์ต COM
3: การล้างหน่วยความจำ Arduino โดยการอัปโหลดภาพร่างเปล่า
สมมติว่าคุณไม่ต้องการใช้สายเพื่อล้างหน่วยความจำ Arduino ดังนั้นวิธีอื่นในการทำคือการอัปโหลดภาพร่างเปล่าหรือที่เรียกว่าภาพร่าง 'Bare Minimum' เพื่อล้างหน่วยความจำ Arduino ของคุณ
ก่อนอัปโหลดแบบร่าง “ขั้นต่ำเปล่า” ให้ทำตามขั้นตอนด้านล่างก่อน:
ขั้นตอนที่ 1 : ถอดสาย USB เพื่อถอด Arduino ออกจากแหล่งพลังงาน
ขั้นตอนที่ 2 : กดปุ่ม Windows จากแป้นพิมพ์และพิมพ์ ตัวจัดการอุปกรณ์ จากนั้นคลิกเปิด
ขั้นตอนที่ 3 : มันจะเปิดหน้าต่างใหม่ ตอนนี้เลื่อนลงไปที่ COM & LPT ส่วน.
ขั้นตอนที่ 4 : ค้นหาและเลือก พอร์ต COM ที่ Arduino เชื่อมต่ออยู่
ขั้นตอนที่ 5 : คลิกขวาแล้วกด คุณสมบัติ จากเมนูแบบเลื่อนลง จากนั้นเลือก 'การตั้งค่าพอร์ต' และเปลี่ยน 'การควบคุมการไหล' เป็น ฮาร์ดแวร์ .
ตอนนี้คุณได้ตั้งค่าฮาร์ดแวร์ของคุณแล้ว ก็ถึงเวลาอัปโหลดแบบร่าง 'Bare Minimum' ในบอร์ด Arduino ของคุณ ด้านล่างฉันได้แสดงภาพสเก็ตช์เปล่าซึ่งแทนที่ภาพร่างก่อนหน้าที่คุณอัปโหลดและบอกให้ Arduino ตั้งค่าอะไรและไม่วนซ้ำ
// ร่างขั้นต่ำเปลือยการตั้งค่าเป็นโมฆะ ( )
{
}
วงโมฆะ ( )
{
ล่าช้า ( 500 ) ;
}
บทสรุป
สมมติว่าคุณไม่ได้ใช้ Arduino มาระยะหนึ่งแล้ว และตอนนี้คุณต้องการเชื่อมต่อกับวงจรใหม่ และคุณจำโปรแกรมสุดท้ายที่คุณอัปโหลดในนั้นไม่ได้ ดังนั้นภาพร่างก่อนหน้านี้อาจสร้างความเสียหายให้กับวงจรใหม่ของคุณ คุณควรอัปโหลด “ Blank Sketch” หรือใช้โปรแกรม LED Blink ที่มาพร้อมกับ Arduino และมันสามารถบันทึกวงจรของคุณจากความเสียหายใดๆ