メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

PukiWiki最新記事
[ リロード ]   [ ソース ]  [ トップ | インデックス | 単語検索 | ご意見、ご感想 ]

トップ > Arduino_UNOでSDカードコネクタを使って簡単に接続&リード > ライト
Counter: 7747, today: 1, yesterday: 0
Prev Next

Arduino UNOでSDカードコネクタを使って簡単に接続&リード/ライト

ArduinoでSDカード(マイクロSDカード)のリード/ライトをするのに
SDカードシールドを購入しても1000円ちょっとですが、
秋月で190円で売っているようなSDカードコネクタをつなぐだけで簡単にリード/ライトできます。
自作する際にめんどうなのはArduino UNOが5Vインターフェースなのに対して、SDカードは3.3Vで
抵抗分圧などをして電圧レベルをあわせることですが、Arduino UNOを単体動作させるのであれば
SDカードの動作電圧に合わせると基本的には線をつなぐだけです。

SDカードの動作電圧は2.7〜3.6Vに対して、単体動作させるATMEGA328Pは1.8V〜5.5Vなので、
今回は3V(単4アルカリ乾電池2本)で書き込みます。

単体動作部分を除くと必要な部品はSDカードコネクタとブレッドボードをつなぐためのピンだけです。
また、SPIモードを使ってSDカードをアクセスするためのソフトウェア(スケッチ)もライブラリが用意されているので簡単です。

SDカードとマイクロSDカードのコネクタはピン配置などが異なるので注意が必要です。
今回は、半田付けのやり易さが簡単なSDカードコネクタを使いました。実際の書き込みはマイクロSDカードを
SDカードアダプタに差し込んで使ってます。
書き込みに成功すれば緑のLED、失敗すると赤のLEDが点灯します。
年月日は設定してないので、「2000/01/01 1:00」になってました。
ちなみに、電圧が3Vとするとスペック上の最大周波数は11.67MHz程度のはずですが、16MHzで動かしてます。

ピン配置と接続

  SDカード Arduino UNO ピン配置  

写真

  SDカード ピンコネクタ
写真の右端から9,1,2,3,4,5,6,7,8の順
9番と8番は未接続。
  Arduino UNO単体動作、SDカード
成功を示す緑のLEDが点灯。
 

スケッチ

#include <SD.h>

#define CS  10
#define RED_PIN 7
#define GREEN_PIN 8

char fname[] = "test.txt";
char str[] = "Write OK!\n";

void setup()
{
  pinMode(CS, OUTPUT);
  pinMode(RED_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);

  if(!SD.begin(CS)){
    digitalWrite(RED_PIN, HIGH); // 初期化失敗
    return;
  }

  File file = SD.open(fname, FILE_WRITE); // ファイルオープン
  if(file){
    file.print(str);
    file.close();
  } else {
    digitalWrite(RED_PIN, HIGH); // ファイルオープン失敗
    return;
  }

  digitalWrite(GREEN_PIN, HIGH); // 書き込み成功
}

void loop()
{
  ;
}

SDカードがつながると単体でデーターロガーとしてつかえるので応用範囲が広がります。
もちろんArduino UNOで作成したSDカード上のファイルはパソコンでそのまま読み込ませることができるので、
テキストエディタなどでみることができます。
また、Excelなどでグラフなどをつくるためにカンマ形式のCSVで保存すればすぐにグラフ表示もできます。

太陽光発電のためにバッテリーの充電量をグラフ表示するのも簡易電圧ロガーを作れば簡単です。

   

ページコメント
投稿された内容の著作権はコメントの投稿者に帰属します。

トラックバック [ トラックバック(0) ]
トラックバック URL: http://myboom.mkch.net/modules/pukiwiki/tb/162