ホーム > カテゴリ > ロボット・電子工作・マイコン >

EEPROM(I2C版)の使い方 [Arduino]

EEPROMは電源をオフにしてもデータが消えない半導体メモリです。

Arduino UNOでは標準で1024byteのEEPROMがありますが、今回は外部のEEPROM(I2C接続)を使用します。

使用部品・材料

総額で約315円です。(Arduino本体の値段を除く)

部品/材料値段備考
ブレッドボード¥270秋月電子の通販コード(P-00315)
シリアルIスケアC EEPROM 24LC64-I/P¥45秋月電子の通販コード(I-00194)
カーボン抵抗器数円2kΩ(2個)を使用。

※仕様書では2kΩですが、手元にない場合は10kΩでも動作します。

配線図

I2CのSCL/SDAのプルアップ抵抗には2kΩを使用します。

次は公式データシートより引用(24aa64_24lc64.pdf)

※R/W = 1 読み込み。R/W =0 読み込み、書き込み。

今回の配線によるデバイスアドレスは「A0=H(1)、A1=H(1)、A2=H(1)」にしていますので「10101110」になります。Arduinoの場合は7bitのみを使用しますので右に1bitシフトした「1010111」(0x57)がデバイスアドレスとなります。

A0,A1,A2の3bitありますので、最大8個のEEPROMを接続可能です。

アドレス

今回の24LC64-I/Pは64kビットですので

8192byte = 64kビット = 64 / 8 = 8 x 1024

アドレスは0番地から8191番地まで使用可能です。

姉妹品の24LC256は256kビットで32767番地まで、24LC512は512kビットなので65535番地までとなります。

スケッチ(プログラム)

アドレス0番地から5番地までに「数値」を書き込みます。次にその番地から値を取得してシリアルモニターへ表示します。

#include <Wire.h>
 
// デバイスアドレス(スレーブ)
uint8_t DEVICE_ADDRESS = 0x57; // 1010111
 
void setup() { 
  Serial.begin(9600); 
  
  // マスタとしてI2Cバスに接続する
  Wire.begin();       

  // アドレス0番地から5番地までデータを書き込む
  for (int i=0; i< 6; i++){
   Wire.beginTransmission(DEVICE_ADDRESS);    
      // 対象アドレスに移動
      Wire.write(i >> 8);     // Address(High Byte)   
      Wire.write(i & 0x00FF); // Address(Low Byte)
      // データの書き込み
      Wire.write(i+1);
    Wire.endTransmission();
    delay(5);
  }
  
  // アドレス0番地から5番地までデータを読み込む
  for (int i=0; i< 6; i++){
    Wire.beginTransmission(DEVICE_ADDRESS);
      // 対象アドレスに移動
      Wire.write(i >> 8);     // Address(High Byte)   
      Wire.write(i & 0x00FF); // Address(Low Byte)
    Wire.endTransmission();
    
    // デバイスへ1byteのレジスタデータを要求する
    Wire.requestFrom(DEVICE_ADDRESS, 1);
      
    while (Wire.available() == 0 ){}
    Serial.println(Wire.read());
  }
}
 
void loop() {
}

実行結果





掲示板

ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。

関連記事



公開日:2017年07月22日
記事NO:02488


この記事を書いた人

💻 ITスキル・経験
サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。

画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ
プチモンテ代表、アーティスト名:プチモンテ
🎵 音楽制作
BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~

オリジナル曲を始めました✨

YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte

【男性ボーカル】DA・KA・RA | 新たな明日が風と共に訪れる

【男性、女性ボーカル】時空を超越する先に | 時空と風の交響曲

【女性、男性ボーカル】絆 | 穏やかな心に奏でる旋律