Inhoudsopgave:
Video: Een 24LC256 EEPROM toevoegen aan de Arduino Due: 3 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
De arduino due mist een eeprom. Deze instructable voegt er een toe en stelt je in staat om waarden op te slaan in niet-vluchtig geheugen dat een Arduino-firmware-update zal overleven.
Stap 1: Breadboarden
Er zijn hier enkele echt goede instructies: https://www.hobbytronics.co.uk/arduino-external-eeprom Ik heb ze gewoon gevolgd. De foto toont het breadboard-circuit. pinnen 1 t/m 4 en pin 7 zijn geaard. pin 8 is verbonden met de 3.3V-voeding op het due-board. De gele (pin 6) en witte (pin 5) draden zijn verbonden met de i2c SDA (data) en SCL (clock) pinnen op het due-board (genummerd 21 en 20).
Stap 2: Codeer tijd
Hier zijn enkele codefragmenten die ik in mijn schetsen gebruik. Voeg eerst de Wire-bibliotheekheaders ergens bovenaan uw schets toe: /* Gebruik 24LC256 EEPROM om instellingen op te slaan */ #include Voeg vervolgens enkele functies toe om bytes van de EEPROM te lezen en te schrijven (ik geef alleen om individuele bytes, maar er is een paginaschrijffunctie in de chip ook). Merk op dat er een macrodefinitie is van 0x50.. dit is het adres van de chip op de i2c-bus (u kunt meer dan één i2c-dingetje op een i2c-bus aansluiten en selecteren met welke u wilt praten door het adres te wijzigen). /* Deze twee functies helpen ons om naar de 24LC256 EEPROM-chip te schrijven */ #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 schrijven: adres: "); //Serial.print(addr); //Serial.print(" "); //Serial.println(gegevens); vertraging (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); if (Wire.available()) data = Wire.read(); //Serial.print ("EEPROM lezen: adres: "); //Serial.print(addr); //Serial.print(" "); //Serial.println(gegevens); vertraging (5); gegevens retourneren; } U kunt de opmerkingen van de Serial.print(…)-regels verwijderen als u wat debug-uitvoer wilt zien. In de Arduino setup()-functie start je de wire-bibliotheek en kun je de initiële waarden inlezen. Hier lees ik in twee bytes (vlaggen en max_cc), twee woorden (lean_min en lean_max) en een reeks woorden sd_max [3]: // lees waarden die zijn opgeslagen in de EEPROM Wire.begin(); vlaggen=EEPROM_read(0); max_cc=EEPROM_read(1); lean_min=woord (EEPROM_read (3), EEPROM_read (2)); lean_max=woord(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)); } Hier is het stukje code dat ze in de EEPROM schrijft: EEPROM_write(0, flags); 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])); } Dat is het eigenlijk wel.
Stap 3: Sluit het aan
Draad het op een veroboard om in een behuizing te schroeven en de klus is geklaard.
Aanbevolen:
Een gebruiksmonitor toevoegen aan een thuisthermostaat: 4 stappen
Een gebruiksmonitor toevoegen aan een thuisthermostaat: Lang, lang geleden, lang voordat er zoiets als een "slimme" thermostaat, ik had een huisthermostaat die een dagelijks (denk ik - misschien wekelijks) totaal van "op tijd" voor mijn verwarmings- en airconditioningsysteem. Dingen zijn veranderd. . . De laatste
Een snellaadfunctie toevoegen aan een powerbank: 5 stappen (met afbeeldingen)
Een snellaadfunctie toevoegen aan een powerbank: in dit project laat ik je zien hoe ik een gewone powerbank heb aangepast om de belachelijk lange oplaadtijd te verkorten. Onderweg zal ik het hebben over het powerbank-circuit en waarom het batterijpakket van mijn powerbank een beetje speciaal is. Laten we st
Een lijn toevoegen aan een Boombox met een cassettespeler: 5 stappen
Een line-in toevoegen aan een boombox met een tapespeler: ** Zoals bij alle instructables, neem je je item / gezondheid / wat dan ook in eigen handen wanneer je het probeert! Houd rekening met hoge spanningen op het hoofdvoedingsbord, de hete soldeerbout, enz. Voorzichtig en geduldig zijn, zal u succes brengen. **NS
Een IR-afstandsbediening toevoegen aan een luidsprekersysteem: 5 stappen (met afbeeldingen)
Hoe een IR-afstandsbediening aan een luidsprekersysteem toe te voegen: In dit project laat ik u zien hoe ik een extra circuit voor mijn luidsprekersysteem heb gemaakt om het draadloos te bedienen met een zelfgemaakte IR-afstandsbediening. Laten we beginnen
Voeg een pc-synchronisatie-aansluiting toe aan een Nikon Sc-28 Ttl-kabel (gebruik de automatische instellingen voor een aan-cameraflits en trigger-uit-cameraflitsen!!): 4 stappen
Voeg een Pc Sync-aansluiting toe aan een Nikon Sc-28 TTL-kabel (gebruik Auto-instellingen voor een on Camera Flash en Trigger Off Camera Flashes !!): in deze instructable laat ik je zien hoe je een van die vervelende gepatenteerde 3-pins TTL-connectoren op de zijkant van een Nikon SC-28 off-camera TTL-kabel en vervang deze door een standaard pc-synchronisatieconnector. hierdoor kunt u een speciale flitser gebruiken, s