Cuprins:
Video: Adăugarea unei 24LC256 EEPROM la Arduino Due: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Arduino datorat nu are un eeprom. Această instrucțiune adaugă una și vă permite să stocați valori în memoria non-volatilă care va supraviețui unei actualizări de firmware arduino.
Pasul 1: Breadboarding
Există câteva instrucțiuni foarte bune aici: https://www.hobbytronics.co.uk/arduino-external-eeprom Tocmai le-am urmat. pinii 1 la 4 și pinul 7 sunt împământați. pinul 8 este conectat la sursa de 3.3V de pe placa corespunzătoare. Firele galbene (pinul 6) și albe (pinul 5) sunt conectate la pinii i2c SDA (date) și SCL (ceas) de pe placa datorată (numerotate 21 și 20).
Pasul 2: Timpul codului
Iată câteva fragmente de cod pe care le folosesc în schițele mele. În primul rând, includeți anteturile bibliotecii Wire undeva în partea de sus a schiței: / * Utilizați 24LC256 EEPROM pentru a salva setările * / #include Apoi adăugați câteva funcții pentru a citi și a scrie octeți din EEPROM (îmi pasă doar de octeți individuali, dar există un caracteristica de scriere a paginii și în cip). Rețineți că există o definiție macro de 0x50.. aceasta este adresa cipului de pe magistrala i2c (puteți conecta mai multe chestii i2c pe o magistrală i2c și puteți selecta cu care doriți să vorbiți schimbând adresa). / * Aceste două funcții ne ajută să scriem pe cipul EEPROM 24LC256 * / #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 write: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); întârziere (5); } octet EEPROM_read (nesemnat int addr) {octet date = 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 citit: addr: "); //Serial.print(addr); //Serial.print (""); //Serial.println(data); întârziere (5); returnează date; } Puteți decomenta liniile Serial.print (…) dacă doriți să vedeți o ieșire de depanare. În funcția arduinos setup () porniți biblioteca de fire și puteți citi valorile inițiale. Aici am citit în doi octeți (steaguri și max_cc), două cuvinte (lean_min și lean_max) și o serie de cuvinte sd_max [3]: // citesc valorile salvate în EEPROM Wire.begin (); steaguri = EEPROM_read (0); max_cc = EEPROM_read (1); lean_min = cuvânt (EEPROM_read (3), EEPROM_read (2)); lean_max = cuvânt (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)); } Iată bitul de cod care le scrie în EEPROM: EEPROM_write (0, steaguri); 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])); } Asta e cu adevărat.
Pasul 3: conectați-l
Conectați-l pe un veroboard pentru a înșuruba într-o incintă și pentru a face lucrările.
Recomandat:
Adăugarea unei funcții de încărcare rapidă la un Powerbank: 5 pași (cu imagini)
Adăugarea unei funcții de încărcare rapidă la o bancă de energie: în acest proiect vă voi arăta cum am modificat o bancă de energie comună pentru a reduce timpul ridicat de încărcare. Pe parcurs, voi vorbi despre circuitul powerbank și de ce bateria powerbank-ului meu este un pic specială. Haideți să
Adăugarea unei linii într-un Boombox cu un casetofon: 5 pași
Adăugarea unei linii într-un Boombox cu un casetofon: ** La fel ca în toate instructabilele, îți iei obiectul / sănătatea / orice în mâinile tale atunci când încerci! Fiți conștienți de tensiunile ridicate de pe placa principală, de fierul de lipit la cald, etc. Dacă aveți grijă și răbdare vă va aduce succes. ** Th
Adăugarea unei caracteristici de limită de curent la un convertor Buck / Boost: 4 pași (cu imagini)
Adăugarea unei caracteristici de limită de curent la un convertor Buck / Boost: În acest proiect vom analiza mai îndeaproape un convertor comun de buck / boost și vom crea un circuit mic suplimentar care îi adaugă o caracteristică de limită de curent. Cu acesta, convertorul buck / boost poate fi folosit la fel ca o sursă de alimentare variabilă pe bancă. Le
Modul de alimentare IoT: Adăugarea unei funcții de măsurare a puterii IoT la controlerul meu de încărcare solară: 19 pași (cu imagini)
Modul de alimentare IoT: Adăugarea unei funcții de măsurare a energiei IoT la controlerul meu de încărcare solară: Bună ziua tuturor, sper că toți sunteți grozavi! În acest instructiv vă voi arăta cum am realizat un modul de măsurare a puterii IoT care calculează cantitatea de energie generată de panourile mele solare, care este utilizată de controlerul meu de încărcare solară t
Adăugarea unei mufe pentru căști la un iPhone Dock: 10 pași (cu imagini)
Adăugarea unei mufe pentru căști la o stație de andocare pentru iPhone: În toamna anului 2016, am primit gratuit o stație de andocare iPhone / Apple Watch de la o companie numită 1byone. Deși mi-a plăcut foarte mult docul și, în general, i-am dat o recenzie bună, mi-am dat seama că îl pot îmbunătăți cu câteva modificări simple. Câteva dintre