Arduino入門 Arduinoが実行できる8つの機能

2020年3月31日

以前にArdiunoの一番簡単なプログラミングを紹介しました。

上の記事を読んでもらうとArduinoがどんなことをするための物かはだいたい理解ができると思います。ただ、電圧計を簡単に作りたいという人はちょっと少ないかなと思いましたので今回はもう少しArduinoの全体について説明します。

今回の記事ではArduinoでできることをまとめてみます。各機能の詳細については触れませんがArduinoについてザックリ知りたい人には役に立つと思います。

できることの中に自分の探している項目があれば、さらにこのブログの中を検索してみてください。

1 LED

Arduino UNOには基板上にLEDが実装されています。このLEDを使えば部品の増設をせずにArduinoを制御することができます。例えば一定時間ごとにLEDをチカチカ光らせるタイマーなどは、初心者の最初の一歩として有名です。(Lチカといいます)

2 電圧測定

Arduinoにはいくつかのアナログインプットピンがついています。動作電圧の関係で、電圧の測定は5Vまでしかできませんが、抵抗素子をうまく使うことで数千Vの電圧を測ることもできます。

またいくつかのセンサーはアウトプットが電圧になって出てくるものもあるのでArduinoだけで電圧が測れることは非常に便利です。

3 スイッチ

Arduinoは複数のアナログインプットピンとデジタルインプットピンを備えています。機種によって個数は違いますが、普通の機種であれば10個以上のボタンはつけれるでしょう。

プッシュボタンや、ONーOFFスイッチ、ボリュームなんかも使えます。スイッチの片側をGND、逆側をデジタルか、アナログのIOピンにつけてプログラムで状態を監視します。

アマゾンで「プッシュボタン」で検索してみてください。たくさんの種類のボタンが激安で購入できます。

4 液晶モニター

Arduinoではキャラクタディスプレーとグラフィックディスプレーが使えますが、簡単に作るのであれば、キャラクタディスプレーがおすすめです。ボタン類に比べて配線が多いですが、専用のライブラリーがありますので、比較的簡単にモニターを接続することができます。

液晶モニターがあればArduinoの使い方の幅がぐっと広がります。2の電圧測定は実は電圧を測るだけではアウトプットができないのですが、液晶モニターがあれば測った電圧を表示できます。もちろん何かのセンサーのアウトプットをArduinoのプログラムで変換してモニターに表示するなんてこともできます。

5 PCとのシリアル通信

PCとの通信も必要な機能の一つですよね。ArduinoはUSB上でシリアル通信をエミュレートできます。ArduinoのIDEの右上の虫眼鏡ボタンを押すとArduinoとシリアル通信が繋がります。あとはArduinoにシリアル通信をプログラミングしておけばデータのやり取りができるわけです。

もちろんArduinoのIDEだけでなく、PCでC#などのプログラムを動かして、このプログラムとArduino間でシリアル通信することもできます。

6 モーターの制御

だんだん上級になってきますよ。

ArduinoはモーターのONOFF、正回転逆回転、回転スピードを制御することができます。これを使えばラジコンカーなどできますね。

Arduinoの本体だけだと使える電流が足りないのでモータードライバーを使います。特にArduinoにはモーターシールドってものがあるのでこれを使えば、例えばロボットアームとかもできます。

7 通信

だんだん私も未経験な領域に入ってきました。

ArduinoはWLANやBluetoothやSDカードやSIMなどのインターフェースが使えます。それとWEBサーバーくらいだったらArduino上で可動させることができます。PCとの連携やネットワークとの連携なども可能です。

8 I2C通信

I2Cが多分一番大事なところだとおもうんですよ。I2CによりArduinoはICと通信することができるようになります。ここはちょっと丁寧に説明しますね。

I2Cとはアイ・スクエア・シーの略で、1980年代にPhilips Semiconductor社により開発された通信規格です。Philips Semiconductor社は企業再編でNXP Semiconductor社に社名が変更され、現在規格の管理はNXP Semiconductor社が行っています。

通信規格と言ってもWIFIとかの通信規格とは異なり、シリアルバスの通信規格です。シリアルバスとは基板上でICとICが通信する規格です。通信するICには電源、接地、データ(SDA)、クロック(SCL)の4本の線が必要です。

この通信を使ってArduinoにセンサーICを接続してあげればArduinoでいろいろなものが測れるようになるんです。

I2C通信できるICの種類

I2Cはこれだけ多くのICで使われています。

センサー系

  • カラーセンサー
  • 気圧センサ
  • UVセンサー
  • 周辺光センサー
  • 近接センサー
  • 加速度センサー
  • ジャイロスコープ
  • 磁気センサー
  • eCompass
  • 慣性センサー
  • 6AXIS(6軸加速度センサー)
  • 9AXIS(9軸加速度センサ)
  • ガスセンサー
  • Air Quality(空気品質)
  • Temperature(温度)
  • Environment(環境センサ)
  • サーモパイル
  • SensorHUB
  • ハートレートセンサー

操作デバイス系

  • Joystick
  • TouchScreen

その他系

  • LEDドライバー
  • NFC
  • 汎用IO
  • ADコンバータ
  • Programmable発振器

以上は現在販売されているICをもとにリストしていますが、ICの種類は日々増えていきますので、このリストの種類に限りません。リストにないものでも探してみるとあるかもしれません。

実は一番最初のLEDからほとんどのものは〇〇ドライバーみたいなものが出ていて、ほとんどI2C通信ができます。極端に言うとArduino自体にはI2Cに使う4ピンだけあって、それ以外はドライバーを追加すればいい。みたいな感じです。

9 Arduinoで何ができるかまとめ

この記事ではArduinoのできることをまとめてみました。

  • LED
  • 電圧測定
  • スイッチ
  • 液晶モニター
  • シリアル通信
  • モーター制御
  • 無線通信
  • I2C通信

これらを使うだけで実現できるものって身の回りには結構あります。例えば電卓、温度計、ライト。実はスマホやパソコンなんかも自作できます。(パソコンはもともと自作できるけど)

しかも、スイッチやモニターやArduino本体などをきれいにワンパッケージにすることも、3Dプリンターで個人が自作できるようになっています。(これについても時間があれば紹介します)

私はArduinoにすっごい可能性を感じていて、精度の差こそあれ、世の中のほとんどの計測器は自作できるんじゃねーか?個人で計測器メーカーが作れる時代なんじゃねーか?と思っています。

なかなか、読んでいる方に伝わらないと思いますけど、この思いが伝わるように今後も発信していきますので、分かる方だけでいいので受け取ってください。