Мазмұны:

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 -да эпром жоқ. Бұл нұсқаулық біреуін қосады және arduino микробағдарламасын жаңартудан аман қалатын құндылықтарды тұрақты емес жадта сақтауға мүмкіндік береді.

1 -қадам: Нан тарату

Breadboard
Breadboard

Бұл жерде өте жақсы нұсқаулар бар: https://www.hobbytronics.co.uk/arduino-external-eeprom Мен олардың соңынан ердім. 1 -ден 4 -ке дейінгі түйреуіштер мен 7 -ші түйреуіштер жерге тұйықталған. 8 -істікші тиісті тақтадағы 3.3В қуат көзіне қосылады. Тиісті тақтадағы i2c SDA (деректер) және SCL (сағат) түйреуіштеріне қосылған сары (түйреуіш 6) және ақ (түйреуіш 5) сымдар (21 және 20 нөмірлі)).

2 -қадам: код уақыты

Код уақыты
Код уақыты

Міне, мен эскиздерде қолданатын кодтың кейбір үзінділері. Біріншіден, эскиздің жоғарғы жағындағы Wire кітапханасының тақырыптарын қосыңыз: / * Параметрлерді сақтау үшін 24LC256 EEPROM пайдаланыңыз * / #include Содан кейін EEPROM -дан байттарды оқу мен жазу үшін кейбір функцияларды қосыңыз (маған тек жеке байттар ғана маңызды, бірақ чипте бетті жазу мүмкіндігі). 0x50 макро анықтамасы бар екенін ескеріңіз.. бұл i2c шинасындағы чиптің мекенжайы (i2c шинасында бірнеше i2c заттарын қосуға болады және адресті өзгерту арқылы қайсысымен сөйлескіңіз келетінін таңдай аласыз). / * Бұл екі функция бізге 24LC256 EEPROM чипіне жазуға көмектеседі */ #define EEPROM_ADDR 0x50 жарамсыз 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 write: addr: «); //Serial.print(addr); //Serial.print («»); //Serial.println(деректер); кешіктіру (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(деректер); кешіктіру (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, жалаушалар); 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 -қадам: оны қосыңыз

Сымды қосыңыз
Сымды қосыңыз

Қоршау мен орындалған жұмыстарды бұрау үшін оны вертолетке бекітіңіз.

Ұсынылған: