ArduinoIDEのシリアルモニタから文字を表示する

 

Arduinoで文字を表示する方法はシリアルモニタで表示させるか、LCDディスプレイを使って表示させるかの二通りの方法が一般的である。

シリアルモニタで表示する



Arduino IDEのシリアルモニタはルーペマークをクリックすると表示される。
これは、Arduinoとパソコン間でシリアル通信を行い、文字を表示させることのできる画面になる。
この画面から、データの入力を行ったりすることもできる。


Arduinoとパソコンでシリアル通信を行う

シリアルモニタに表示する

シリアルモニタで「Hello World」と表示させてみる。
ソースコードがこれ。

void setup(){
 Serial.begin(9600);
 delay(1000);
  Serial.print("Hello World");
}

void loop(){

}

シンプルに一回だけ表示させてみた。



setup()関数で「Serial.begin(9600);」と書いている。
これは、Arduinoでシリアル通信を行うために書かなければならないArduino専用の関数になる。
「9600」という数値は、シリアル通信の速度を示している。
シリアルモニタの下側に「9600bps」と表示されてるものである。
Arduino側とシリアルモニタ側でbpsの数値は合わせておく必要がある。
数値が違うと正常に通信が行われないので注意する。
Arduinoのデフォルト設定で使うなら、基本的に「9600」で問題ない。

「delay(1000);」はシリアル通信を行うまでに必要な待機時間になる。
シリアル通信もArduino側で準備する必要がある。
だいたい「1秒」待てば問題ないので、delay関数で待っている。

Serial.print()はArduinoのシリアルモニタに文字を表示させるための関数になる。
基本的に、C言語のprintf()関数と使い方は変わらない。変数を入れたり「"」で囲って文字を書いたりする。

シリアルモニタから入力データを送る

シリアルモニタで送りたいデータを入力して、送信を押せばデータの入力ができる。
送ったデータを表示させるプログラムを書いてみる。

char data;

void setup(){
 Serial.begin(9600);
 delay(1000);
  Serial.print("Hello World\n");
}

void loop(){
  if(Serial.available() > 0){
     data=Serial.read();

     Serial.print(data);
  }
}

Serial.available()という関数がある。
これは、データの入力があるかないかを判断してくれる関数である。
入力がない時は「-1」を返す関数なので、「0」を超えるときは何かしらのデータの入力があったと判断できる。なので、if文でデータの入力のありなしを判断する。

Serial.read()は入力されたデータを読み込むための関数である。
文字や数字を入力するときはchar型の変数に入れるようにする。
数値を入力す場合は、int型にする。







コメント

このブログの人気の投稿

STM32CubeIDEに日本語化プラグインを導入する

STM32F401でLチカをする(LED点灯)

STM32F401-Nucleoでシリアル通信をやってみる