Arduinoで遊ぶページ

Arduinoで遊んだ結果を残すページです。
garretlab
サンプルプログラム解説

概要

シリアルポートから'H'を受信するとLEDを点灯し、'L'を受信するとLEDを消灯します。

プログラム

定義等

/*
  Physical Pixel

 An example of using the Arduino board to receive data from the
 computer.  In this case, the Arduino boards turns on an LED when
 it receives the character 'H', and turns off the LED when it
 receives the character 'L'.

 The data can be sent from the Arduino serial monitor, or another
 program like Processing (see code below), Flash (via a serial-net
 proxy), PD, or Max/MSP.

 The circuit:
 * LED connected from digital pin 13 to ground

 created 2006
 by David A. Mellis
 modified 30 Aug 2011
 by Tom Igoe and Scott Fitzgerald

 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/PhysicalPixel
 */

const int ledPin = 13; // the pin that the LED is attached to
int incomingByte;      // a variable to read incoming serial data into

const int型の変数ledPinを定義し、初期化します。また、int型の変数incomingByteを定義します。

incomingByteは明示的に初期化していません。しかしincomingByteは静的記憶域期間を持つ算術型の変数なので、0に初期化されます。

setup()

void setup() {
  // initialize serial communication:
  Serial.begin(9600);
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
}

Serial.begin()を使って、シリアルポートを初期化します。

pinMode()で、ledPinを出力モードにします。

loop()

void loop() {
  // see if there's incoming serial data:
  if (Serial.available() > 0) {
    // read the oldest byte in the serial buffer:
    incomingByte = Serial.read();
    // if it's a capital H (ASCII 72), turn on the LED:
    if (incomingByte == 'H') {
      digitalWrite(ledPin, HIGH);
    }
    // if it's an L (ASCII 76) turn off the LED:
    if (incomingByte == 'L') {
      digitalWrite(ledPin, LOW);
    }
  }
}

Serial.available()で、シリアル入力があるかを調べます。入力がある場合、Serial.read()を使い、シリアル入力を読み込み、incomingByteに代入します。

if文を使って、incomingByteが'H'かどうかを調べ、そうであればdigitalWrite()を使ってledPinをHIGHにします。

if文を使って、incomingByteが'L'かどうかを調べ、そうであればdigitalWrite()を使ってledPinをLOWにします。

'H'でも'L'でもなければ、何もしません。

HやLをシングルクォートを使って括っていることに気を付けてください。文字定数を表す場合はシングルクォートを使い、文字列を表す場合はダブルクォートを使います。

その他

この例題には、通信相手となるProcessingのプログラムも入っていますが、こちらはよくわからないので掲載していません。

バージョン

Arduino 1.8.3



メニューを表示するためにJavaScriptを有効にしてください。

Arduinoで遊ぶページ
Copyright © 2011 garretlab all rights reserved.
inserted by FC2 system