PCからArduinoボードにデータを送る方法

目次

動画

動画内で使用したスケッチ

基本スケッチ(テンプレ)

Arduino IDEのシリアルモニタから送られてきたデータを、数値として受け取るスケッチの基本形です。

スケッチのテンプレとして利用できますので、活用してみてください。

/*
  シリアルモニタから送られてきたデータを
  数値として受け取る基本スケッチ
*/

void setup() {
  Serial.begin(9600);  // シリアル通信を9600bpsで初期化
}

void loop() {
  if (Serial.available() > 0) {  // バッファにデータが来ているか確認
    String serialData = Serial.readStringUntil(10);  // LFの前までの文字列を読み取る
    int value = serialData.toInt();  // 読み取った文字列を数値に変換

    // ここに変数valueを使ったスケッチを書く
    // 例) valueの周波数でスピーカーで1秒間音を出す
    // tone(スピーカー接続端子, value);
    // delay(1000);
    // noTone(スピーカー接続端子);
  }
}

指定された時間分LEDを点灯するスケッチ

シリアルモニタから送られてきたデータを数値として受け取り、その数値の時間分LEDを点灯するスケッチの例です。1回ではわかりづらいので3回点灯するようにしています。

/*
  シリアルモニタから送られてきたデータを数値として受け取って、
  その時間分LEDを点灯するスケッチ
*/

#define LED_PIN 12  // LED接続端子

void setup() {
  Serial.begin(9600);  // シリアル通信を9600bpsで初期化
  pinMode(LED_PIN, OUTPUT);  // LED接続端子の出力設定
}

void loop() {
  if (Serial.available() > 0) {  // バッファにデータが来ているか確認
    String serialData = Serial.readStringUntil(10);  // LFの前までの文字列を読み取る
    int value = serialData.toInt();  // 読み取った文字列を数値に変換

    // value時間分LEDを3回点灯する
    for( int i=0; i<3; i++) {
      digitalWrite(LED_PIN, HIGH);
      delay(value);
      digitalWrite(LED_PIN, LOW);
      delay(1000);
    }

  }
}
通知の設定
通知タイミング
guest
0 コメント
新しい準
古い順 一番投票が多い
本文中にフィードバック
全てのコメントを見る
目次