第5回 パソコンのキーボードでLEDを光らせてみよう

    パソコンのキーボードでLEDを光らせてみよう


    パソコンのキーボードでLEDを光らせてみよう

    パソコンのキーボードからの入力よって、Arduinoに命令を与えてLEDを点灯、消灯させてみましょう。 今回は、シリアル通信という方法を用いて、Arduinoへデータを送ります。 シリアル通信は、Arduinoとパソコン間でデータを通信できるものと覚えておいていただくと良いでしょう。 第4回で作成したLチカの配線接続を利用して学習していきますので、準備しておいてください。

    使用する関数の紹介


    Serial.begin 関数

    書式) void Serial.begin(long rate) 説明) パソコンとシリアル通信を行うときの転送速度を設定します。 rate(転送速度)は、9600, 19200, 115200などの値が設定でき、基本的には、9600を使用することが多いです。

    Serial.println 関数

    書式) void Serial.println 説明) シリアル通信でデータを送る関数で、引数には(int, long, double, char)などが使用できます。 この関数は、改行コード付きで送信します。

    Serial.avalable 関数

    書式) int Serial.avalable 説明) シリアル通信によってデータが送られてきたかどうかを確認する時に使用します。

    Serial.Read 関数

    書式) int Serial.Read 説明) シリアル通信によって送られたデータを1文字だけ読み込みます。

    プログラムの作成


    プログラム作成

    シリアル関数を使用したプログラムの作成をしていきます。 1) Arduino IDEを起動します。 2) ファイル → 名前を付けて保存をクリックして、今回は、led_keyboardと入力しファイルを保存します。 下記のボタンをクリックして、プログラムの作成動画を見ながら作成してみましょう。 プログラムの作成

    プログラムの解説


    プログラム解説

    1行目では、出力ピンとして使用する番号を変数で宣言します。 4行目では、pinMode関数を使用して、Arduinoの10番ピンを出力ポートとして設定します。 5行目では、Serial.begin関数で、初期化処理を行います。 9行目では、シリアルから送られてきたデータ用の変数を宣言します。 10行目では、Serial.avaliable関数で、データが送られてきたを確認します。 データが存在する場合、11行目~18行目までの処理を行います。 11行目では、送られてきたデータを1文字読み込みます。 12行目では、読み込んだデータが"a"の場合、13行目~14行目の処理を行います。 13行目では、シリアルモニタに、"LED ON"と表示させます。 14行目では、出力ピンをオンにして、LEDを点灯させます。 15行目では、読み込んだデータが"s"の場合、16行目~17行目の処理を行います。 16行目では、シリアルモニタに、"LED OFF"と表示させます。 17行目では、出力ピンをオフにして、LEDを消灯させます。

    プログラムのコンパイルと書き込み


    プログラムのコンパイルと書き込み

    プログラムの作成ができたら、コンパイルを行い、Arduinoへの書き込み処理を行います。 1) コンパイルを実行 → コンパイルアイコン をクリックします 2) アップロードを実行 → コンパイルアイコン をクリックします 下記のボタンをクリックすると、プログラムのコンパイルと書き込み動画を見て確認できます。 プログラムのコンパイルと書き込み

    シリアルモニターでの動作確認


    キーボードから入力して、動作を確認します。 まずは、シリアルモニターを見てみましょう。 シリアルモニターの開き方を確認 今回作成したプログラムの通り、キーボードのキーを入力してみましょう。 1) キーボードの"a"を入力し、Enterボタンを押下。 2) キーボードの"s"を入力し、Enterボタンを押下。 "a"と入力すると、"LED ON"と表示され、"s"と入力すると、"LED OFF"と表示されます。 上記のように、シリアルモニターへ表示ができれば、シリアル通信が成功しています。

    Arduino側の動作確認


    キーボードから入力して、LEDの動作を確認します。 1) シリアルモニターを開く。 2) キーボードの"a"を入力して送信、またはEnterを押下すると、LEDが点灯します。 3) キーボードの"s"を入力して送信、またはEnterを押下すると、LEDが消灯します。 キーボードLEDのプログラムを確認しておきましょう。

    #define ledPin 10 void setup(){ pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { char val; if (Serial.available() > 0) { val = Serial.read(); if (val == 'a') { Serial.println("LED ON"); digitalWrite(ledPin, HIGH); } else if (val == 's') { Serial.println("LED OFF"); digitalWrite(ledPin, LOW); } } }

    LEDの使い方には慣れてきたと思いますので、次回以降は、他の部品やセンサーを使用して学習していきます。

    >> 第6回 圧電ブザーで音を鳴らしてみよう