「Arduinoの基礎 - SDカード」の版間の差分

ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == <br><br> == SDライブラリ == ==== SDライブラリのインストール ==== Arduinoでは、SDライブラリは標準で組み込まれているためインストールは不要である。<br> <br> SDライブラリがインストールされているかどうかを確認する場合は、Arduino IDEのメイン画面から[ツール] - [ライブラリを管理]を選択して、検索欄で<u>"SD"</u>と検索する。<br> <u>"SD by Arduino"<…」)
 
 
311行目: 311行目:
  {
  {
   // ...略
   // ...略
}
</syntaxhighlight>
<br><br>
== 使用例 : ファイルの書き込み ==
<syntaxhighlight lang="c++">
#include <SD.h>
File dataFile;
void setup()
{
  // シリアル通信の初期化 (9600[bps])
  Serial.begin(9600);
  while (!Serial);  // シリアルポートが準備できるまで待機
  // SDカードの初期化処理
  if (!SD.begin()) {
    Serial.println("SDカードの初期化に失敗");
    while (1);  // エラーが発生した場合は処理を停止
  }
  Serial.println("SDカードの初期化に成功");
  // ファイルを書き込みモードで開く
  // FILE_WRITEを指定する場合、ファイルが存在しない場合は新規作成されて、存在する場合は末尾に追記される
  dataFile = SD.open("data.txt", FILE_WRITE);
  if (dataFile) {
    Serial.println("ファイルのオープンに成功");
    // ファイルにデータを書き込む
    dataFile.println("テストデータ1");
    dataFile.println("テストデータ2");
    // 数値データを書き込む場合 (例 : アナログピンの値を読み取る)
    int sensorValue = analogRead(A0);
    dataFile.print("センサー値: ");
    dataFile.println(sensorValue);
    // 日時データを書き込む場合
    dataFile.print("書き込み時刻 : ");
    dataFile.print("2024/12/22 ");
    dataFile.println("15:30:00");
    // ファイルを閉じる
    dataFile.close();
    Serial.println("ファイルの書き込みが完了");
  }
  else {
    // ファイルのオープンエラー
    Serial.println("ファイルのオープンに失敗");
  }
}
void loop()
{
  // 例1 : センサデータのロギング
  dataFile = SD.open("log.txt", FILE_WRITE);
  if (dataFile) {
    int value = analogRead(A0);
    dataFile.println(value);
    dataFile.close();
  }
  delay(1000);  // 1秒間隔でログを記録
  // 例2 : RTCライブラリを使用してタイムスタンプを書き込む
  if (dataFile) {
    dataFile.print(now.timestamp());
    dataFile.print(",");
    dataFile.println(sensorValue);
    dataFile.close();
  }
  }
  }
  </syntaxhighlight>
  </syntaxhighlight>

案内メニュー