Arduino

2.1 Arduino シリアル通信(1)

2017/08/27

Arduinoで通信する方法

Arduinoで通信するには

Arduinoの開発環境作成はこちらを先に行ってください → Arduino開発環境作成

 

ArduinoでIOTの仕掛けを作る場合、Arduinoから計測結果をPCやServerにデータを送ったり、仕事の指令を受け取る必要が出てきます。

今回はマイコンとPC間でのデータのやり取りを勉強しましょう。

では、Arduinoでのデータ受け渡しはどのようなものがあるのでしょうか?

 

Arduinoの開発環境にはシリアルモニタがあり、ここでデータのやりとりをモニタリングできるのです。

その他にも通信方法がいくつか有るので1つずつ紹介していきます。

  • シリアル通信・・・Arduinoで実装
    RS232C 仕様の古さからレガシーインターフェースと呼ばれる、USB変換してUSBで動作します
    通信速度9600 14400 28800 ,COMポート
  • I2C(Wire)通信・・・Inter integrated Circuit
    2本線 VCC、GND、A4、A5
    機器を複数繋げる、機器にアドレスを割り当てて電文送信
  • SPI通信・・・Serial Peripheral Interface シリアルベリフェラルインターフェース
    4本線 D13,12,11,10 SCK MOSI MISO SS1・・・・
    SDカード、SPI接続のセンサー
    機械ふえるとSS1、SS2とSSがふえる
  • イーサネット接続・・・イーサネットシールドが必要 mac,ip,gatway,sunet
  • WIFI・・・シールド必要、Arduinoに組み込まれているサードパーティ製あり
  • BEE通信・・・無線モジュール 室内30m 屋外100m
  • Bluetooth・・・シールド必要、androidと通信

 

1.serial1.ino・・・シリアルモニタから文字を受け取る

シリアルモニタから文字を受け取りARDUINOから文字をかえす

※1
123と入力して送信すると



となります。これはreadが1文字ずつ読み込まれる為です。

※2
int inputとなっている
Serial.print(input);
にすると123で
49
50
51
となって帰ってくる。1のascコード=49が帰ってくるのです。

 

おっと、123と入力したらやっぱり123と返ってきてほしいですよね。

 

 

ポイント

Serial.begin(9600)
ボーレト9600bpsで通信開始。9600 14400 28800ぐらいまで。

Serial.read
受信シリアルデータを読み込みます。read()はStreamユーティリティー・クラスから継承します。

Serial.write
バイナリデータをシリアルポートに書き込みます。数値の数字を表す文字を送信するには、代わりにprint()関数を使用します。

Serial.print
データをASCIIテキストとしてシリアルポートに出力します。文字と文字列はそのまま送信されます。

-Arduino