.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _ar_analog_write: 2. アナログライト ================== Arduinoの14のデジタルピンのうち、6つにはPWM出力機能も備わっています。したがって、これら6つのピンにデジタル信号を書き込むことに加えて、アナログ信号(PWM波信号)も書き込むことができます。このようにして、LEDをさまざまな明るさで点灯させたり、モーターをさまざまな速度で回転させることができます。 パルス幅変調、または `PWM `_ は、デジタル手段でアナログの結果を得るための技術です。文字通りの意味を理解するのは難しいかもしれませんので、LEDの強度を制御する例を挙げて、より理解しやすく説明します。 高レベルと低レベルからなるデジタル信号をパルスと呼びます。これらのピンのパルス幅は、ON/OFFの速度を変えることで調整できます。 簡単に言えば、LEDを短い時間(例えば、ほとんどの人の視覚的な滞留時間である20ms)でオン、オフ、オンとすると、 LEDが消えたことには気づかず、光の明るさがわずかに弱くなります。この期間中、LEDがオンになっている時間が長いほど、LEDの明るさは強くなります。 つまり、一定の期間内で、パルスが広いほど、マイクロコントローラによって出力される「電気信号の強さ」が大きくなります。 PWM波を書き込むための関数は以下の通りです。 * ``analogWrite(pin, value)`` ピンにアナログ値(PWM波)を書き込みます。指定されたパルス信号を生成することで、異なる出力電圧(0-5V)をシミュレートできます。新しいreadまたはwrite文で呼び出されるまで、ピンはこの信号を保持します。 **文法** analogWrite(pin, value) **パラメータ** * ``pin``: 書き込むArduinoのピン。許容されるデータタイプ: int。 * ``value``: デューティサイクル:0(常にオフ)から255(常にオン)の間。許容されるデータタイプ: int。 **アナログライトの例** .. code-block:: arduino int pin = 9; // PWMピンに接続 void setup() { pinMode(pin, OUTPUT); // ピンを出力として設定 } void loop() { for (int i = 0 ;i<255 ; i++){ analogWrite(pin, i); //analogWriteの値は0から255まで delay(30); } } **注意と警告** * R3ボードをよく見ると、"~"の記号でマークされたピンにはアナログ出力機能があります。 * ピン5および6で生成されるPWM出力は、予想よりもデューティサイクルが高くなります。これは、これらのPWM出力を生成するために使用される内部タイマーを共有する ``millis()`` および ``delay()`` 関数との相互作用のためです。これは主に低デューティサイクルの設定(例えば、0 - 10)で気づかれることが多く、ピン5および6の出力を完全にオフにしない0の値の結果として気づくことがあります。 **関連コンポーネント** 以下は関連するコンポーネントで、クリックするとそれらの使用方法を学ぶことができます。 .. toctree:: :maxdepth: 2 ar_fading ar_colorful_light