MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Arduinoの基礎 - シリアル通信のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Arduinoの基礎 - シリアル通信
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == シリアル通信は、ArduinoボードとPCやその他のデバイスと通信するために使用される。<br> すべてのArduinoボードは少なくとも1つのシリアルポートを備えている。<br> <br> Arduinoの開発環境では、シリアル通信を利用するプログラミングインターフェイスとして、<code>Serial</code>オブジェクトが利用できる。<br> これは、シリアル通信のためのバッファやメソッドをまとめた<code>HardwareSerial</code>クラスのオブジェクトである。<br> <br><br> == シリアルモニタ == Arduino IDEでは、シリアルポートの入出力の確認を簡単に行うためのシリアルモニタが用意されている。<br> シリアルモニタは、Arduino IDEのメニューバー[ツール] - [シリアルモニタ]を選択すると起動する。<br> <br> シリアルモニタの画面は下図のようになる。<br> シリアルポートにデータを転送するには、文字を入力して[Send]ボタンを押下する。<br> [[ファイル:Arduino SerialMonitor 01.png|フレームなし|中央]] <br><br> == シリアルポートに文字を出力する == シリアルポートに文字を出力して、それを表示するサンプルコードを以下に記述する。(説明は下記を参照)<br> <br> まず、<code>setup()</code>関数に記述した<code>Serial</code>クラスの<code>begin</code>メソッドで、シリアル通信のボーレート(1秒間の転送ビット数)を設定する。<br> 次に、<code>loop()</code>関数にて、<code>Serial</code>クラスの<code>println</code>メソッドでデータを送信する。(<code>print</code>メソッドも存在するが、<code>println</code>は<code>CRLF</code>を最後に出力する)<br> 送信後、10秒のdelayを行う。<br> (シリアルモニタを開いてから、Arduino IDEからArduinoボードにダウンロードすること)<br> <source lang="c++"> void setup() { Serial.begin( 9600 ); } void loop() { Serial.println( "Hello, world" ); delay( 10 * 1000 ); } </source> <br><br> == 読み込みと出力する == 次に、シリアルポートから文字を1バイト毎に入力して、それをASCIIコードに変換してシリアルポートに出力するサンプルコード以下に記述する。<br> (説明は下記を参照)。<br> まず、<code>Serial.available()</code>メソッドは、バッファにデータがある場合、読み込み可能なバイト数を返す。データがない場合は0を返す。<br> 次に、<code>Serial.read()</code>メソッドは、バッファの先頭のバイトを読み取り返す。読み取り可能なデータがない場合は、ブロックせずに-1を返す。<br> <br> <code>Serial.print()</code>メソッドおよび<code>Serial.println()</code>メソッドの第2引数で書式を指定する。<br> 2 / 8 / 10 / 16進数として出力するには、BIN / OCT / DEC/ HEXをそれぞれ指定する。<br> 浮動小数点の値に対して、書式を整数に指定すると小数点の場所を指定することができる。<br> <br> <source lang="c++"> void setup() { Serial.begin( 9600 ); } void loop() { if(Serial.available()) { char c = Serial.read(); Serial.print(c); Serial.print(" "); Serial.println(c, HEX); } } </source> <br> これを実行すると、次のようになる。<br> シリアルモニタの入力フィールドに"Hello"と入力して、[Send]ボタンを押下する。<br> [[ファイル:Arduino SerialMonitor 02.png|フレームなし|中央]] <br> すると、次のように出力される。<br> [[ファイル:Arduino SerialMonitor 03.png|フレームなし|中央]] <br><br> __FORCETOC__ [[カテゴリ:Arduino]]
Arduinoの基礎 - シリアル通信
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse