【Arduino】24LC1025の使い方

ArduinoからEEPROMの24LC1025を使う方法について解説します.

Arduinoと24LC1025はI2Cで通信を行います.

*この記事ではArduino Unoを使用します

I2Cや,I2Cの仕組みについて知りたい方はこちらを参照してください.

配線図

Arduino Unoと24LC1025の配線図を次の図に示します.

I2Cではプルアップ抵抗が必要になりますが,Arduino Unoでは内部でプルアップされるので使用していません.

今回は24LC1025を1つだけ使用します.

A0=0,A1=0,A2はVCCに接続しています.

WPはVCCに接続して書き込み操作を有効にします.

プログラム

プログラムを次に示します.

#include <Wire.h>

uint8_t slave_address = 0b1010000; // スレーブアドレス(B0=0, A0=0, A1=0)
uint16_t address = 0x0000; // EEPROMのアドレス
uint8_t data; // 読み出しデータ

void setup() {
  Serial.begin(115200);

  Wire.begin(); // Wireライブラリの初期化

  Wire.beginTransmission(slave_address); // 送信開始
  Wire.write(highByte(address)); // アドレスの上位1バイトをキューに送信
  Wire.write(lowByte(address)); // アドレスの下位1バイトをキューに送信
  Wire.write(0x7F); // 書き込むデータをキューに送信
  Wire.endTransmission(); // 送信完了

  delay(4);

  Wire.beginTransmission(slave_address); // 送信開始
  Wire.write(highByte(address)); // アドレスの上位1バイトをキューに送信
  Wire.write(lowByte(address)); // アドレスの下位1バイトをキューに送信
  Wire.endTransmission(); // 送信完了
  Wire.requestFrom(slave_address, 1); // 受信開始
  data = Wire.read(); // データの読み出し

  Serial.print(data, HEX); // dataを16進数で表示
}

void loop() {

}

このプログラムは,

  1. 24LC1025のアドレス0x0000に0x7Fを書き込む
  2. 24LC1025のアドレス0x0000からデータを読み出す
  3. 読み出したデータを16進数で表示する

という操作を行なっています.

シリアルモニタに7Fが表示されれば正常です.

お買い物カゴ