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

Arduino Due -д 24LC256 EEPROM нэмэх: 3 алхам
Arduino Due -д 24LC256 EEPROM нэмэх: 3 алхам

Видео: Arduino Due -д 24LC256 EEPROM нэмэх: 3 алхам

Видео: Arduino Due -д 24LC256 EEPROM нэмэх: 3 алхам
Видео: Подключение внешней EEPROM к Ардуино на примере памяти 24LC512 2024, Арваннэгдүгээр
Anonim
Arduino Due -д 24LC256 EEPROM нэмж оруулах
Arduino Due -д 24LC256 EEPROM нэмж оруулах

Arduino -д eeprom байхгүй байна. Энэхүү зааварчилгаа нь нэгийг нэмж, arduino програм хангамжийн шинэчлэлтээс амьд үлдэх үнэ цэнийг санах ойд хадгалах боломжийг танд олгоно.

Алхам 1: Breadboard хийх

Breadboard хийх
Breadboard хийх

Энд үнэхээр сайн заавар байна. 1 -ээс 4 -р зүү, 7 -р зүү нь газардсан байна. зүү 8 нь зохих самбар дээрх 3.3V тэжээлд холбогдсон, i2c SDA (өгөгдөл) ба SCL (цаг) тээглүүрт холбогдсон шар (зүү 6) ба цагаан (зүү 5) утаснууд (21 ба 20 дугаартай)).

Алхам 2: Кодын цаг

Кодын цаг
Кодын цаг

Миний ноорог зураг дээр ашигладаг зарим кодын хэсгүүд энд байна. Нэгдүгээрт, ноорогныхоо дээд хэсэгт байрлах Wire номын сангийн толгойг оруулна уу: / * Тохиргоог хадгалахын тулд 24LC256 EEPROM ашиглана уу * / #include Дараа нь EEPROM -аас байт унших, бичих зарим функцуудыг нэмж оруулаарай (би зөвхөн ганц нэг байтын талаар санаа тавьдаг, гэхдээ чип дэх хуудас бичих боломж). 0x50 гэсэн макро тодорхойлолт байгаа гэдгийг анхаарна уу.. энэ бол i2c автобус дээрх чипний хаяг юм (та i2c автобусанд нэгээс олон i2c зүйлийг холбож, хаягаа сольж аль хэлмээр байгаагаа сонгох боломжтой). / * Эдгээр хоёр функц нь 24LC256 EEPROM чип дээр бичихэд тусалдаг */ #define EEPROM_ADDR 0x50 void EEPROM_write (unsigned int addr, byte data) {int rdata = data; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.write (rdata); Wire.endTransmission (); //Serial.print("EEPROM бичих: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); саатал (5); } байт EEPROM_read (unsigned int addr) {байтын өгөгдөл = 0xFF; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.endTransmission (); Wire.requestFrom (EEPROM_ADDR, 1); if (Wire.available ()) data = Wire.read (); //Serial.print("EEPROM уншсан: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); саатал (5); өгөгдлийг буцаах; } Хэрэв та дибаг хийх гаралтыг харахыг хүсвэл Serial.print (…) мөрүүдийг тайлж болно. Arduinos setup () функц дээр та утас номын санг эхлүүлж, анхны утгаар нь унших боломжтой. Энд би хоёр байтаар (туг ба max_cc), хоёр үг (lean_min ба lean_max) болон үгсийн массивыг sd_max [3] уншсан: // EEPROM Wire.begin () -д хадгалагдсан утгуудыг унших; туг = EEPROM_read (0); max_cc = EEPROM_read (1); lean_min = үг (EEPROM_read (3), EEPROM_read (2)); lean_max = үг (EEPROM_read (5), EEPROM_read (4)); for (int j = 0; j <3; j) {sd_max [j] = word (EEPROM_read (7 j*2), EEPROM_read (6 j*2)); } EEPROM -д тэдгээрийг бичдэг кодын хэсэг нь энд байна: EEPROM_write (0, flags); EEPROM_write (1, max_cc); EEPROM_write (2, lowByte (lean_min)); EEPROM_write (3, highByte (lean_min)); EEPROM_write (4, lowByte (lean_max)); EEPROM_write (5, highByte (lean_max)); for (int j = 0; j <3; j) {EEPROM_write (6 j*2, lowByte (sd_max [j])); EEPROM_write (7 j*2, highByte (sd_max [j])); } Үнэхээр энэ талаар.

Алхам 3: Үүнийг утсаар холбоно уу

Үүнийг утсаар холбоно уу
Үүнийг утсаар холбоно уу

Үүнийг хашлага руу шургуулж, хийсэн ажлуудаа зарим нэг самбар дээр холбоно уу.

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