Talaan ng mga Nilalaman:
Video: Pagdaragdag ng isang 24LC256 EEPROM sa Arduino Dahil: 3 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
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
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
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
I-wire ito sa ilang veroboard upang maiikot sa isang enclosure at mga trabahong tapos na.
Inirerekumendang:
Pagdaragdag ng isang Mabilis na Tampok ng Pagsingil sa isang Powerbank: 5 Hakbang (na may Mga Larawan)
Pagdaragdag ng isang Mabilis na Tampok ng Pagsingil sa isang Powerbank: Sa proyektong ito ipapakita ko sa iyo kung paano ko binago ang isang karaniwang powerbank upang mabawasan ang katawa-tawa nitong mahabang oras ng pagsingil. Kasama ang paraan ay pag-uusapan ko ang tungkol sa powerbank circuit at kung bakit ang baterya pack ng aking powerbank ay medyo espesyal. Kumuha tayo ng st
Pagdaragdag ng isang Kasalukuyang Tampok ng Limit sa isang Buck / Boost Converter: 4 Mga Hakbang (na may Mga Larawan)
Pagdaragdag ng isang Kasalukuyang Tampok ng Limit sa isang Buck / Boost Converter: Sa proyektong ito magkakaroon kami ng isang mas malapit na pagtingin sa isang pangkaraniwang buck / boost converter at lumikha ng isang maliit, karagdagang circuit na nagdaragdag ng isang kasalukuyang tampok na limitasyon dito. Sa pamamagitan nito, ang buck / boost converter ay maaaring magamit tulad ng isang variable lab bench power supply. Le
Pagdaragdag ng isang Headphone Jack sa isang iPhone Dock: 10 Hakbang (na may Mga Larawan)
Pagdaragdag ng isang Headphone Jack sa isang IPhone Dock: Noong taglagas ng 2016 nakatanggap ako ng isang komplimentaryong iPhone / Apple Watch dock mula sa isang kumpanya na tinawag na 1byone. Habang talagang nagustuhan ko ang pantalan at sa pangkalahatan ay binigyan ito ng isang mahusay na pagsusuri, napagtanto ko na maaari kong mapabuti ito sa ilang simpleng pagbabago. Maraming mga
Pagdaragdag ng Mga Sanggol at Mga Sets sa Pakikipag-ugnay sa isang Geneva Drive sa Fusion 360: 7 Mga Hakbang
Pagdaragdag ng Mga Sanggol at Mga Sets sa Pakikipag-ugnay sa isang Geneva Drive sa Fusion 360: Para sa tutorial na ito, gagamit ako ng isang sample na file na kasama sa panel ng data ng Fusion 360 ng lahat. Buksan ang panel ng data sa pamamagitan ng pag-click sa icon na grid sa itaas na kaliwang sulok. Mag-scroll pababa hanggang makita mo ang seksyong "Mga Sample." Mag-double click sa "Pangunahing Tr
Pagdaragdag ng isang Audio Jack sa isang MUJI Wall CD Player: 5 Mga Hakbang
Pagdaragdag ng isang Audio Jack sa isang MUJI Wall CD Player: Ang MUJI wall-mount cd player ay isang magandang piraso ng minimalist na disenyo ng Hapon (naidagdag ito sa permanenteng koleksyon ng museo ng Modern Art sa New York noong 2005). Gayunpaman, mayroon itong isang problema: ang panloob na mga loudspeaker ay napakasamang kalidad ng isang