見出し画像

§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. 実行してみよう

  1. Arduinoをパソコンに接続し、プログラムを書き込みます。

  2. Arduino IDEの「シリアルモニタ」を開きます(右上の虫眼鏡のボタン)。

  3. 可変抵抗を回したり、スイッチを押したりしてみましょう。シリアルモニタにセンサーやスイッチの状態が表示されるはずです。


ポイント


・データ確認の便利さ
 シリアル通信を使うと、センサーの動作確認やプログラムのデバッグが簡単に
 なります。
・シリアル通信の応用
 センサーの値をArduinoから送信するだけでなく、逆にパソコンから命令を送る
 ことも可能です。


これで、Arduinoとパソコン間のデータ通信方法が学べました! 




私が代表を務める山形県のジオアルピーヌ合同会社では、多様な回路の設計および試作製造を承っております。
企業様向けのサービスはもちろん、学校教材としての電子回路設計・製作にも対応しております。
さらに、「ロボット」を例に挙げれば、回路設計や機械設計、部品調達からパッケージングまで、ワンストップでサポートいたします。
まずは、弊社のホームページよりお気軽にお問い合わせください。皆さまからのご連絡を心よりお待ちしております(^-^



いいなと思ったら応援しよう!