| 【パラメータ】
なし 【戻り値】 実行中のプログラムがスタートしてからの時間をunsigned long型で返します。 【例】 赤外線リモコンの受信モジュールが必要とする36KHzから52KHzの周波数を生成するのに適切なディレイを調べるためのプログラム。 /* Frequency Test. Paul Badger 2007 */
int tdelay; // 求めるディレイ
unsigned long i, hz;
unsigned long time;
int outPin = 11;
void setup(){
pinMode(outPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// 適切な周波数を得るために、ディレイのレンジを横断的にスキャン
for (tdelay = 1; tdelay < 12; tdelay++){
time = millis(); // ループの開始時
for (i = 0; i < 100000; i++){ // 100,000回転の時間を計測
digitalWrite(outPin, HIGH);
delayMicroseconds(tdelay);
digitalWrite(outPin, LOW);
delayMicroseconds(tdelay);
}
time = millis() - time; // ループの所要時間を求める
// 100,000で割って時間を周波数に変換し、さらにミリ秒に直す
hz = (1 /((float)time / 100000000.0));
Serial.print(tdelay, DEC);
Serial.print(" ");
Serial.println(hz, DEC);
}
}
[目次へ戻る] |
Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [Arduino wiki]