Talaan ng mga Nilalaman:

Pagdaragdag ng isang 24LC256 EEPROM sa Arduino Dahil: 3 Mga Hakbang
Pagdaragdag ng isang 24LC256 EEPROM sa Arduino Dahil: 3 Mga Hakbang

Video: Pagdaragdag ng isang 24LC256 EEPROM sa Arduino Dahil: 3 Mga Hakbang

Video: Pagdaragdag ng isang 24LC256 EEPROM sa Arduino Dahil: 3 Mga Hakbang
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Nobyembre
Anonim
Pagdaragdag ng isang 24LC256 EEPROM sa Arduino Dahil
Pagdaragdag ng isang 24LC256 EEPROM sa Arduino Dahil

Ang arduino dahil ay kulang sa isang eeprom. Ang itinuturo na ito ay nagdaragdag ng isa at pinapayagan kang mag-imbak ng mga halaga sa hindi pabagu-bago ng memorya na makakaligtas sa isang pag-update ng arduino firmware.

Hakbang 1: Breadboarding

Breadboarding
Breadboarding

Mayroong ilang mga talagang mahusay na tagubilin dito: https://www.hobbytronics.co.uk/arduino-external-eeprom Sinundan ko lang sila. Ipinapakita ng larawan ang circuitboarded circuit. ang mga pin na 1 hanggang 4 at pin 7 ay pinagbatayan. Ang pin 8 ay konektado sa supply ng 3.3V sa angkop na board. Ang dilaw (pin 6) at puti (pin 5) na mga wire na konektado sa i2c SDA (data) at SCL (orasan) na mga pin sa angkop na board (may bilang na 21 at 20).

Hakbang 2: Oras ng Code

Oras ng Code
Oras ng Code

Narito ang ilang mga snippet ng code na ginagamit ko sa aking mga sketch. Una, isama ang mga header ng Wire library sa isang lugar malapit sa tuktok ng iyong sketch: / * Gumamit ng 24LC256 EEPROM upang i-save ang mga setting * / #kasama ang Pagkatapos ay magdagdag ng ilang mga pagpapaandar upang mabasa at isulat ang mga byte mula sa EEPROM (May pag-aalaga lang ako sa mga indibidwal na byte ngunit may isang tampok sa pagsusulat ng pahina sa chip din). Tandaan mayroong isang macro na kahulugan ng 0x50.. ito ang address ng chip sa i2c bus (maaari mong ikonekta ang higit sa isang i2c thingies sa isang i2c bus at piliin kung alin ang nais mong kausapin sa pamamagitan ng pagbabago ng address). / * Ang dalawang pagpapaandar na ito ay makakatulong sa amin na sumulat sa 24LC256 EEPROM chip * / #define EEPROM_ADDR 0x50 na walang bisa 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 isulat: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); antala (5); } byte EEPROM_read (unsigned int addr) {byte data = 0xFF; Wire.beginTransmission (EEPROM_ADDR); Wire.write ((int) (addr >> 8)); // MSB Wire.write ((int) (addr & 0xFF)); // LSB Wire.endTransmission (); Wire.requestFrom (EEPROM_ADDR, 1); kung (Wire.available ()) data = Wire.read (); //Serial.print("EEPROM basahin: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); antala (5); ibalik ang data; } Maaari mong i-uncment ang mga linya ng Serial.print (…) kung nais mong makita ang ilang output ng pag-debug. Sa pag-andar ng arduinos () na pag-andar sinimulan mo ang wire library at maaaring mabasa sa mga paunang halaga. Nabasa ko rito sa dalawang byte (watawat at max_cc), dalawang salita (lean_min at lean_max) at isang hanay ng mga salitang sd_max [3]: // basahin ang mga halagang na-save sa EEPROM Wire.begin (); flag = EEPROM_read (0); max_cc = EEPROM_read (1); lean_min = salita (EEPROM_read (3), EEPROM_read (2)); lean_max = salita (EEPROM_read (5), EEPROM_read (4)); para sa (int j = 0; j <3; j) {sd_max [j] = salita (EEPROM_read (7 j * 2), EEPROM_read (6 j * 2)); } Narito ang piraso ng code na sumulat sa kanila sa EEPROM: EEPROM_write (0, mga flag); 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)); para sa (int j = 0; j <3; j) {EEPROM_write (6 j * 2, lowByte (sd_max [j])); EEPROM_write (7 j * 2, highByte (sd_max [j])); } Tungkol talaga dito.

Hakbang 3: Wire It Up

Wire It Up
Wire It Up

I-wire ito sa ilang veroboard upang maiikot sa isang enclosure at mga trabahong tapos na.

Inirerekumendang: