スポンサーリンク
はじめに
Arduinoを使って、センサーから得た値をSDカードに記録していく方法を解説します。
前回の記事
コード
まずは今回使用したコードから。
#include <SD.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
const int CS = 4;
void setup() {
bmp.begin(); //気圧センサ
Serial.begin(9600); //シリアル通信開始
Serial.println("Initializing SD.....");
pinMode(10, OUTPUT);
if (!SD.begin(CS)) {
Serial.println("not found SD");
} else {
Serial.println("SD OK");
}
}
void loop() {
String dataStr = ""; //String型の宣言
dataStr += String(double(bmp.readPressure()) / 100); //センサの値を文字列として結合
File dataFile = SD.open("log.txt", FILE_WRITE);
if (dataFile) {
Serial.println(dataStr); //シリアルコンソールに値を表示
dataFile.println(dataStr); //SDに文字列を書き込み
dataFile.close();
} else {
Serial.println("File write error!");
}
delay(60000);
}
このコードを実行すると、log.txtというファイルをSDカード上に作成し、気圧(hpa)を書き込んでいきます。
インクルードするライブラリ
ArduinoからSDカードへのデータの読み書きを行うための「SD.h」というライブラリがあります。加えて、SDカードの書き込みにはSPI通信を利用しているので、SPI通信を行うための「SPI.h」というライブラリをインクルードする必要があります。
ライブラリ名 | 説明 |
---|---|
SD.h | SDの読み書きを行う |
SPI.h | SPI通信を行う |
Wire.h | I2C通信を行う(センサー用) |
Adafruit_BMP085.h | 気圧センサのライブラリ |
SDカードの仕様
スポンサーリンク
スポンサーリンク