§4. パソコン-マイコン間のデータ通信(シリアル通信)
ここでは、Arduinoを使ってセンサーから読み取ったデータをパソコンに送信する方法を学びます。この方法を使うと、センサーの値をリアルタイムで確認できるようになります。
1. シリアル通信とは?
シリアル通信は、データを1ビットずつ順番に送信する通信方法です。例えば、「0110 0101」といったデータを1本の線で送り出します。Arduinoでは、USBケーブルを通じてこのシリアル通信を行い、センサーの値をパソコンに送信できます。
2. 配線をしてみよう
以下の回路を作ります:
・可変抵抗の接続
可変抵抗の中央端子をArduinoのA0ピンに接続します。
・タクトスイッチの接続
タクトスイッチを13番ピンに接続し、スイッチを押すことで信号を送ります。
3. プログラムを書いてみよう
次に、以下のプログラムをArduino IDEに入力してください。
int val_a = 0; // 可変抵抗の値を保存する変数
int val_d = 0; // タクトスイッチの状態を保存する変数
void setup() {
pinMode(13, INPUT); // タクトスイッチのピンを入力に設定
Serial.begin(9600); // シリアル通信を9600bpsで初期化
}
void loop() {
val_a = analogRead(A0); // A0ピンから可変抵抗の値を読み取る
val_d = digitalRead(13); // 13番ピンからスイッチの状態を読み取る
Serial.print("Analog value: "); // 可変抵抗の値を表示
Serial.print(val_a);
Serial.print(" | Digital value: "); // スイッチの状態を表示
Serial.println(val_d);
delay(1000); // 1秒間待つ
}
4. プログラムの意味を解説
・Serial.begin(9600)
シリアル通信を9600bps(1秒間に9600ビットの速度)で初期化します。
これが通信速度を指定する部分です。
・Serial.print()とSerial.println()
Serial.print()はデータをそのまま表示します。
Serial.println()はデータを表示した後に改行します。
・センサーの値を読み取る
analogRead(A0)で可変抵抗の値を取得します(0~1023)。
digitalRead(13)でスイッチが押されているかどうかを確認します。
5. 実行してみよう
Arduinoをパソコンに接続し、プログラムを書き込みます。
Arduino IDEの「シリアルモニタ」を開きます(右上の虫眼鏡のボタン)。
可変抵抗を回したり、スイッチを押したりしてみましょう。シリアルモニタにセンサーやスイッチの状態が表示されるはずです。
ポイント
・データ確認の便利さ
シリアル通信を使うと、センサーの動作確認やプログラムのデバッグが簡単に
なります。
・シリアル通信の応用
センサーの値をArduinoから送信するだけでなく、逆にパソコンから命令を送る
ことも可能です。
これで、Arduinoとパソコン間のデータ通信方法が学べました!
私が代表を務める山形県のジオアルピーヌ合同会社では、多様な回路の設計および試作製造を承っております。
企業様向けのサービスはもちろん、学校教材としての電子回路設計・製作にも対応しております。
さらに、「ロボット」を例に挙げれば、回路設計や機械設計、部品調達からパッケージングまで、ワンストップでサポートいたします。
まずは、弊社のホームページよりお気軽にお問い合わせください。皆さまからのご連絡を心よりお待ちしております(^-^