Arduino基礎

Arduinoとは

Arduinoは電子回路として見れば、マイコンと電源や周辺回路を含むスーパーセットと言うことができるが、Arduinoの役割は何かという視点で見れば、コンピュータと現実世界を仲介するもの、アナログ値とデジタル値を変換する入出力(I/O)インターフェースと呼ぶことができる。

 

 

PCにはすでに、ウェブカメラ(入力)、マイク(入力)、スピーカー(出力)、キーボード(入力)、マウス(入力)、ディスプレイ(出力)のように入出力デバイスが実装されている。Arduinoは、センサーやアクチュエータを使ってオリジナルの入出力デバイスを制作することができるキットと考えてよい。

Back To Top

Arduinoを使ったシステム

インターフェースとして機能するシステム

PCのプログラムと連動することで、PCのインターフェースとしてのシステム。

スタンドアロンでのシステム

書込時のみPCを利用し、動作させる時はPCから外してArduinoのみで動作するスタンドアロンシステム。

Back To Top

様々なArduinoの種類

Arduinoには多くの種類が存在する(本家PRODUCTページ)。形状や機能が異なるものが多数あり、自分のプロジェクトに合ったものを選択できる。初めて利用する場合や汎用的なものとして、今回利用するArduino UNOが位置付けられている。

 

Back To Top

Arduino UNO R3のピン配置

Arduino UNO R3のピン配置および基板の構成は下図のようになる。電源は通常USBから供給されるが、DCジャックにACアダプターをつないだり、電池で駆動することもできる。

※Arduino UNOは販売されていた時期のよってバージョンがあるが、今回使用するのはR3。

ここで表記しているのはArduino UNOの機能の一部であり、記載していない情報もあるので仕様をよく読んで使う必要がある。

Arduino UNO&Genuino UNOプロダクトページ(英語)
Arduino UNOの回路図

Back To Top

回路図を理解する

電子回路を理解するためには、電子部品の特性を理解した上で回路図を読み解く必要がある。
下図は、Arduino UNOの回路図の一部。

ここで全てを説明はしないが、電源部分だけ解説する。下図のように+5V、GNDの記号が複数存在するが、これらは+5Vは+5V同士、GNDはGND同士で接続されることを意味する。回路図ではこれらを結線しないことで図を簡略化している。電源の+5Vがいくつも存在するわけではない。ただし、ひとつの回路に複数の電源が存在することもあるので注意が必要。Arduino UNOでも+5Vと+3.3Vの2つの電源が存在する。GNDは共通。

Back To Top

Arduinoの準備

Arduino UNO R3 +ブレッドボードEIC-80

Arduino UNO R3とブレッドボードをアクリル土台に固定したものを利用する。

 

USBケーブル(Type A – Type B)

Arduino UNOではType A- Type BのUSBケーブルを使用する。

Back To Top

Arduinoの接続

USBケーブルを使ってPCとArduinoを接続する。

 

Back To Top

Arduino IDEの起動

アプリケーションフォルダの中のArduino184.appを起動する。

基本スケッチが表示される。

Back To Top

ボードの選択

ツールメニュー>ボード>Arduino/Genuino Uno

 

Back To Top

シリアルポートの選択

ツールメニュー>シリアルポート>/dev/cu/usbmodem*****(数字は環境により異なる)

Back To Top

Lチカ

①サンプルスケッチ

ファイルメニュー>スケッチ例>01.Basics>Blinkを開く。

サンプルスケッチ(Blink)が表示される。

 

②コンパイル

検証(コンパイル)ボタンを押す。

ステータスに「スケッチをコンパイルしています」「コンパイルが完了しました」が表示される。


 

③書き込み

書き込みボタンを押す。

ステータスに「マイコンボードに書き込んでいます」「ボードへの書き込みが完了しました」が表示される。


 

④LEDの動作確認

Arduino上のLED(L)が点滅することを確認する。

 

⑤スケッチを理解する

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT); //ピンの出力設定 UNOの場合はLED_BUILTIN(予約変数)=13
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level) 点灯
  delay(1000);                       // wait for a second 1秒(1000ms)の待機
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW 消灯
  delay(1000);                       // wait for a second 1秒の待機
}

Back To Top