なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

ArduinoでキャラクタLCDに文字を表示させる

Posted by arms22 on 2013年02月27日 6  0

IMGP7702

Arduino IDE標準のLiquidCrystalライブラリを使ってLCDを制御する方法を解説します。このライブラリは日立のHD44780ドライバと互換性のあるLCDを制御することができます。電子部品屋さんでよく見かけるほとんどのLCDはHD44780ドライバ互換なので、このライブラリが使えます。


Arduinoに接続する



今回、秋月電子の超小型LCDキャラクタモジュールを使いました。このLCDはピン配置が変則的で「14,13,12…3,2,1,16,15」と並んでいます。データシートをよく確認して間違えないよう接続してください。

可変抵抗はLCDのコントラストを調整する為に使います。可変抵抗の真ん中のピンをLCDのVOピンに接続します。LCDに何も文字が表示されない場合は抵抗の値を調整してください。

Arduino-LCD

LCD vs Arduino
RS - ピン2
RW - GND
E - ピン3
DB4 - ピン4
DB5 - ピン5
DB6 - ピン6
DB7 - ピン7

RWピンは読み込みモードと書き込みモードを切り替えます。LCDからデータやレジスタ値を読み出す場合に使用しますが滅多に使いません。GNDに接続しておくと書き込みモードになります。

LCDにはRS,E,RW,D4〜D7の7ピンを使う4ビットモードとRS,E,RW,D0〜D7の11ピンを使う8ビットモードの2つのモードがあります。8ビットモードは4ビットモードに比べてデータ転送速度が倍になります。しかし低速なマイコンでは転送速度を上げてもあまりメリットがありません。4ビットモードを使った方が使用するピン数が減らせてワイヤリングの手間も省けるので良いでしょう。


LCDシールドキットを使う


ワイヤリングが面倒になったらLCDシールドキットを使うことをおススメします。ちょっとした文字の表示やデバッグ作業に便利なシールドです。

IMGP7705

スイッチサイエンス - LCDシールドキット
http://www.switch-science.com/products/detail.php?product_id=724


ライブラリのインポート


Arduino IDE標準のLiquidCrystalライブラリを使います。ファイルメニューから"スケッチ→ライブラリを使用→LiquidCrystal"を選ぶと自動的にインポートされます。

Arduino - LiquidCrystal Library
http://arduino.cc/en/Reference/LiquidCrystal


サンプルスケッチ


文字と数値を表示するサンプルです。begin()でキャラクタLCDの文字数と行数を指定します。print()で文字・数値を表示します。改行は無視されるので、2行目に文字を表示したい場合はsetCursor()でカーソル位置を設定します。

#include <LiquidCrystal.h>

// 接続ピンをして指定してライブラリを初期化
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

//LCDシールドキット
//LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // 行と列を設定
  lcd.begin(16, 2);
  // メッセージを表示
  lcd.print("Hello, Arduino!");
  // 3秒待つ
  delay(3000);
}

void loop() {
  // カーソル位置を2行目に設定
  lcd.setCursor(0, 1);
  // リセットしてからの秒数を表示
  lcd.print((float)millis() / 1000.0, 1);
  // 100ms待つ
  delay(100);
}



LCDシールドキット(青)
LCDシールドキット(青)
posted with amazlet at 13.02.22
スイッチサイエンス
売り上げランキング: 10,427


Arduinoでガジェットを作ろう!―たのしい電子工作
高橋 隆雄
秀和システム
売り上げランキング: 54,023


たのしい電子工作 Arduinoで電子工作をはじめよう!
高橋 隆雄
秀和システム
売り上げランキング: 12,603

スポンサーサイト

ArduinoでSDメモリカードを読み書きする

Posted by arms22 on 2013年02月20日 28  0

IMGP7671

以前公開した「Arduinoで遊ぼう - SDメモリカードを読み書きする」の内容が古くなっていたので、新しく書き直しました。今回はArduino IDE標準のSDライブラリを使ってSDメモリカードを読み書きする方法を解説します。

最近のSDメモリカードは1GBを超える容量のものが非常に安価に発売されています。SDライブラリを使えばArduinoからも簡単に読み書きできるので、大規模なデータロギングに最適なストレージと言えます。


注意すべきこと



SDメモリカードの動作電圧は2.7~3.6Vです。SDカードにもよりますが書き込み時に電流は、100mAを超えて流れるものがあります。SDカードの電源は十分な容量を確保してください。

また5V動作のArduinoでSDメモリカードを使用する場合、Arduinoの出力電圧を5Vから3.3Vに変換する必要があります。今回、抵抗による分圧回路を使っていますが、信号がナマってしまってうまく通信できない場合があります。このような場合、電圧の変換には5Vトレラント機能が付いたバッファIC(74LVX245または74VHC125)や専用IC(2電源レベルシフタ)を使うことをお勧めします。

SDメモリカードには次の3種類の規格があります。
  • SD - 最大2GB。FAT12・FAT16ファイルシステムを使用。
  • SDHC - 2GB〜32GBまで。FAT32ファイルシステムを使用。
  • SDXC - 32GB〜2TBまで。exFATファイルシステムを使用。
SDライブラリはSDとSDHCのみ対応しており、SDXCの読み書きはできません。またファイルシステムはFAT16とFAT32に対応しています。FAT12やexFATでフォーマットされたカードの読み書きはできません。


ピン配列


次の図はSDメモリカードとmicroSDメモリカードのピン配列を表しています。

SD-pinout

SD端子microSD端子機能説明
91DAT2未使用
12DAT3/CSチップセレクト
23CMD/DIデータ入力
3VSSグランド
44VDD電源
55CLKシリアルクロック
66VSSグランド
77DAT0/D0データ出力
88DAT1未使用

SDカードにはSDモードとSPIモードとよばれる2つのモードがあります。SDモードはSDカードの速度を最大限にいかした転送を行うモードです。SPIモードはCS/DI/CLK/DOの4つの端子を使った転送モードです。低速なマイコンとの通信に使われます。SDライブラリはSPIモードでSDカードにアクセスします。


Arduinoに接続する


SDメモリカードとの接続にはサンハヤトのmicroSD変換基板を使いました。変換基板が手に入らない場合は、SDカードアダプタ(micorSD-SD)にヘッダピンやワイヤを直接半田付けすると良いでしょう。電圧変換には抵抗分圧回路を使いました。抵抗値は1.8KΩと3.3KΩ。
Arduino-SD-connection

Arduino vs SDメモリカード
ピン11 - DI (MOSI)
ピン12 - DO (MISO)
ピン13 - CLK (SCK)
ピン4 - CS


シールドを使ってArduinoに接続する


もっとお手軽・簡単に使いたい場合は、SDメモリカードスロットを搭載したシールドを使うと良いでしょう。例えば、イーサネットシールドワイヤレスSDシールドマイクロSDシールドなどです。これらのシールドには電圧変換用にバッファICなどが使われています。
シールドによってSDカードのCSに接続されているピンが異なるので注意すること。

IMGP7680
Arduino イーサネットシールド R3
CS -> 4


arduino-wireless-shield-sd
ワイヤレスSDシールド
CS -> 4


sparkfun-sd-shield
SparkFun マイクロSDシールド
CS -> 8



SDライブラリのインポート


Arduino IDE標準のSDライブラリを使います。ファイルメニューから"スケッチ→ライブラリを使用→SD"を選ぶと自動的にインポートされます。

Arduino - SD Library
http://arduino.cc/en/Reference/SD

Arduino IDE 1.0.x以降では、複数ファイルの読み書きが同時に行えるようになりました。

SDライブラリにはいくつか制限があります。
  • ファイル名は8文字+3文字までです。例えば「filename.txt」はOKですが、「filename_2013.text」はNGです。
  • ファイルシステムはFAT16またはFAT32のみ対応しています。
  • SDとSDHCのみ対応しています。SDXCは非対応です。


サンプルスケッチ(書き込み)


1秒間隔でアナログ入力0の値を読み取り、SDカードに書き込むサンプルです。

SD.open() の引数に FILE_WRITE を指定するとファイルを読み書きモードでオープンします。ファイルが存在しない場合は新しいファイルが作成され、すでにファイルが存在する場合は追記モードでオープンします。

print() や println() で数値や文字が書き込めます。バイナリデータを書き込む場合は、write() を使います。書き込み速度は一度に沢山のデータを書き込んだ方が速くなります。seek(0) でファイルの先頭からデータを書き込めます。

#include <SD.h>

// この値は使用しているシールドや基板に合わせて変更すること。たとえば、
// イーサーネットシールドは 4
// Adafruit のSDシールドは 10
// Sparkfun のSDシールドは 8
const int chipSelect = 4;

void setup()
{
  // シリアルポート初期化
  Serial.begin(9600);
  while (!Serial) {
    ; // USBケーブルが接続されるのを待つ。この待ちループは Leonardo のみ必要。
  }

  Serial.print(F("Initializing SD card..."));

  // SSピン(Unoは10番、Megaは53番)は使わない場合でも出力にする必要があります。
  // そうしないと、SPIがスレーブモードに移行し、SDライブラリが動作しなくなります。
  pinMode(SS, OUTPUT);

  // SDライブラリを初期化
  if (!SD.begin(chipSelect)) {
    Serial.println(F("Card failed, or not present"));
    // 失敗、何もしない
    while(1);
  }
  Serial.println(F("ok."));

  // 日付と時刻を返す関数を登録
  SdFile::dateTimeCallback( &dateTime );
}

void loop()
{
  // ファイルを開く
  File dataFile = SD.open("datalog.txt", FILE_WRITE);

  // もしファイルが開けたら値を書き込む
  if (dataFile) {
    int value = analogRead(0);
    dataFile.println(value);
    dataFile.close();
    // シリアルポートにも出力
    Serial.println(value);
  }
  // ファイルが開けなかったらエラーを出力
  else {
    Serial.println(F("error opening datalog.txt"));
  } 

  // 一秒待つ
  delay(1000);
}

void dateTime(uint16_t* date, uint16_t* time)
{
  uint16_t year = 2013;
  uint8_t month = 2, day = 3, hour = 9, minute = 0, second = 0;

  // GPSやRTCから日付と時間を取得
  // FAT_DATEマクロでフィールドを埋めて日付を返す
  *date = FAT_DATE(year, month, day);

  // FAT_TIMEマクロでフィールドを埋めて時間を返す
  *time = FAT_TIME(hour, minute, second);
}

次のように日時を返す関数を登録することで、ファイルの作成日時や変更日時が記録できます。

  // 日付と時刻を返す関数を登録
  SdFile::dateTimeCallback( &dateTime );


サンプルスケッチ(読み込み)


ファイルに書き込まれている値をシリアルモニタに出力するサンプルスケッチです。

SD.open() の引数を省略すると読み込み専用モードでオープンします。引数を省略した場合は FILE_READ を指定したことと同じになります。

available() は現在の位置から何バイト読み込めるか返します。available() の戻り値は int 型で読み込めるバイト数が32767を超える場合、戻り値は常に32767になります。ファイルのサイズは size() で取得できます。

read() は1byte読み出します。read(buffer, length) とした場合、lengthバイト分のデータをbufferに読み込みます。

position() は現在の読み込み位置を返します。seek() で読み込み位置を移動できます。

#include <SD.h>

// この値は使用しているシールドや基板に合わせて変更すること。たとえば、
// イーサーネットシールドは 4
// Adafruit のSDシールドは 10
// Sparkfun のSDシールドは 8
const int chipSelect = 4;

void setup()
{
  // シリアルポート初期化
  Serial.begin(9600);
  while (!Serial) {
    ; // USBケーブルが接続されるのを待つ。この待ちループは Leonardo のみ必要。
  }

  Serial.print(F("Initializing SD card..."));

  // SSピン(Unoは10番、Megaは53番)は使わない場合でも出力にする必要があります。
  // そうしないとSPIがスレーブモードに移行し、SDライブラリが動作しなくなります。
  pinMode(SS, OUTPUT);

  // SDライブラリを初期化
  if (!SD.begin(chipSelect)) {
    Serial.println(F("Card failed, or not present"));
    // 失敗、何もしない
    while(1);
  }
  Serial.println(F("ok."));

  // ファイルを開く
  File dataFile = SD.open("datalog.txt");

  // もしファイルが開けたら値をシリアルポートに出力する
  if (dataFile) {
    // 64byte単位で読み出す
    byte buffer[64];
    while (dataFile.available()) {
      int length = dataFile.available();
      if(length > 64){
        length = 64;
      }
      dataFile.read(buffer, length);
      Serial.write(buffer, length);
    }
    // 1byte単位で読み出す
    // while (dataFile.available()) {
    // Serial.write(dataFile.read());
    // }
    dataFile.close();
  }
  // ファイルが開けなかったらエラーを出力する
  else {
    Serial.println(F("error opening datalog.txt"));
  }
}

void loop()
{
}


参考リンク


SDメモリカード - Wikipedia
http://ja.wikipedia.org/wiki/SDSDメモリカード

ArduinoでマイクロSDカードを使う - ラジオペンチ
http://radiopench.blog96.fc2.com/blog-entry-332.html




Arduino ワイヤレスSDシールド
スイッチサイエンス
売り上げランキング: 71,943




Dotsduino(ドッツデュイーノ)ハンダづけ

Posted by arms22 on 2013年02月18日 6  0

2015/10/31
LEDマトリクスの取り付け方向について追記しました。

2013/2/18
Dotsduinoバージョン2.0に合わせてはんだづけ手順を更新しました。


目次




イントロダクション

Dotsduinoのはんだづけの手順を解説します。Dotsduinoにはいくつかのバージョン(1.2と2.0)がありますが、はんだづけの手順はほとんど同じです。

バージョン1.2では内蔵発振器を使っていたため、スケッチのアップロードに時々失敗することがありました。バージョン2.0からはセラミック発振子を採用し、スケッチのアップロードに失敗しないようになりました。

バージョン2.0ではセラミック発振子のはんだづけを忘れないでください。セラミック発振子のはんづけを忘れるとマイコンが動作せず、スケッチのアップロードに失敗してしまいます。


部品リスト

まずは足りない部品がないか確認しましょう。

IC1ATmega328P1個
R1カーボン抵抗 10KΩ1個
R2~R9カーボン抵抗 100Ω8個
C1~C3積層セラミックコンデンサ 0.1uF3個
ピンヘッダ 6ピン1個
8x8ドットLEDマトリクス1個
Dotsduino基板1枚
タクトスイッチ※21個
U1セラミック発振子 8MHz※11個

※1...セラミック発振子はバージョン2.0のみ付属します。バージョン1.2では内蔵発信器を使用しているのでセラミック発振子は付属しません。
※2...タクトスイッチはバージョン2.0のみ付属します。


ハンダづけ(バージョン1.2)


Dotsduino v1.2
背の低いカーボン抵抗からハンダづけしていきましょう。R1は10KΩ、R2~R9は100Ωです。R1のみ10KΩですので間違えずハンダづけしましょう。抵抗の足はできるだけ短く切ってください。

Dotsduino v1.2
次にICとコンデンサ、ピンヘッダをハンダづけします。ICの向きに注意しましょう。写真右側にICの凹みがくるようにしてはんだづけします。スケッチを書き換えるつもりの人はこの段階で、スケッチを書き込めるか確認しましょう(バージョン2.0をご購入の方はセラミック発振子のはんだづけを行ってからスケッチの書き込みを行ってください)。こちらも基板から飛び出す足の長さはできるだけ短くしてください。

Dotsduino v1.2
LEDマトリクスのハンダづけの前に、LEDマトリクスの4辺のうち、凹んだ2辺の内側の凸をカッターナイフで切り取ります。こうすることでDotsduino基板がLEDマトリクスの内側にすっぽり収まるようになります。

Dotsduino v1.2
最後にLEDマトリクスをハンダづけします。LEDマトリクスはDotsduino基板の裏側に描かれたシルクと向きを合わせてハンダづけしましょう。

IMGP7719
完成です。


ハンダづけ(バージョン2.0)


IMGP7711
はんだづけの手順はバージョン1.2とほとんど同じ。まずは抵抗から。

IMGP7713
続いてセラミックコンデンサ。セラミック発振子も忘れずに!

IMGP7718
ICとピンヘッダ、タクトスイッチも忘れずに!

基板対マトリクス
LEDマトリクスの凹凸または半円のでっぱりを基板のシルクと合わせるように、基板の裏側に取り付けて、部品面からはんだづけします。

IMGP1046
以上で完成です。

Dotsduino(ドッツデュイーノ)のスケッチと回路図

Posted by arms22 on 2013年02月18日 29  1

2015/10/31 Arduino 1.6.5に合わせてDotsライブラリのインストール方法・スケッチのアップロード方法の記述を修正しました。
2015/4/18 デモ用スケッチで新しいBounceライブラリを使った時にコンパイルエラーが発生する問題を修正しました。
2013/6/19 Dotsライブラリに点灯パターンが反転する不具合が見つかりました。6/18以前のライブラリをお使いの方は新しいバージョンをダウンロードしてお使いください。
2013/2/18 過去のバージョンの組立説明書と回路図を追加しました。


目次




イントロダクション


Dotsduino
Dotsduino(ドッツデュイーノ)の組立説明書と回路図、ライブラリとサンプルスケッチを公開します。

Dotsduino組み立てキット説明書-1.2c.pdf
Dotsduino組み立てキット説明書-1.2d.pdf
Dotsduino組み立てキット説明書-1.2e.pdf
Dotsduino組み立てキット説明書-2.0a.pdf


回路図


dotsduino-v2.0b
Dotsduinoはその名通り、Arduino互換機として作られています。ArduinoシリーズだとArduino Pro 8MHz 3.3Vが一番近い回路構成になっています。Dotsduinoは電池駆動を想定しているので電圧レギュレータは搭載していません。凡そ2.7V~5Vの範囲で動作します。スケッチの書き込みには別途USBシリアルアダプタが必要です。

dotsduino-v1.2c.pdf
dotsduino-v1.2d.pdf
dotsduino-v1.2e.pdf
dotsduino-v2.0a.pdf
dotsduino-v2.0b.pdf


Arduino Software


Dotsduinoの点灯パターンははArduinoのスケッチとして作られています。DotsduinoはArduino互換機として動作するので、Arduinoのスケッチがそのまま動作します。Arduinoはバージョン1.0以降(1.6.5推奨)
をお使いください。Arduinoは以下のURLからダウンロードできます。

Download the Arduino Software
http://arduino.cc/en/Main/Software


Dotsライブラリ


Dotsduinoに搭載されている8x8LEDドットマトリクスをダイナミック点灯する為のライブラリ「Dots」を用意しました。ライブラリにはサンプルスケッチ(ハートとかインベーダなど)が含まれています。これらサンプルを少し修正することで好きなパターンを表示させることができます。

Dotsライブラリ
https://github.com/arms22/Dots/archive/master.zip
https://dl.dropbox.com/u/14188987/Products/Dots/Dots.zip

Arduinoのメニューからスケッチ > Include Library > Add .ZIP Libraryを選んで、ファイル選択が面が表示されたら「Dots-master.zip」ファイルを選んでください。

Arduino - Libraries - Importing a .zip Library
https://www.arduino.cc/en/Guide/Libraries#toc4

サンプルスケッチ


Dotsライブラリには次のサンプルスケッチが含まれています。
  • Dotsduinoデモ(dotsduino_demo)
  • フリップ(flip_animation)
  • ♥ビート(heartbeat)
  • Hello Matrix(hello_matrix)
  • インベーダー(inverder)
  • インベーダーUFO(inverder_ufo)
  • インベーダーカニ(inverder_kani)
  • スクロール(scroll_animation)
  • 波(wave_animation)

ファイル > スケッチの例 > Dotsで上記サンプルスケッチが開けます。Dotsduinoデモを書き込む場合、Bounce2ライブラリを別途インストールしてください。

スケッチ > Include Library > Manage Librariesを選んで検索窓に「Bounce2」と入力します。Bounce2ライブラリが一覧に表示されたらInstallボタンをクリックしてください。

Arduino Playground - Bounce
http://playground.arduino.cc/code/bounce



スケッチのアップロード


スケッチを作成したらアップロードします。USBシリアルアダプタをDotsduinoに接続します。コネクタの向きに注意してください。DotsduinoとUSBシリアルアダプタのコネクタ部分に書かれている文字が一致するよう差し込んでください。

ツール > ボード > Arduino Pro or Pro Mini
ツール > プロセッサ > ATmega328(3.3V, 8MHz)
ツール > ポート > USBシリアルアダプタが繫がっているポート
を選択してください。そしてスケッチ > マイコンボードに書き込むを選ぶとスケッチがアップロードされます。


おまけ


dotsduino実態配線図

ユニバーサル基板で作ってみたい人は↑の実態配線図を参考にしてください。キットと違って電流制限用の抵抗は省略しています。


参考リンク


Arduino 日本語リファレンス
http://www.musashinodenpa.com/arduino/ref/

Arduinoチュートリアル 基礎編
http://www.musashinodenpa.com/arduino/ref/index.php?f=2


【永久保証付き】Arduino Uno
スイッチサイエンス
売り上げランキング: 1,465


Arduino エントリーキット(Uno版)- Physical Computing Lab
TechShare(テックシェア)
売り上げランキング: 2,036

とても見やすく分かりやすいArduinoボードのピン配列図

Posted by arms22 on 2013年02月14日 0  0

2013/2/13 追記
Arduino Leonardo、Esploraのピン配列図も公開されました!


とても見やすく分かりやすいArduinoボードのピン配列図がArduino Forumで公開されているよ。

Arduino_uno_Pinout


この図を描いたのはイタリアのpighixxxさん。オーストラリアのGraynomadさんのArduino Dueのピン配列図に触発されて描いたみたい。

pighixxxさんはArduino Uno・MEGA・Nano・Miniの図や、ATTiny・ATmega328・mATmega640・ATmega1280などIC・パッケージ別の図も描いている。現在はArduino Leonardoの図を制作中。Arduino Leonardo・Esploraの図も公開している。

atmega328_qtfp

ATmega328のQFPパッケージのピン配列図。MacBookのパームレレストに貼っておきたくなります。


ボードのピン配列図(PDFファイル)は次のURLからダウンロードできます。

Unofficial Arduino Micro Pinout Diagram
Unofficial Esplora Pinout Diagram
Unofficial Leonardo Pinout Diagram
Arduino UNO Pinout Diagram - Arduino Forum
Arduino MEGA Pinout Diagram - Arduino Forum
Arduino NANO Pinout Diagram - Arduino Forum
Arduino MINI Pinout Diagram - Arduino Forum
Due pinout diagram - Arduino Forum

たのしい電子工作 Arduinoで電子工作をはじめよう!
高橋 隆雄
秀和システム
売り上げランキング: 82,599

Arduinoボードの違いまとめ(Uno, MEGA 2560, Leonardo, Due)

Posted by arms22 on 2013年02月06日 0  0

IMGP7638

2013/2/4
デジタル入出力として使えるピンについて追記しました。またソフトウェアシリアルの制限についても追記しました。

2013/2/10
Arduinoボードのピン配列図を見ながら確認すると分かりやすいよ。


Arduino公式ページによると、現在Arduinoボードは15種類ほど存在します。搭載されているマイコンや動作電圧、動作クロック、形状の違いはあるものの、マイコン別にみると次の4つに分類できます。

  • ATmega328系
    Arduino Uno, Duemilanove, Mini, LilyPad, Nano, Pro, Pro Mini, Fio
  • ATmega2560
    Arduino MEGA 2560, Mega ADK
  • ATmega32u4
    Arduino Leonardo, Micro, LilyPad USB
  • AT91SAM3X8E
    Arduino Due
これだけボードの数が増えるとボード毎の細かな違いを把握するのが難しくなります。そこで搭載されているマイコン別にArduinoボードを分類し、その違いを表にまとめてみました。


基本スペック


それぞれのマイコンを代表してUno, Leonardo, MEGA 2560, Dueの違いについてまとめました。まずはおさらいもかねて基本スペックの比較から。

UnoLeonardoMEGA 2560Due
マイクロコントローラATmega328ATmega32u4ATmega2560AT91SAM3X8E
動作電圧5V5V5V3.3V
デジタル入出力
()内はPWM出力
20本(6本)24本(7本)70本(15本)70本(12本)
アナログ出力(DAC)---2本(12bit)
アナログ入力6本(10bit)12本(10bit)16本(10bit)12本
フラッシュメモリ32KB32KB256KB512KB
SRAM2KB2.5KB8KB96KB
EEPROM1KB1KB4KB-
クロック16MHz16MHz16MHz84MHz
参考価格※12,520円2,100円※24,910円4,980円
※1...2013/1/25現在、スイッチサイエンスでの価格
※2...ピンソケットあり版の価格


デジタル入出力の本数がオフィシャルサイトと異なっていますが、これはアナログ入力をデジタル入出力として使った場合を考えて、この様に記載しています。
Dueの動作電圧は3.3V。既存のシールドを使う場合は動作電圧に注意する必要があります。


入出力ピン


次の表は各機能に対応するピンを表しています。

UnoLeonardoMEGA 2560Due
デジタル入出力0〜13
14〜19(A0〜A5)
0〜13
14(MISO)
15(SCK)
16(MOSI)
17(SS)
18〜23(A0〜A5)
0〜53
54〜69(A0〜A15)
0〜53
54〜65(A0〜A11)
66(DAC1)
67(DAC2)
68(CANRX)
69(CANTX)
PWM出力3, 5, 6, 9, 10, 113, 5, 6, 9, 10, 11, 132〜13
44〜46
2〜13
アナログ入力A0〜A5A0〜A5
A6〜A11(4, 6, 8, 9, 10, 12)
A0〜A15A0〜A11
DAC出力---DAC1
DAC2
LED13131313

いくつかのアナログ入力ピンはデジタルピンとして使えます。例えばUnoのアナログ入力ピンA0〜A5はデジタルピンの14〜19として使えます。
Leonardoのアナログ入力ピンは12本あり、いくつかのデジタルピンはアナログ入力ピンとして使えます。括弧内はアナログ入力ピンとして使えるデジタルピンを表しています。
DueにはDAC出力が2本あり、音声出力用のライブラリが提供されています。


外部割り込み


次の表は割り込み番号に対応するピンを表しています。

ボードINT0INT1INT2INT3INT4INT5
Uno23----
Leonardo3201--
MEGA 25602321201918
Due※1下記を参照

INT0とINT1に対応するピンがUnoとLeonardoでは入れ替わっているので注意しましょう。
Dueの外部割り込みはすべてのデジタルピンで使えます。attachInterrupt()にピン番号を直接指定して使います。


ハードウェアシリアル


次の表はハードウェアシリアルの送信(TX)と受信(RX)のピンを表しています。

インスタンスUnoLeonardoMEGA 2560Due
Serial0 (RX), 1 (TX)下記参照0 (RX), 1 (TX)0 (RX), 1 (TX)
Serial1-0 (RX), 1 (TX)19 (RX), 18 (TX)19 (RX), 18 (TX)
Serial2--17 (RX), 16 (TX)17 (RX), 16 (TX)
Serial3--15 (RX), 14 (TX)15 (RX), 14 (TX)

LeonardoのSerialはPCとのUSBシリアル通信に使われます。またDueにはUSBシリアル通信専用のSerialUSBがあります。


ソフトウェアシリアル


次の表はソフトウェアシリアルに使えるピンの一覧です。Leonardo・MEGA 2560では受信に使えるピンに制限があります。

受信(RX)送信(TX)
Uno0〜190〜19
Leonardo8, 9, 10, 11
14(MISO), 15(SCK), 16(MOSI)
0〜23
MEGA 256010, 11, 12, 13, 50, 51, 52, 53
62, 63, 64, 65, 66, 67, 68, 69
0〜69
Due0〜690〜69



SPI


次の表はSPIのMOSI・MISO・SCK・SSのピンを表しています。

ボードMOSIMISOSCKSS
(slave)
SS
(master)
Uno11 or
ICSP-4
12 or
ICSP-1
13 or
ICSP-3
10-
LeonardoICSP-4ICSP-1ICSP-3--
MEGA 256051 or
ICSP-4
50 or
ICSP-1
52 or
ICSP-3
53-
DueICSP-4ICSP-1ICSP-3-4, 10, 52

LeonardoとDueのMOSI・MISO・SCKピンはICSPヘッダにあります。

Isp_headers.svg
Wikipedia - Atmel AVRより抜粋


TWI(I2C)


次の表はTWI(I2C)のデータ(SDA)とクロック(SCL)のピンを表しています。

インスタンスUnoLeonardoMEGA 2560Due
WireA4 (SDA)
A5 (SCL)
2 (SDA)
3 (SCL)
20 (SDA)
21 (SCL)
20 (SDA)
21 (SCL)
Wire1---SDA1
SCL1

ArduinoボードのR3(リビジョン3)からAREFピンの隣にSDAピン、SCLピンが追加されました。DueにはTWI (I2C) インターフェースが2つ、AREFピンの隣にSDA1ピンとSCL1ピンがあります。


参考リンク


Arduino Board Uno
Arduino Board Leonardo
Arduino Board Mega 2560
Arduino Board Due


【永久保証付き】Arduino Uno
スイッチサイエンス
売り上げランキング: 4,163


Arduino Mega 2560 Rev3
Arduino Mega 2560 Rev3
posted with amazlet at 14.12.21
GHEO SA
売り上げランキング: 59,236


Arduino Leonardo (ソケット・ヘッダ付き)
Arduino
売り上げランキング: 43,796


Arduino Due
Arduino Due
posted with amazlet at 14.12.21
Arduino
売り上げランキング: 261,413


目次:Arduino

Posted by arms22 on 2013年02月01日

当ブログのArduinoに関する記事が増えてきましたので目次を作りました。ここではArduino関連の記事で特におすすめの記事を掲載していきます(すべての記事を読みたい方はサイドメニューのカテゴリ「Arduino」をクリックしてください)。
また、これだけは押さえておきたいArduino関連のサイト、ショップ、ブログのリンクも掲載していきます。


該当の記事は見つかりませんでした。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。