I2C EEPROM toevoegen aan Arduino


een EEPROM aansluiten op de Arduino is heel eenvoudig en de gemakkelijkste manier om dat te doen is via een I2C bus. EEPROMs komen in vele vormen, maar de 24 LS256 of 24LC256 is een goede keuze, want het is makkelijk te gebruiken en vrij goedkoop (85 euro cent bij mijn leverancier). De 24LC256 bevat 256 kilobits van gegevens (32 KB). De 24LS256 kan ook draaien op 3,3 v die handig is als men een Lilypad of Pro Mini 3,3 v wordt gebruikt. 3 pinnen voor selectie van het adres wordt alleen gebruikt voor de 24LS256 zodat u maximaal acht tegelijk op dezelfde bus kunt.

De 24LS256 is als volgt aangepakt: 1010A2A1A0. Als u alleen met 1 EEPROM werkt, is het gemakkelijkste te verbinden A2-A0 met grond. Dit geeft het adres van 1010000, dat 0 × 50 is Hex. In lezen en schrijven naar de EEPROM moet men beseffen dat het heeft 32 kB (actuall32767) en één byte is niet genoeg om al het geheugen.

Dus als men wil verzenden lezen en/of schrijven verzoeken, men moet voor het verzenden van twee bytes – voor de MSB of hogere einde van het adres (de 8 bits van links naar rechts), en de volgende voor de LSB of onderste eind van het adres (de laatste 8 bits van links naar rechts).

Als men wil bijvoorbeeld adres 21000 gebruiken, dat gaat als volgt: In binary, 21000 is 0101001000001000. Die opgesplitst in 01010010 en 00001000, dan de binaire waarden terug omzetten in numerieke bytes om met Wire.send() te verzenden.

Dat klinkt ingewikkelder dan het is, want er zijn in feite twee operanden om dat te doen. Deze eerste is >>, ook bekend als "bitshift recht". Dit zal de hoogste (links) deelnemen aan de byte en drop off de onderkant, waardoor alleen de eerste 8 bits. Als u op de onderkant van het adres op de (rechts), kan men gebruik maken van exploitant &, ook wel bekend als 'bitsgewijze AND'. Deze operand, platformen 0xFF krijgt de lagere bits.

Schrijven van gegevens naar de 24LS256
Schrijven gegevens is vrij eenvoudig. Eerste Initialiseer de I2C-bus met:

Wire.beginTransmission(0x50); voor pinnen A0 ~ A2 ingesteld op GND

Sommige gegevens vervolgens te verzenden. De eerste gegevens moeten worden verzonden zijn de twee bytes voor het adres (25000) wil naar het geheugen te schrijven.

Wire.send (21000 >> 8);  Stuur de MSB van het adres
Wire.send (21000 & 0xFF); Stuur de LSB van het adres

Vervolgens sturen de byte op te slaan op adres 21000 en sluit vervolgens de verbinding:

Wire.send(15); enkel '15' te verzenden als voorbeeld
Wire.endTransmission();

Dat concludeert het schrijven. nu voor de lezing:

Lezen van gegevens uit de 24LS256

Lezing is min of meer vergelijkbaar. Eerst initialiseren van de verbinding en geef het adres van de gegevens te lezen:

Wire.beginTransmission(0x50); Gekozen basisadres
Wire.send (21000 >> 8);  MSB van het adres sturen
Wire.send (21000 & 0xFF); LSB van het adres sturen
Wire.endTransmission();

Geef het aantal gegevensbytes te lezen vanaf het huidige adres:

Wire.beginTransmission(0x50); basisadres
Wire.requestFrom(0x50,1); Wij willen één byte
Wire.receive(inbyte);

'Inbyte' is hier een byte variabele gekozen voor het opslaan van de gegevens die zijn opgehaald uit de EEPROM.

De kracht van de I2C-bus is natuurlijk dat de verschillende apparaten kunnen worden aangesloten op dezelfde lijnen. De bovenste figuur verschijnt een dergelijke set met twee EEPROMs. Het is de sleutel natuurlijk dat ze hebben elk hun eigen adres. In de afbeelding heb ik gekozen om adressen 0 × 50 en 0 × 51 te gebruiken. Dat krijgt men door A0-A2 verbinden met grond voor één chip, maar verbinden van A0 tot Vcc ('High') voor de tweede chip. Het resulterende adres is dan 1010001 = 0x51

En thats it.
Een print ontwerp kan worden gevonden hier
Ca. kosten: 2 euro

Labels: Arduino, Eeprom, I2c, 24L 256

Gerelateerde Artikelen

Arduino en Visuino: gebruik PCF8574/PCF8574A I2C GPIO meer digitale kanalen toevoegen aan Arduino

Arduino en Visuino: gebruik PCF8574/PCF8574A I2C GPIO meer digitale kanalen toevoegen aan Arduino

Het maakt niet uit hoeveel een Arduino poorten board heeft, ze lijken nooit genoeg voor de cool nieuw project dat u in gedachten hebt ;-). Gelukkig is er een oplossing. De Arduino heeft zowel SPI als I2C pinnen, en er zijn een aantal I2C en SPI GPIO
Home Automation - Relais toevoegen aan Arduino

Home Automation - Relais toevoegen aan Arduino

Hoe om te selecteren van de Relais-Its all over macht.Wanneer u een relais verbinden met je Arduino selecteert moet u overwegena) de macht (spanning en stroom) van welke u zin voor wissel voort en vandoor enb) de macht (spanning en stroom) nodig om t
Eenvoudige Bluetooth toevoegen aan Arduino

Eenvoudige Bluetooth toevoegen aan Arduino

Soms wanneer u eerst een nieuw project begint, kan er is een heleboel foutopsporing gaan op, en met een Arduino-platform, via de seriële poort te spugen van gegevens een zeer nuttig instrument. Nou wat als er geen ruimte is om een USB-kabel aansluite
Ethernet toevoegen aan Arduino projecten voor minder dan 10$

Ethernet toevoegen aan Arduino projecten voor minder dan 10$

zodat u een keurige Arduino project gaande hebt. Zou het niet mooi zijn om internetconnectiviteit toevoegen en doe het op de goedkope zo goed? Dit Instructable zal u tonen hoe te voegen internetconnectiviteit in de vorm van een Ethernet-interface voo
Arduino Gas Sensor bibliotheek in toevoegen aan Proteus 7 & 8

Arduino Gas Sensor bibliotheek in toevoegen aan Proteus 7 & 8

Eerste stap is het downloaden van bestanden van de bibliotheekBezoek onze website voor het downloaden van bestanden van de bibliotheekStap 1: Plak deze drie bestanden GS. IDX, GSB. LIB en Gscode.HEX in naar de map ' Bibliotheek 'Als u van Proteus 8 g
Arduino Library in toevoegen aan Proteus 7 & 8

Arduino Library in toevoegen aan Proteus 7 & 8

BIJGEWERKT OP MEI 2016 **** Arduino Nano, Pro, mini, Uno, 1280,2560 bibliotheek voor Proteus (Updated versie)Het toevoegen van Arduino Gas Sensor bibliotheek in naar Proteus ISIS 7 & 8* Toevoegen Video tutorial in de laatste stap, die u hoe tonen zal
LinKit één aan Arduino Communiction I2C

LinKit één aan Arduino Communiction I2C

In de laatste instructable toonde ik u hoe maak je een spanningsbeveiliger met behulp van de linkit één en na het doen van een paar project met behulp van de Linkit een boord die realiseerde ik me dat het zou geweldig zijn als kunnen we de linkit één
Knoppen toevoegen aan uw X52-Pro-joystick met een Arduino Micro

Knoppen toevoegen aan uw X52-Pro-joystick met een Arduino Micro

Ik heb een Saitek X52-Pro HOTAS setup die ik gebruik voor Elite: gevaarlijk. Het is een fantastische joystick maar het kon doen met slechts een paar meer knoppen. Met een Arduino Micro kunt u uitbreiden deze (of enige andere) joystick voor elk spel d
Eenvoudige EEPROM Module voor Arduino of andere microcontroller

Eenvoudige EEPROM Module voor Arduino of andere microcontroller

EEPROMs van pas komen als u sommige gegevens opslaan wilt zonder verliezen. Vele microcontrollers komen met enkele interne EEPROM, maar zoals EEPROMs een eindige (hoewel zeer groot) aantal schrijft voordat hebben ze beginnen steeds defect, mijn anaal
Light Up effecten toevoegen aan achtertuin spellen zoals Cornhole

Light Up effecten toevoegen aan achtertuin spellen zoals Cornhole

Achtertuin spellen zoals Cornhole zijn een heleboel plezier. Maar u kunt ze zelfs beter door toevoeging van lichten en geluiden. Door enkele eenvoudige elektronica aansluiten, kunt u het bord oplichten en een overwinning fanfare spelen wanneer iemand
Importeren van een codebibliotheek aan Arduino

Importeren van een codebibliotheek aan Arduino

Importeer een codebibliotheek naar de Arduino Software-omgeving.Dit is een vaardigheid die iedereen werken buiten de beginselen van de basic-code van de Arduino IDE zal op een gegeven moment moeten leren.Deze kleine instructable is een onderdeel van
ESP8266 - externe I2C EEPROM datalogger - AT24C32/64 Driver

ESP8266 - externe I2C EEPROM datalogger - AT24C32/64 Driver

Zoals u misschien al gezien in ons vorige artikel over DS3231 RTC-Module, hebben wij vastgesteld aan boord een EEPROM-chip, een 32 k AT24C32 een. Het is onafhankelijk van de RTC-circuit en aangesloten op de I2C-bus, een perfecte metgezel voor een WIF
Elektronische schakelingen aan Arduinos interfacing

Elektronische schakelingen aan Arduinos interfacing

Interfacing elektronische schakelingen aan ArduinoIn dit instructable gebruik ik een voorbeeld van een Arduino aan een ARINC 429-transceiver interfacing om aan te tonen van het algemene proces van een Arduino aan elektronische schakelingen interfacin
IPhone aan Arduino met behulp van Bluetooth 4.0--

IPhone aan Arduino met behulp van Bluetooth 4.0--

Opmerking: dit project vereist een iOS ontwikkelaar licentie . Het is $99 per jaar.Dit verslag beschrijft het schrijven van een app voor iOS apparaten van Bluetooth 4.0 om een seriële verbinding met een Arduino. Om de seriële verbinding op het einde