一部のピンの番号の横に「〜」記号があるのはなぜですか?


32

私はArduinoの宇野を見ていたと私はデジタル・ピンによってそのシンボルに気付き1110965、と3。これらはどういう意味ですか?これは動作に影響しますか?特定の状況でこれらのピンを使用できませんか?


19
チルダ記号は「およそ」を意味します。たとえば、「これは約11ピンです」。製造プロセス中に、ピンが少し移動することがあります。ピン11が11になることはめったにありません。通常、11より少し大きいか少し小さいです。:)

6
@AnnonomusPersonデイビッドはファセット的で、ピン配列などに慣れていない場合はすぐにはわかりません。
シャムタム

7
@Shamtam:それとも、:)デビッドに不慣れなら
クリスLaplante

回答:


31

リラックス。心配しないで。これらのピンは呼ばれPWM、「追加ボーナス」があることを除いて、他のピンと同じです。


ArduinoのWebサイトからの用途:

  • LEDを暗くする
  • アナログ出力をシミュレートします。出力はまだ0Vから5Vにデジタルでトグルしています。ただし、アナログ電圧をシミュレートするためのローパスフィルター(コンデンサーと抵抗器)。
  • オーディオ信号を生成します。
  • モーターに可変速度制御を提供します。
  • 変調信号の生成。たとえば、リモートコントロール用の赤外線LEDを駆動します。

使い方:

PWMピンは、約490Hzのレートでピンを自動的に切り替えるオンチップタイマーによって制御されます。「パルス幅変調」(PWM)は、その周波数の1サイクルの間、ピンがオンまたはオフのままである時間です。これは、以前のように半分の明るさの錯覚を与えることでLEDを暗くすることができます。 さまざまなデューティサイクルのイメージ。

25%のデューティサイクルがある場合、1/4の時間になります。LEDに使用した場合、約1/4の明るさで表示されます。(注:一部の人々が指摘したように、これは真の比例ではありませんが、簡単にするためにそのままにしておきます。例:25%は常に輝度の1/4であるとは限りません。)

(実際に電気に精通している場合は、おそらくコンデンサを追加してアナログ出力にすることもできます。)


これらのピンを使用して出力する方法:

まず、ピンを出力として定義する必要があります。次に、を使用 analogWrite(ledPin, 128); して起動します。ledPinあなたはPWMを開始したいとことPWMピンで128の間の数に置き換えてください025500% duty cycle(完全にオフピンを回す)と255100% duty cycle。(ピンを完全にオンにします)

ソース:http : //www.arduino-tutorials.com/arduino-pwm/


コードでライトを非常に高速にオン/オフできないのはなぜですか?:

ただし、技術的にはいくつかの問題があります。

  • Arduinoでハードワイヤード回路を使用するほど正確ではない場合があります
  • 大量の「if」ステートメントを使用する代わりに、単に命令を入力する方が簡単です

Arduinoの唯一の目的がPWM信号の生成である場合、実際にはそれほど違いはありません。ただし、メインループに50 MSを超える遅延を配置すると、タイミングが混乱します。Arduinoは1つのスレッドでしか実行されないため(一度に1つのことしかできないため)、ソフトウェアアプローチでは「遅延」関数を排除する必要があります。あなたが何をしているのかを知っていれば、それは光を薄暗くするのにそれほど大きな違いをもたらさないでしょうが、PWMで余分なピンを持っているなら、あなたはソフトウェアアプローチであなたの時間を無駄にしているだけです。


他の人が指摘したように:

回路には電流と電圧を制限するための抵抗がまだ必要です。これはスキップできません。


1
「処理能力」(またはそのフレーズが意味すると思われるもの)の意味がわかりません。PWMは、実行中のコードとは無関係に実行されているタイマーによってトリガーされるため機能します。
ボールドエンジニア

@ JamesC4S遅延を追加し、「オン」と「オフ」になると、コード全体が遅くなります。プロセッサは、過熱する前に毎秒非常に多くのことしかできないため、処理速度を制御します。
匿名のペンギン

@AnnonomusPersonあなたが与えている答えをもっと明確にする必要があります。あなたの説明が「処理能力」とどう関係しているのか、まだわかりません。たとえば、delay()を使用しないPWMルーチンを作成するには、たとえばmillis()を使用します。これにより、残りのコードの実行速度への影響は最小限に抑えられます。
ボールドエンジニア

1
@AnnonomusPerson:コードにPWMを実装する方法は2つあります:終了するかどうかを決定する以外に何もしないループでプロセッサにPWMを実行させるか、タイマーティック割り込みを使用することができますPWMを実行します。前者の状況では、PWMが発生している間、プロセッサは他に何もできません。後者では、PWMタイミングの精度と精度に制限があります。ハードウェアPWM回路により、チップは、他のことをしながらマイクロ秒のファクション内で正確なクリーンなPWM波形を生成できます。
supercat

視覚の仕組みのおかげで、1/4 DC(または他の比率)のLEDは、必ずしも完全な明るさの対応する割合で表示されないことに注意してください。
イグナシオバスケス-エイブラムス14

7

PWMピンに関する一般的な誤解は、PWMを使用する場合、電流制限抵抗(LEDなど)を使用する必要がないということです。

本当じゃない。PWMピンは、自動的にオン/オフされるデジタルピンと考える必要があります。これは、他のピンと同じ高電圧になることを意味します。

PWMでLEDを使用する場合、電流制限抵抗を使用する必要があります。PWMでモーターを使用する場合、(ほとんどの場合)トランジスタを使用する必要があります。


2
@AnnonomusPersonいいえ、それは正しくありません。真のアナログ出力がある場合でも、LEDには電流リミッターが必要です。LEDには、定電圧源ではなく定電流源が必要です。
ボールドエンジニア

3
電流制限抵抗が組み込まれたLEDを入手できます。MaplinのLEDと、12Vから直接動作するものがあると言われたときに、12Vで動作する適切な抵抗器を求めたとき、私はとても失望しました。ええと、ANDゲートなどを作成するために、トランジスタのロードを1つのパッケージにパッケージ化するまで待ってください。
アンドリューモートン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.