สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12
ในบทความนี้ เราจะมาตรวจสอบ EEPROM ภายในในบอร์ด Arduino ของเรา EEPROM ที่พวกคุณบางคนอาจกำลังพูดถึงคืออะไร? EEPROM เป็นหน่วยความจำแบบอ่านอย่างเดียวที่สามารถตั้งโปรแกรมได้ซึ่งลบได้ด้วยไฟฟ้า
เป็นหน่วยความจำแบบไม่ลบเลือนรูปแบบหนึ่งที่สามารถจดจำสิ่งต่างๆ ได้เมื่อปิดเครื่อง หรือหลังจากรีเซ็ต Arduino ความสวยงามของหน่วยความจำประเภทนี้คือการที่เราสามารถจัดเก็บข้อมูลที่สร้างขึ้นภายในแบบร่างได้อย่างถาวรมากขึ้น
ทำไมคุณถึงใช้ EEPROM ภายใน? สำหรับสถานการณ์ที่ข้อมูลเฉพาะสถานการณ์ต้องการบ้านที่ถาวรมากขึ้น ตัวอย่างเช่น การจัดเก็บหมายเลขซีเรียลที่ไม่ซ้ำกันและวันที่ผลิตของโปรเจ็กต์ที่ใช้ Arduino เชิงพาณิชย์ ฟังก์ชั่นของภาพสเก็ตช์สามารถแสดงหมายเลขซีเรียลบน LCD หรือข้อมูลสามารถอ่านได้โดยการอัปโหลด "ร่างบริการ" หรือคุณอาจต้องนับเหตุการณ์บางอย่างและไม่อนุญาตให้ผู้ใช้รีเซ็ตเหตุการณ์ เช่น มาตรระยะทางหรือตัวนับรอบการทำงาน
ขั้นตอนที่ 1: สามารถจัดเก็บข้อมูลประเภทใดได้บ้าง
อะไรก็ตามที่สามารถแสดงเป็นไบต์ของข้อมูลได้ ข้อมูลหนึ่งไบต์ประกอบด้วยข้อมูลแปดบิต บิตสามารถเป็นได้ทั้งเปิด (ค่า 1) หรือปิด (ค่า 0) และเหมาะสำหรับการแสดงตัวเลขในรูปแบบไบนารี กล่าวอีกนัยหนึ่งเลขฐานสองสามารถใช้ศูนย์และตัวเลขเพื่อแสดงค่าเท่านั้น ดังนั้นเลขฐานสองจึงเรียกว่า "ฐาน-2" เนื่องจากสามารถใช้ตัวเลขได้เพียงสองหลักเท่านั้น
เลขฐานสองที่มีเพียงสองหลักสามารถแทนจำนวนที่มากขึ้นได้อย่างไร ใช้ตัวเลขและศูนย์จำนวนมาก ลองตรวจสอบเลขฐานสองกัน เช่น 10101010 เนื่องจากเป็นตัวเลขฐาน 2 แต่ละหลักแทน 2 ยกกำลัง x ตั้งแต่ x=0 เป็นต้นไป
ขั้นตอนที่ 2:
ดูว่าเลขฐานสองแต่ละหลักสามารถแทนเลขฐาน 10 ได้อย่างไร ดังนั้นเลขฐานสองด้านบนจึงแทน 85 ในฐาน 10 – ค่า 85 คือผลรวมของค่าฐาน 10 อีกตัวอย่างหนึ่ง – 11111111 ในเลขฐานสองเท่ากับ 255 ในฐาน 10
ขั้นตอนที่ 3:
ตอนนี้แต่ละหลักในเลขฐานสองนั้นใช้หน่วยความจำหนึ่งบิตและแปดบิตสร้างหนึ่งไบต์ เนื่องจากข้อจำกัดภายในของไมโครคอนโทรลเลอร์ในบอร์ด Arduino เราจึงสามารถเก็บตัวเลข 8 บิต (หนึ่งไบต์) ใน EEPROM ได้เท่านั้น
ซึ่งจะจำกัดค่าทศนิยมของตัวเลขให้อยู่ระหว่างศูนย์ถึง 255 จากนั้นจึงขึ้นอยู่กับคุณที่จะตัดสินใจว่าข้อมูลของคุณสามารถแสดงด้วยช่วงตัวเลขนั้นได้อย่างไร อย่าปล่อยให้สิ่งนั้นทำให้คุณผิดหวัง – ตัวเลขที่จัดเรียงอย่างถูกวิธีสามารถแสดงได้เกือบทุกอย่าง! มีข้อ จำกัด หนึ่งข้อที่ควรคำนึงถึง - จำนวนครั้งที่เราสามารถอ่านหรือเขียนไปยัง EEPROM ตามที่ผู้ผลิต Atmel กล่าวว่า EEPROM นั้นดีสำหรับรอบการอ่าน/เขียน 100,000 รอบ (ดูเอกสารข้อมูล)
ขั้นตอนที่ 4:
ตอนนี้เรารู้บิตและไบต์ของเราแล้ว ไมโครคอนโทรลเลอร์ของ Arduino สามารถจัดเก็บได้กี่ไบต์ คำตอบจะแตกต่างกันไปตามรุ่นของไมโครคอนโทรลเลอร์ ตัวอย่างเช่น:
- บอร์ดที่มี Atmel ATmega328 เช่น Arduino Uno, Uno SMD, Nano, Lilypad เป็นต้น – 1024 ไบต์ (1 กิโลไบต์)
- บอร์ดที่มี Atmel ATmega1280 หรือ 2560 เช่น Arduino Mega series – 4096 ไบต์ (4 กิโลไบต์)
- บอร์ดที่มี Atmel ATmega168 เช่น Arduino Lilypad ดั้งเดิม, Nano รุ่นเก่า, Diecimila เป็นต้น - 512 ไบต์
หากคุณไม่แน่ใจ ให้ดูดัชนีฮาร์ดแวร์ Arduino หรือสอบถามผู้จำหน่ายบอร์ดของคุณ หากคุณต้องการที่เก็บข้อมูล EEPROM มากกว่าที่มีให้ในไมโครคอนโทรลเลอร์ ให้ลองใช้ I2C EEPROM ภายนอก
ณ จุดนี้เราเข้าใจว่าข้อมูลประเภทใดและเท่าใดที่สามารถเก็บไว้ใน EEPROM ของ Arduino ได้ ตอนนี้ได้เวลานำสิ่งนี้ไปปฏิบัติแล้ว ตามที่กล่าวไว้ก่อนหน้านี้ มีพื้นที่จำกัดสำหรับข้อมูลของเรา ในตัวอย่างต่อไปนี้ เราจะใช้บอร์ด Arduino ทั่วไปกับ ATmega328 ที่มีหน่วยความจำ EEPROM 1024 ไบต์
ขั้นตอนที่ 5:
ในการใช้ EEPROM จำเป็นต้องมีไลบรารี่ ดังนั้นให้ใช้ไลบรารีต่อไปนี้ในแบบสเก็ตช์ของคุณ:
#รวม "EEPROM.h"
ที่เหลือก็ง่ายมาก ในการจัดเก็บข้อมูล เราใช้ฟังก์ชันต่อไปนี้:
EEPROM.write(a,b);
พารามิเตอร์ a คือตำแหน่งใน EEPROM เพื่อเก็บจำนวนเต็ม (0~255) ของข้อมูล b ในตัวอย่างนี้ เรามีหน่วยความจำ 1024 ไบต์ ดังนั้นค่าของ a อยู่ระหว่าง 0 ถึง 1,023 ในการดึงข้อมูลบางส่วนนั้นง่ายเท่ากัน ให้ใช้:
z = EEPROM.read(a);
โดยที่ z เป็นจำนวนเต็มสำหรับเก็บข้อมูลจากตำแหน่ง EEPROM a ทีนี้มาดูตัวอย่าง
ขั้นตอนที่ 6:
สเก็ตช์นี้จะสร้างตัวเลขสุ่มระหว่าง 0 ถึง 255 เก็บไว้ใน EEPROM จากนั้นดึงข้อมูลและแสดงบนจอภาพแบบอนุกรม ตัวแปร EEsize คือขีดจำกัดบนของขนาด EEPROM ของคุณ ดังนั้น (ตัวอย่าง) นี่จะเป็น 1024 สำหรับ Arduino Uno หรือ 4096 สำหรับเมกะ
// การสาธิต EEPROM ภายในของ Arduino
#รวม
int zz; int EEsize = 1024; // ขนาดเป็นไบต์ของ EEPROM. ของบอร์ดคุณ
การตั้งค่าเป็นโมฆะ ()
{ Serial.begin(9600); randomSeed(analogRead(0)); } void loop() { Serial.println("กำลังเขียนตัวเลขสุ่ม…"); สำหรับ (int i = 0; i < EEsize; i++) { zz=random(255); EEPROM.write(i, zz); } Serial.println(); สำหรับ (int a=0; a < EEsize; a++) { zz = EEPROM.read (a); Serial.print("ตำแหน่ง EEPROM: "); Serial.print(ก); Serial.print(" มี "); Serial.println(zz); ล่าช้า(25); } }
เอาต์พุตจากจอภาพอนุกรมจะปรากฏขึ้น ดังแสดงในภาพ
คุณก็มีวิธีที่มีประโยชน์อีกวิธีหนึ่งในการจัดเก็บข้อมูลกับระบบ Arduino ของเรา แม้ว่าจะไม่ใช่บทช่วยสอนที่น่าตื่นเต้นที่สุด แต่ก็มีประโยชน์อย่างแน่นอน
โพสต์นี้มาถึงคุณโดย pmdway.com – ทุกอย่างสำหรับผู้ผลิตและผู้ที่ชื่นชอบอุปกรณ์อิเล็กทรอนิกส์ พร้อมบริการจัดส่งฟรีทั่วโลก
แนะนำ:
การอ่านและเขียนข้อมูลไปยัง EEPROM ภายนอกโดยใช้ Arduino: 5 ขั้นตอน
การอ่านและการเขียนข้อมูลไปยัง EEPROM ภายนอกโดยใช้ Arduino: EEPROM ย่อมาจากหน่วยความจำแบบอ่านอย่างเดียวที่สามารถตั้งโปรแกรมได้ที่สามารถลบได้ด้วยไฟฟ้า EEPROM มีความสำคัญและมีประโยชน์มากเพราะเป็นหน่วยความจำรูปแบบที่ไม่ลบเลือน ซึ่งหมายความว่าแม้ในขณะที่บอร์ดปิดอยู่ ชิป EEPROM ยังคงรักษาโปรแกรมที่
ESP32 Bluetooth Tutorial - วิธีใช้ Bluetooth ในตัวของ ESP32: 5 ขั้นตอน
ESP32 Bluetooth Tutorial | วิธีใช้ Bluetooth ในตัวของ ESP32: สวัสดีทุกคน เนื่องจากบอร์ด ESP32 มาพร้อมกับ WiFi & บลูทูธทั้งคู่ แต่สำหรับโปรเจ็กต์ส่วนใหญ่ เรามักจะใช้แค่ Wifi เราไม่ได้ใช้บลูทูธ ดังนั้นในคำแนะนำนี้ ฉันจะแสดงให้เห็นว่าการใช้บลูทูธของ ESP32 & สำหรับโครงการพื้นฐานของคุณ
Arduino I²C™ EEPROM BYTEBANGER: 5 ขั้นตอน
Arduino I²C™ EEPROM BYTEBANGER: เมื่อเร็ว ๆ นี้ฉันรู้สึกทึ่งกับI²C EEProms หลังจากค้นคืนบางส่วนจากทีวีฉายภาพด้านหลังเครื่องเก่าที่ฉันเลิกใช้ ฉันค้นหาอินเทอร์เน็ตโดยพยายามค้นหาข้อมูลเพิ่มเติมเกี่ยวกับสิ่งเหล่านี้ เช่น เอกสารข้อมูล & บทช่วยสอนเกี่ยวกับวิธีการทำงานเหล่านี้
การเริ่มต้นการตั้งค่า Arduino EEPROM: 5 ขั้นตอน
การเริ่มต้นการตั้งค่า Arduino EEPROM: สวัสดีทุกคน Arduino ทุกตัวมีหน่วยความจำในตัวขนาดเล็กที่เรียกว่า EEPROM คุณสามารถใช้สิ่งนี้เพื่อจัดเก็บการตั้งค่าสำหรับโปรเจ็กต์ของคุณ โดยค่าที่เลือกจะถูกเก็บไว้ระหว่างรอบกำลัง และค่าเหล่านั้นจะอยู่ที่ค่านั้นในครั้งต่อไปที่คุณเปิดเครื่อง Arduino ฉันมี
การเพิ่ม 24LC256 EEPROM ให้กับ Arduino Due: 3 ขั้นตอน
การเพิ่ม 24LC256 EEPROM ให้กับ Arduino Due: Arduino เนื่องจากไม่มี eeprom คำแนะนำนี้เพิ่มหนึ่งรายการและช่วยให้คุณสามารถเก็บค่าในหน่วยความจำแบบไม่ลบเลือนที่จะคงอยู่จากการอัพเดตเฟิร์มแวร์ Arduino