Arduino詳解その28です。前回の記事はこちらです。
ファイルを作って書き込む
前回はSDカードそのものについてご紹介しました。特徴や弱点なんかもわかってきました。
#include <SPI.h> #include <SD.h> File myFile; const int chipSelect = 4; void setup() { Serial.begin(9600); SD.begin(chipSelect); myFile = SD.open("test.txt", FILE_WRITE); Serial.println("open test.txt"); } void loop() { if (Serial.available()) { String data = Serial.readString(); if (data != "end") { myFile.println(data); Serial.println("write data:" + data); } else { myFile.close(); Serial.println("close test.txt"); while (1); } } }
動かす前の準備
このスケッチは、ArduinoUNOに(SDカードシールド経由で)取り付けられているSDカードにファイルを作成してデータを書き込みます。最初に使用する前にSDカードが初期化(フォーマット)されている必要があります。基本的に購入した状態で初期化されているので、この作業は不要です。他で使いまわしたりして、中身が壊れているSDカードなどは初期化が必要になります。初期化はPCなどを使用して実行するのですが、あまり頻繁に実施するとSDカード自体の寿命を縮めますので注意してください。
動かしてみる
それでは動かしてみましょう。SDカードをSDカードシールドに実装した状態で上記のスケッチを書き込んでください。書き込みが終わったら、シリアルモニターを開きましょう。シリアルモニターには、
open test.txt
と、表示されました。これで、text.txtファイルがSDカードに作成されました。次に、シリアルモニターの送信欄に何か文字を入力して送信してみてください。すると・・・
write data: + 入力文字
と、出たと思います。入力した文字をファイルに書き込んでいます。これを数回繰り返した後に、送信欄に"end"と入力して送信してください。今度は・・・
close test.txt
と、なりました。これでSDカード内のtext.txtファイル内に入力された内容が保存されました。PCに取り付けて内容を確認してみるとtext.txtファイルが確認できると思います。
スケッチの解説
それではスケッチの解説です。今回も使用するライブラリは、最初に紹介したスケッチと一緒です。今回はファイルを操作しますので、以下が新しくでてきましたね
・File
Fileは操作するファイルオブジェクトを作成します。今回のスケッチではmyFileをファイルオブジェクトとして設定しています。
お次はsetupです。
・SD.begin()
SDカードを初期化します。かっこの中はSDカードを選択するために使用するArduinoUNOの信号ピンです。使用するシールドによって異なることが有るので注意してください。また、初期化に成功するとtrue、失敗するとfalseを返します。
・SD.open()
SDカード上のファイルを開きます。指定して名前のファイルが無い場合には、作成します。以下の様に記述します。
SD.open(ファイル名, モード)
ファイル名は8.3形式(ファイル名8文字以下、拡張子3文字)です。モードは、FILE_READ(読込モード、ファイルの先頭から処理する)、FILE_WRITE(読込、書込モード、ファイルの最後から処理する)の二つです。省略するとFILE_READとなります。
処理に成功するとファイルオブジェクトを返します。失敗した場合はfalseを返します。
loopでは、以下が新しく出てきましたね
・FileObject.println()
カッコの中のデータを最後に改行コードを付けて書き込みます。ファイルオブジェクト.printl()とすると、改行コードなしで書き込みます。また、数値は文字データに変換されて書き込みます。
・FileObject.close()
書き込んだ内容をSDカードに保存してファイルを閉じます。print(),println()で書き込んでもclose()を実施しないと保存されません。
お次は読み出し
いかがでしたでしょうか?ファイルの書込みの基本は分かっていただけたと思います。次回は読み出しについて説明します。お楽しみに!!
hirocom777.hatenadiary.org