Lägga till I2C EEPROM till Arduino



fästa en EEPROM till Arduino är ganska enkel och det enklaste sättet att göra det är via I2C bussen. EEPROMs finns i många former men 24 LS256 eller 24LC256 är ett bra val eftersom det är lätt att använda och ganska billigt (85 euro cent på min leverantör). 24LC256 innehar 256 kilobit (som är 32 kilobyte). 24LS256 kan också köras på 3,3 v vilket är praktiskt om man använder en Lilypad eller Pro Mini 3.3V. 24LS256 använder 3 stift för urval av sin adress, så du kan använda upp till åtta på en gång på samma buss.

24LS256 riktar sig enligt följande: 1010A2A1A0. Om du bara arbetar med 1 EEPROM, är det enklaste att ansluta A2-A0 med marken. Detta ger den adressen för 1010000 är 0 × 50 Hex. I läsning och skrivning till EEPROM måste man inse att det har 32 kB (actuall32767) och en byte är inte tillräckligt att ta itu med alla minne.

Så när man vill skicka läsa eller skriva ansökningar, man behöver skicka två byte – för MSB eller högre slutet av adressen (8 bitar från vänster till höger), och den nästa för LSB eller nedre delen av adressen (de sista 8 bitarna från vänster till höger).

Om man vill till exempel använda adress 21000, som går så här: I binärt, 21000 är 0101001000001000. Dela som i 01010010 och 00001000 och sedan konvertera binära värdena tillbaka till numeriska byte att skicka med Wire.send().

Att låter mer komplicerat än det är, som det finns faktiskt två operander till gör så pass. Den här första är >>, också känd som "bitshift rätt". Detta kommer att ta den högsta (vänstra) delen av byten och släppa av den nedre änden, lämnar bara de första 8 bitarna. För att få lägre (höger) slutet av adressen, kan man använda operatorn &, även känd som "bitvis AND". Här operanden, när den används med 0xFF ger lägre bitarna.

Skriva data till 24LS256
Skriva data är ganska lätt. Först initiera I2C bussen med:

Wire.beginTransmission(0x50); stift A0 ~ A2 inställd GND

Skicka sedan några data. Första data som ska skickas är två byte för adress (25000) var en önskar att skriva till minnet.

Wire.send (21000 >> 8); Skicka MSB i adressen
Wire.send (21000 & 0xFF); Skicka LSB i adressen

Därefter skickar byte att lagra på adress 21000 och sedan stänga anslutningen:

Wire.send(15); bara skicka "15" som exempel
Wire.endTransmission();

Detta avslutar skrivandet. nu för läsning:

Läsa data från 24LS256

Behandlingen är mer eller mindre liknande. Först initiera anslutningen och ange adressen till data att läsa:

Wire.beginTransmission(0x50); Valda basadress
Wire.send (21000 >> 8); Skicka MSB i adressen
Wire.send (21000 & 0xFF); Skicka LSB i adressen
Wire.endTransmission();

Sedan, tillhandahålla antal data-byte att läsa börjar på den aktuella adressen:

Wire.beginTransmission(0x50); basadress
Wire.requestFrom(0x50,1); Vi vill ha en byte
Wire.Receive(inbyte);

Här är "inbyte" en byte variabel valt att lagra data Hämtad från EEPROM.

Kraften i I2C bussen är ju att olika enheter kan anslutas till samma linjer. Översta bilden visar uppsättning med två EEPROMs. Det är nyckeln naturligtvis att de har egen adress. I figuren har jag valt att använda adresser 0 × 50 och 0 × 51. Man får som av ansluter A0-A2 till marken för ett chip, men ansluter A0 till Vcc ("hög") för den andra kretsen. Adressen som är då 1010001 = 0x51

Och det är det.
En utskrift design kan hittas här
Ca. kostnad: 2 euro

Relaterade Ämnen

Att lägga till Arduino stöd till ESP8266 med exempelkod test

ESP8266 packar en massa punch. Det är inte bara en WiFi-modul, den har också en anständig mikro-controller i byggt. Nu den bästa delen är har gemenskapen gjort programmering denna inbyggd mikro-controller mycket enkelt genom att lägga till Arduino st...

Att lägga till Arduino webbaserad OSD knappen fjärrkontroll till kameran SuperCircuits PC165DNR

Super kretsar PC165DNR kameran är en mycket låg ljus färg videokamera som är utmärkt för användning med ett teleskop eller för allsky meteor capture. Den har knappar som gör att användaren kan ställa in olika exponeringstider och het pixel blockering...

Arduino och Visuino: Använd PCF8574/PCF8574A I2C GPIO att lägga till fler digitala kanaler till Arduino

Oavsett hur många portar en Arduino styrelsen har, de verkar aldrig att vara tillräckligt för de coola nya projekt du har i åtanke ;-). Lyckligtvis finns det en lösning. Arduinoen har både I2C och SPI stift, och det finns ett antal I2C och SPI GPIO c...

Linkit en till Arduino kommunikationen I2C

I sist instructable jag visade dig hur du skapar en spänning bildskärm använder linkit en och efter att ha gjort ett par projekt med hjälp av en Linkit styrelsen insåg jag att det skulle vara bra om vi kunde göra linkit ett arbete med en arduino. Och...

Att lägga till nycklar till en Arduino Synth den hårda vägen-Blacklord: Organ Donor projekt del 2

(Obs-detta är min 20 instructable! Tack till alla följande och commenting.on mina projekt och personal som gör detta möjligt. Denna webbplats har definitivt fått mig få min A spelet till arbetsbänken.)Auduino granulat synth av Peter Knight ( http://c...

Lägga till Bluetooth 4.0 till din Arduino projekt [IoT] - kontrolleras av Smartphone

Vi är grupp av internet saker entusiaster som älskar hacka ihop olika enheter. Kolla in vårt nuvarande projekt på vår hemsida och ta en titt på denna guide i ett annat format på vår blogg.Steg 1: IntroduktionArduino är en cool plattform eftersom du e...

Att lägga till ICSP header till din Arduino/AVR styrelse

så du kanske har spelat med Arduino's, eller snarare Hackduino. Om du gjort din egen Hackduino eller liknande projekt, kanske du undrar hur du lägger till i ICSP huvudet. I grund och botten gör med ICSP-huvudet att du kan använda en extern programmer...

Lägga till en anpassad programmerare på Arduino IDE

när jag bestämde mig att leta efter en programmerare, jag trodde aldrig att det skulle ha problem med att använda det med Arduino IDE...Men jag... lolJag köpte en programmador såhär på Ebay.http://www.ebay.com/ITM/mini-AVRISP-STK500-AVR-ISP-Programme...

Lägga till USB-spelenhet till Arduino Leonardo/Micro

VIKTIGT: Denna artikel är för Arduino IDE version 1.6.5 (eller nedanför). Lägga till en USB-spelenhet till en Arduino Leonardo eller Micro använder Arduino IDE version 1.6.6 (eller ovan) se följande Instructable: Arduino Leonardo Micro som Game Contr...

Lägga till Ethernet till någon Arduino projekt för mindre än 10$

så du har ett snyggt Arduino projekt pågår. Vore det inte skönt att lägga till Internet-anslutning och gör det på de billiga också? Detta Instructable visar dig hur du lägger till Internet-anslutning i form av ett Ethernet-gränssnitt för några dollar...

Att lägga till Digispark (med bootloader) stöd till befintliga Arduino 1.6.x IDE

Digispark är små Arduino IDE kompatibel utveckling styrelsen baserat på Atmel attiny85 som direkt ansluter till USB. Det har mycket få pins, men fortfarande kan göra några fina saker. Digispark är copyright av Digistump LLC (digistump.com) och den fu...

Hemautomation - lägga till reläer till Arduino

Hur du väljer reläer – handlar om makt.När du väljer ett relä för anslutning till din Arduino måste du övervägaen) makt (spänning och ström) vad du vill slå på och av ochb) makt (spänning och ström) krävs för att driva reläet (dvs. att vitalisera rel...

Lägga till enkla Bluetooth till Arduino

Ibland när du först startar ett nytt projekt, det finns en hel del felsökning går på, och med en Arduino plattform, med hjälp av serieporten för att spotta ut data kan vara ett mycket användbart verktyg. Tja vad om det finns inget utrymme att ansluta...

Lägga upp skisser till Arduino Pro Mini använder Arduino UNO styrelsen (utan att ta bort Atmel Chip)

Detta beskriver en procedur för att använda Arduino UNOS inbyggda USB till Serial(TTL) converter ladda upp skisser till Arduino Pro Mini styrelsen utan att behöva ta bort UNO'S Atmel mikro-controller chip. Detta är användbart för dem har börjat med A...

Lägga till knappar i din X52-Pro Joystick med en Arduino mikro

Jag har en Saitek X52-Pro HOTAS setup som jag använder för Elite: farligt. Det är en fantastisk joystick men det kan göra med bara några fler knappar. Med en Arduino Micro kan du utöka detta (eller någon annan) joystick för alla spel som kommer att s...

Smart hemautomation webserver på OpenWRT router WR703N kopplats ihop till Arduino, jämfört med Raspberry Pi och Ubuntu

Hämta WR703N Digest (340MB zip-fil):https://sourceforge.net/projects/wr703n/---------------------------------------------------------------------------------------------------------------------------------Kära läsare,Det finns många Linux styrelser p...

Läsa den BMP180 trycksensorn med en Attiny85 och lägga till en DHT11 också

Jag älskar Attiny 85-serien och gillar att utforska alla de saker du kan göra med den. Eftersom den inte har alltför många stift, är med I2C hårdvara på det en bra idé. I2C på attiny kan vara lite krångliga som det går inte att kompilera tråd bibliot...

Uppgradera Analog linje efterföljare till Arduino med Attiny85

SammanfattningI detta Instructable visar vi dig hur uppgraderar ett billigt analog linje efterföljare till en intelligent Arduino linje anhängare genom att ersätta den LM393 motsvarigheten IC av en intelligent Attiny85 och Arduino skiss.IntroduktionR...

Snabb installationsguide till Arduino LCD 2004 med PCF8574

Detta är en snabb Installationsguide för din Arduino LCD.Saker du måste veta innan du sätter igång:1. LCD-skärmar är inte skapade lika, vissa har olika stift än den andra.2. huvuddragen i ställa in: LCD, biblioteket och koden.Steg 1: Läs din kontakte...