1

ポテンショメータで時間間隔を設定したい。1秒から6秒まで選択したいです。これどうやってするの?

私はこれまでのところこれを持っています。ポテンショメータを使用すると、ライトが明から暗に変わります。

(私は Arduino Uno を使用しており、C++ でプログラミングしています)。

const byte pot = 0;
int potWert=0;

potWert = analogRead(pot);  
analogWrite(led,potWert/4);
Serial.println((byte)potWert); //just for output on the serial monitor
4

2 に答える 2

5

analogRead は0 から 1023の範囲を読み取ります。これを時間間隔に合わせてスケーリングする必要があります。

1 から 6 秒の範囲が必要だと言いました (0 から 6 ではありませんか?)。これをポットに適切にスケーリングするには、1023 を 6 で割る必要があります (0 から 6 の範囲が必要な場合は 7)。そう:

1023 / 6 = 170.5

したがって、次を使用する必要があります。

analogWrite(led,potWert/170.5);

10 ミリ秒単位まで正確にしたいとします。

 1023 / 600 = 1.705

したがって:

analogWrite(led,potWert/1.705);
于 2013-05-31T11:01:26.343 に答える
0

これは難しい方法であり、コードが読みにくくなります。map ステートメントを使用します。Arduino リファレンスの例を次に示します。

/* Map an analog value to 8 bits (0 to 255) */
void setup() {}

void loop()
{
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}
于 2013-06-03T05:31:02.710 に答える