Სარჩევი:

არდუინოს 24LC256 EEPROM- ის დამატება: 3 ნაბიჯი
არდუინოს 24LC256 EEPROM- ის დამატება: 3 ნაბიჯი

ვიდეო: არდუინოს 24LC256 EEPROM- ის დამატება: 3 ნაბიჯი

ვიდეო: არდუინოს 24LC256 EEPROM- ის დამატება: 3 ნაბიჯი
ვიდეო: Arduino UNO - Write/Read EEPROM 24LC256 2024, ნოემბერი
Anonim
არდუინოს გამო 24LC256 EEPROM- ის დამატება
არდუინოს გამო 24LC256 EEPROM- ის დამატება

არდუინოს გამო აკლია ეპრომი. ეს ინსტრუქცია დასძენს ერთს და გაძლევთ საშუალებას შეინახოთ ღირებულებები არასტაბილურ მეხსიერებაში, რომელიც გადარჩება arduino firmware განახლებისას.

ნაბიჯი 1: პურის დაფა

პურის დაფა
პურის დაფა

აქ არის მართლაც კარგი ინსტრუქცია: https://www.hobbytronics.co.uk/arduino-external-eeprom მე უბრალოდ მივყევი მათ. ფოტო გვიჩვენებს breadboarded ჩართვა. ქინძისთავები 1 -დან 4 -მდე და 7 -იანი დაფუძნებულია. pin 8 დაკავშირებულია 3.3V მიწოდებასთან დაკავშირებით დაფაზე. ყვითელი (პინ 6) და თეთრი (პინ 5) მავთულები, რომლებიც დაკავშირებულია i2c SDA (მონაცემები) და SCL (საათი) ქინძისთავებთან შესაბამის დაფაზე (დანომრილი 21 და 20).

ნაბიჯი 2: კოდის დრო

კოდის დრო
კოდის დრო

აქ მოცემულია კოდის რამდენიმე ნაწყვეტი, რომელსაც ვიყენებ ჩემს ესკიზებში. პირველ რიგში, შეიტანეთ Wire ბიბლიოთეკის სათაურები თქვენი ესკიზის ზედა ნაწილში: / * გამოიყენეთ 24LC256 EEPROM პარამეტრების შესანახად * / #include შემდეგ დაამატეთ რამდენიმე ფუნქცია EEPROM– დან ბაიტების წასაკითხად და დასაწერად (მე მაინტერესებს მხოლოდ ცალკეული ბაიტები, მაგრამ არის გვერდზე ჩაწერის ფუნქცია ჩიპშიც). გაითვალისწინეთ, რომ არის 0x50- ის მაკრო განმარტება.. ეს არის ჩიპის მისამართი i2c ავტობუსში (შეგიძლიათ დააკავშიროთ ერთზე მეტი i2c ნივთი i2c ავტობუსზე და აირჩიოთ რომელთან გსურთ ვისაუბროთ მისამართის შეცვლით). / * ეს ორი ფუნქცია გვეხმარება დავწეროთ 24LC256 EEPROM ჩიპზე */ #განსაზღვრეთ EEPROM_ADDR 0x50 void EEPROM_write (ხელმოუწერელი int addr, ბაიტის მონაცემები) {int rdata = მონაცემები; 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.println (მონაცემები); დაგვიანება (5); } ბაიტი EEPROM_read (ხელმოუწერელი int addr) {ბაიტი მონაცემები = 0xFF; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.endTransmission (); მავთული. მოთხოვნა (EEPROM_ADDR, 1); if (Wire.available ()) მონაცემები = Wire.read (); //Serial.print("EEPROM წაკითხული: addr: "); // სერიული. ბეჭდვა (დამატება); // სერიული. ბეჭდვა (""); //Serial.println (მონაცემები); დაგვიანება (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] = სიტყვა (EEPROM_read (7 j*2), EEPROM_read (6 j*2)); } აი ცოტაოდენი კოდი, რომელიც ჩაწერს მათ EEPROM- ში: EEPROM_write (0, დროშები); 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, მაღალი ბიტი (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: შეაერთეთ იგი

Wire It Up
Wire It Up

შეაერთეთ იგი ვერობორდზე, რომ დაიხუროს დანართი და შესრულებული სამუშაოები.

გირჩევთ: