ArduinoでSDカードに記録するデータロガー
必要になったのでやってみました.ArduinoのサンプルにSDカードのDataloggerというのがあります.Arduinoのボードにプログラムを書込みだけなんですけど,回路はネットで検索しました.SDカードは,ノーマルサイズとマイクロサイズで配線が少し違うようです.参考にしたのは以下のサイト.Arduinoでパーツやセンサを使ってみよう~SDカード編(その1) | Device Plus - デバプラmicroSDカードスロットDIP化キットというのを使われてましたが持ってないので,SDカードアダプタを使いました.microSDカードを購入すると大抵ついてきます.ピンヘッダを半田付け.9端子をギリギリつけられるサイズでした.両端は使わないけどせっかくなので全ピン半田付けしました.写真を見て左から9,1,2,3,4,5,6,7,8番の並びらしいです.ArduinoはProMiniを使いました.書き込み時は,クロックは16MHz,電源5Vを選択.でもUSBシリアル変換はSDカードの電源電圧に合わせて3.3V仕様のものを使います.配線は,SD:4 ー> VCCSD:3,6 ー> GND (追記:3-6は内部でつながってるので外部配線は不要)SD:1 ー> GND(プルダウン)SD:2 ー> Arduino:11SD:5 ー> Arduino:13SD:7 ー> Arduino:12信号線には安全のため1kΩの抵抗を入れました.サンプルは,まず SDー> CardInfoを書込み.2GBのmicroSDカードを入れて実行すると以下の通り情報が読み出せます.次に,ArduinoにサンプルのDataloggerを書込み.実行すると,ランプがチカチカしてます.シリアルモニタで確認すると,アナログ入力A0,A1,A2の3本の値をコンマ区切りで出力してます.端子は開放状態なので値はバラバラ.しばらく待ってからVCCを外してmicroSDカードを取り出してPCで読み取ってみると,DATALOG.TXTというファイルがありました.開くとシリアルモニタに表示されたままの文字列が記録されてます.再度microSDカードを挿入して次はGND端子をA0に接続してみます.するとA0だけは値が0でその他はバラバラの値が出力されます.PCで確認すると,その前に記録されたDATALOG.TXTにログが追記されていました.プログラムを見たら読み取りと出力の文字列はFor文で回しながら作成し,毎回ファイルオープンして書込み,クローズしてるだけだったので,自分の好きなようにデータを書込みのは簡単なようです.