Агуулгын хүснэгт:

Таны Arduino -ийн суулгасан EEPROM: 6 алхам
Таны Arduino -ийн суулгасан EEPROM: 6 алхам

Видео: Таны Arduino -ийн суулгасан EEPROM: 6 алхам

Видео: Таны Arduino -ийн суулгасан EEPROM: 6 алхам
Видео: BTT Octopus Pro — установка дисплея Creality Ender3 2024, Есдүгээр
Anonim
Таны Arduino -ийн суулгасан EEPROM
Таны Arduino -ийн суулгасан EEPROM

Энэ нийтлэлд бид Arduino самбар дээрх дотоод EEPROM -ийг судлах болно. Та нарын зарим нь EEPROM гэж юу хэлж байна вэ? EEPROM бол цахилгаан арилгадаг програмчлагдах зориулалттай зөвхөн унших санах ой юм.

Энэ бол хүчийг унтрааж эсвэл Arduino-г дахин тохируулсны дараа санах боломжтой санах ойн хэлбэр юм. Ийм санах ойн гоо үзэсгэлэн нь бид ноорог хэлбэрээр үүсгэсэн өгөгдлийг илүү тогтмол хадгалах боломжтой юм.

Та яагаад дотоод EEPROM ашиглах ёстой гэж? Нөхцөл байдлын хувьд өвөрмөц өгөгдөл нь илүү байнгын байшинтай байх шаардлагатай нөхцөл байдлын хувьд. Жишээлбэл, Arduino-д суурилсан арилжааны төслийн өвөрмөц серийн дугаар, үйлдвэрлэлийн огноог хадгалах-ноорогын функц нь серийн дугаарыг LCD дэлгэц дээр харуулах эсвэл "үйлчилгээний ноорог" байршуулж өгөгдлийг унших боломжтой болно. Эсвэл та odometer эсвэл үйлдлийн мөчлөг тоолуур гэх мэт тодорхой үйл явдлуудыг тоолж, хэрэглэгчийг дахин тохируулахыг зөвшөөрөхгүй байж магадгүй юм.

Алхам 1: Ямар төрлийн өгөгдлийг хадгалах боломжтой вэ?

Ямар төрлийн өгөгдлийг хадгалах боломжтой вэ?
Ямар төрлийн өгөгдлийг хадгалах боломжтой вэ?

Өгөгдлийн байтаар дүрсэлж болох аливаа зүйл. Нэг байт өгөгдөл нь найман бит өгөгдлөөс бүрдэнэ. Бит нь асаалттай (утга 1) эсвэл унтраалттай (утга 0) байж болох бөгөөд тоонуудыг хоёртын хэлбэрээр дүрслэхэд төгс төгөлдөр юм. Өөрөөр хэлбэл, хоёртын тоо нь зөвхөн тэг болон нэгийг ашиглан утгыг илэрхийлдэг. Тиймээс хоёртын тоог "үндсэн-2 ″" гэж нэрлэдэг бөгөөд энэ нь зөвхөн хоёр оронтой тоонуудыг ашигладаг.

Зөвхөн хоёр оронтой хоёртын тоо илүү том тоог хэрхэн илэрхийлж чадах вэ? Үүнд маш олон тооны болон тэгийг ашигладаг. 10101010 гэж хоёртын тоог шалгацгаая. Энэ нь 2-р суурь тоо тул x = 0-ээс эхлэн цифр тус бүр 2-ийг x-ийн хүчээр илэрхийлнэ.

Алхам 2:

Зураг
Зураг

Хоёртын тооны орон бүрийн цифр нь үндсэн 10 тоог хэрхэн илэрхийлж болохыг үзнэ үү. Тиймээс дээрх хоёртын тоо нь үндсэн 10 дахь 85-ийг илэрхийлдэг-85 утга нь үндсэн 10 утгуудын нийлбэр юм. Өөр нэг жишээ бол 11111111 хоёртын системд 10 -р сууринд 255 -тэй тэнцүү байна.

Алхам 3:

Одоо тэр хоёртын тооны цифр бүр нэг "бит" санах ой ашигладаг бөгөөд найман бит нь байт үүсгэдэг. Манай Arduino самбар дээрх микроконтроллеруудын дотоод хязгаарлалтын улмаас бид зөвхөн 8 битийн тоог (нэг байт) EEPROM-д хадгалах боломжтой.

Энэ нь тооны аравтын бутархай утгыг тэгээс 255 хооронд байлгахыг хязгаарладаг. Таны өгөгдлийг тухайн тооны мужид хэрхэн илэрхийлэхийг та өөрөө шийдэх болно. Үүнийг бүү хойшлуулаарай - зөв байдлаар байрлуулсан тоо нь бараг бүх зүйлийг илэрхийлж чадна! Анхаарал хандуулах нэг хязгаарлалт байдаг - бид EEPROM -д хэдэн удаа уншиж, бичиж болно. Үйлдвэрлэгч Атмелын хэлснээр EEPROM нь 100,000 унших/бичих мөчлөгийн хувьд сайн байдаг (мэдээллийн хүснэгтийг үзнэ үү).

Алхам 4:

Одоо бид өөрсдийн бит ба байтуудыг мэддэг болсон, манай Arduino микроконтроллерт хичнээн байт хадгалах боломжтой вэ? Хариулт нь микроконтроллерийн загвараас хамаарч өөр өөр байдаг. Жишээлбэл:

  • Armelino Uno, Uno SMD, Nano, Lilypad гэх мэт Atmel ATmega328 бүхий самбарууд - 1024 байт (1 килобайт)
  • Armelino Mega цуврал гэх мэт Atmel ATmega1280 эсвэл 2560 бүхий самбар - 4096 байт (4 килобайт)
  • Atmel ATmega168 бүхий самбарууд, тухайлбал анхны Arduino Lilypad, хуучин Nano, Diecimila гэх мэт - 512 байт.

Хэрэв та итгэлгүй байгаа бол Arduino -ийн тоног төхөөрөмжийн индексийг үзэх эсвэл самбар нийлүүлэгчээсээ асуугаарай. Хэрэв танд микроконтроллерийн хэмжээнээс илүү EEPROM хадгалалт хэрэгтэй бол гадаад I2C EEPROM ашиглах талаар бодоорой.

Энэ үед бид Arduino -ийн EEPROM -д ямар төрлийн өгөгдөл, ямар хэмжээгээр хадгалах боломжтой болохыг одоо ойлгож байна. Одоо үүнийг ажил хэрэг болгох цаг болжээ. Өмнө дурьдсанчлан, бидний өгөгдөлд хязгаарлагдмал орон зай байна. Дараах жишээнүүд дээр бид ATMEGA328 бүхий 1024 байт EEPROM санах ойтой ердийн Arduino самбарыг ашиглах болно.

Алхам 5:

EEPROM -ийг ашиглахын тулд номын сан шаардлагатай тул ноорог зургандаа дараах номын санг ашиглана уу.

#"EEPROM.h" оруулах

Үлдсэн нь маш энгийн. Өгөгдлийг хадгалахын тулд бид дараах функцийг ашигладаг.

EEPROM. бичих (a, b);

A параметр нь өгөгдлийн бүхэл тоог (0 ~ 255) хадгалах EEPROM дахь байрлал юм. Энэ жишээнд бидэнд 1024 байт санах ойн санах ой байгаа тул a -ийн утга 0 -ээс 1023 хооронд байна. Өгөгдлийн хэсгийг авахын тулд мөн адил энгийн зүйлийг ашиглана уу.

z = EEPROM.read (a);

Энд z нь EEPROM байрлалаас өгөгдлийг хадгалах бүхэл тоо a. Одоо жишээ харъя.

Алхам 6:

Зураг
Зураг

Энэхүү ноорог нь 0 -ээс 255 хооронд санамсаргүй тоонууд үүсгэж, тэдгээрийг EEPROM -д хадгалж, дараа нь сериал дэлгэц дээр татаж аваад харуулах болно. EEsize хувьсагч нь таны EEPROM хэмжээний дээд хязгаар тул Arduino Uno -ийн хувьд 1024, мега -ийн хувьд 4096 байх болно.

// Arduino дотоод EEPROM жагсаал

#оруулах

int zz; int EEsize = 1024; // хэмжээ нь таны удирдах зөвлөлийн EEPROM -ийн байтаар

хүчингүй тохиргоо ()

{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Санамсаргүй тоо бичих …"); for (int i = 0; i <EEsize; i ++) {zz = санамсаргүй (255); EEPROM.write (i, zz); } Serial.println (); for (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("EEPROM байрлал:"); Цуваа.хэвлэх (a); Serial.print ("агуулсан"); Serial.println (zz); саатал (25); }}

Зураг дээр үзүүлсэн шиг цуваа дэлгэцийн гаралт гарч ирнэ.

Манай Arduino системд өгөгдөл хадгалах өөр нэг ашигтай арга энд байна. Хэдийгээр хамгийн сэтгэл хөдөлгөм заавар биш ч гэсэн энэ нь мэдээж хэрэг хэрэг болно.

Энэхүү бичлэгийг pmdway.com танд хүргэсэн бөгөөд энэ нь үйлдвэрлэгч болон цахилгаан бараа сонирхогчдод зориулагдсан бүх зүйлийг дэлхий даяар үнэгүй хүргэж өгөх болно.

Зөвлөмж болгож буй: