概要
Arduino Nanoは、ATmega328(Arduino Nano 3.x)をベースにした、小型で完成度の高い、ブレッドボードに適したボードです。Arduino Duemilanoveとほぼ同じ機能を持っていますが、パッケージが異なります。DC電源ジャックがないだけで、標準のUSBケーブルではなくミニBのUSBケーブルで動作します。
関連ボード
同様の機能を持ち、さらに追加機能を提供するNanoボードをお探しの場合は、以下をご確認ください。
Arduino Nano 33 BLE
Arduino Nano 33 BLE SENSE(アルドゥイーノ ナノ 33 BLE センス
Arduino 33 IoT (アルドゥイーノ 33 IoT)
Arduino Micro(アルドゥイーノ マイクロ
はじめに
チュートリアルプラットフォームのProject Hubから、Nanoボードを使ったプロジェクトのインスピレーションを得てください。
Getting Started with Arduino Nano」セクションでは、ボードの設定、Arduino Software(IDE)の使用、コーディングや電子工作を始めるために必要なすべての情報が掲載されています。
チュートリアル」のセクションでは、ライブラリや内蔵スケッチの例や、Arduinoのハードウェアとソフトウェアの知識を深めるためのその他の有用な情報を見つけることができます。
ヘルプが必要なら
Arduinoフォーラムでは、Arduino言語に関する質問や、Arduinoで独自のプロジェクトを作成する方法について確認できます。ボードに関するヘルプが必要な場合は、お問い合わせページで説明されている公式のArduinoユーザーサポートに連絡してください。
技術スペック
MICROCONTROLLER | ATmega328 |
ARCHITECTURE | AVR |
OPERATING VOLTAGE | 5 V |
FLASH MEMORY | 32 KB of which 2 KB used by bootloader |
SRAM | 2 KB |
CLOCK SPEED | 16 MHz |
ANALOG IN PINS | 8 |
EEPROM | 1 KB |
DC CURRENT PER I/O PINS | 40 mA (I/O Pins) |
INPUT VOLTAGE | 7-12 V |
DIGITAL I/O PINS | 22 (6 of which are PWM) |
PWM OUTPUT | 6 |
POWER CONSUMPTION | 19 mA |
PCB SIZE | 18 x 45 mm |
WEIGHT | 7 g |
PRODUCT CODE | A000005 |
ドキュメント
OSH: 回路図
Arduino Unoはオープンソースのハードウェアです。以下をクリックし公式サイトよりファイルをダウンロードし自分のボードを作ることができます。
▶電子回路[EAGLE FILE ZIP]
▶電子回路[PDF]
▶ボード図面[.PDF]
▶ATmega328P DataSheet
Pinout Diagram
▶pinout diagramのダウンロードはこちらをクリック (PDF)
電源
Arduino Nanoは、Mini-B USB接続、6~20Vの非レギュレーション外部電源(ピン30)、または5Vのレギュレーション外部電源(ピン27)から電源を供給できます。電源は最も高い電圧のものが自動的に選択されます。
メモリー
ATmega328は32KBを搭載しています(ブートローダ用に2KBも使用しています)。ATmega328は、2KBのSRAMと1KBのEEPROMを搭載しています。
入力と出力
Nanoの14本のデジタルピンは、pinMode()、digitalWrite()、digitalRead()関数を使用して、入力または出力として使用できます。これらのピンは5ボルトで動作します。各ピンは、最大40mAの供給または受信が可能で、20~50kΩの内部プルアップ抵抗(デフォルトでは切断されている)を備えています。さらに、いくつかのピンは特殊な機能を持っています。
- シリアル。0(RX)と1(TX)。TTLシリアルデータの受信(RX)および送信(TX)に使用されます。これらのピンは、FTDIのUSB-TTLシリアルチップの対応するピンに接続されています。
- 外部インタラプト:2および3。これらのピンは、低い値、立ち上がりまたは立ち下がりのエッジ、または値の変化で割り込みをトリガするように設定できます。詳細はattachInterrupt()関数をご参照ください。
- PWM: 3, 5, 6, 9, 10, および 11. analogWrite()関数で8ビットのPWM出力を提供します。
- SPI: 10 (ss), 11 (mosi), 12 (miso), 13 (sck). これらのピンは、SPI通信をサポートしていますが、基礎となるハードウェアによって提供されているものの、現在のところArduino言語には含まれていません。
- LED: 13 デジタルピン13には、内蔵のLEDが接続されています。ピンがHIGH値のときはLEDが点灯し、ピンがLOWのときは消灯します。
Nanoには8つのアナログ入力があり、それぞれが10ビットの分解能(つまり1024通りの値)を持っています。デフォルトでは、グランドから5ボルトまでを測定しますが、analogReference()関数を使用して範囲の上限を変更することも可能です。アナログピン6と7は、デジタルピンとしては使用できません。また、いくつかのピンは特殊な機能を持っています。
- I2C。A4(SDA)とA5(SCL)です。Wireライブラリを使用してI2C(TWI)通信をサポートします(Wiringウェブサイトのドキュメント)。
ボード上には他にもいくつかのピンがあります。
- AREF。アナログ入力の基準電圧です。analogReference()で使用される。
- リセットです。このラインをLOWにすると、マイクロコントローラーがリセットされます。通常、ボード上のリセットボタンをブロックするシールドにリセットボタンを追加するために使用します。
通信機能
Arduino Nanoは、コンピュータ、他のArduino、または他のマイクロコントローラと通信するための多くの機能を備えています。ATmega328はUART TTL(5V)シリアル通信を提供しており、デジタルピン0(RX)と1(TX)で利用できます。ボード上のFTDI FT232RLは、このシリアル通信をUSB経由でチャネルし、FTDIドライバ(Arduinoソフトウェアに同梱)は、コンピュータ上のソフトウェアに仮想的なCOMポートを提供します。Arduinoソフトウェアにはシリアルモニターが搭載されており、簡単なテキストデータをArduinoボードとの間で送受信することができます。FTDIチップとコンピュータへのUSB接続を介してデータが送信されると、ボード上のRXとTXのLEDが点滅します(ただし、ピン0と1のシリアル通信はできません)。SoftwareSerialライブラリを使用すると、Nanoのデジタルピンのいずれかでシリアル通信を行うことができます。ATmega328は、I2C(TWI)とSPI通信もサポートしています。Arduinoソフトウェアには、I2Cバスの使用を簡単にするWireライブラリが含まれています。SPI通信を使用するには、ATmega328のデータシートを参照してください。
プログラミング
Arduino Nanoは、Arduinoソフトウェア(ダウンロード)でプログラミングできます。ツール」→「ボード」メニューから「Arduino Duemilanove or Nano w/ ATmega328」を選択してください(お使いのボードのマイコンに応じて)。Arduino Nanoに搭載されているATmega328には、ブートローダーがあらかじめ組み込まれており、外部のハードウェアプログラマーを使用せずに新しいコードをアップロードすることができます。通信には、オリジナルのSTK500プロトコルを使用しています。ブートローダーをバイパスして、Arduino ISPなどを使ってICSP(In-Circuit Serial Programming)ヘッダーからマイコンをプログラムすることもできます。
自動(ソフトウェア)リセット
Arduino Nanoは、アップロード前に物理的にリセットボタンを押すのではなく、接続されたコンピュータ上で動作するソフトウェアによってリセットできるように設計されています。FT232RLのハードウェアフロー制御ライン(DTR)の一つは、100ナノファラッドのコンデンサを介してATmega328のリセットラインに接続されています。このラインがアサートされると(ローになると)、リセットラインはチップをリセットするのに十分な長さだけ低下します。Arduinoソフトウェアはこの機能を利用して、Arduino環境でアップロードボタンを押すだけでコードをアップロードできるようになっています。つまり、DTRの低下とアップロードの開始をうまく調整できるので、ブートローダのタイムアウトを短くすることができるのです。この設定は他にも意味があります。Mac OS XまたはLinuxを搭載したコンピューターに接続した場合、ソフトウェア(USB)から接続するたびにリセットされます。その後の約半秒間は、Nano上でブートローダが動作しています。これは、不正なデータ(新しいコードのアップロード以外のもの)を無視するようにプログラムされていますが、次のように、ボードに送信された最初の数バイトのデータを傍受します。