.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _ar_digital_read: 3. デジタルリード =================== センサーは実世界の情報をキャッチし、デジタルやアナログのピンを通じてメインボードに情報を伝達します。これにより、コンピュータは現状を知ることができます。 したがって、Arduinoボードは、ボタンやIR障害回避モジュールのようなデジタルピンの値を読むことで、デジタルセンサーの動作状況を知ることができます。 以下は必要な関数です。 * ``pinMode(pin, mode)``: 指定のピンを ``INPUT`` か ``OUTPUT`` として設定します。この場合は ``INPUT`` として設定する必要があります。 **構文** pinMode(pin, mode) **パラメータ** * ``pin``: モードを設定するArduinoのピン番号。 * ``mode``: INPUT、OUTPUT、または INPUT_PULLUP。 * ``digitalRead(pin)``: 指定されたデジタルピンからの値(レベル状態)を読み取ります。 **構文** digitalRead(pin) **パラメータ** * ``pin``: 読み取りたいArduinoのピン番号 **返り値** HIGH または LOW **デジタルリードの例** .. code-block:: arduino int ledPin = 13; // LEDはデジタルピン13に接続されています int inPin = 7; // プッシュボタンはデジタルピン7に接続されています int val = 0; // 読み取った値を保存する変数 void setup() { pinMode(ledPin, OUTPUT); // デジタルピン13を出力として設定 pinMode(inPin, INPUT); // デジタルピン7を入力として設定 } void loop() { val = digitalRead(inPin); // 入力ピンを読み取り digitalWrite(ledPin, val); // LEDをボタンの値に設定 **注意事項と警告** 1. プルアップ & プルダウン。 ピンがレベル信号を受け取っていない場合、 ``digitalRead()`` はランダムな、不確定な値を出力する可能性があります。入力ピンを既知の状態に指向させることで、プロジェクトの信頼性を高めることができます。 デジタル入力ピンに並列してプルアップまたはプルダウン抵抗を接続することが通常必要です。 プルアップ抵抗を直接接続するのではなく、コード内でピンモードを ``INPUT_PULLUP`` に設定することもできます。例: ``pinMode(pin,INPUT_PULLUP)`` 。この場合、ピンはソフトウェア経由でAtmegaの内蔵プルアップ抵抗にアクセスし、プルアップ抵抗を接続するのと同じ効果が得られます。 2. Pin13について。 R3ボード上のすべてのデジタルピン(1-13)は ``digitalRead()`` として使用できます。 ただし、デジタルピン13は他のデジタルピンよりもデジタル入力として使用するのが難しいです。 これは、LEDと抵抗が接続されていて、ほとんどのボードにはんだ付けされているためです。 内蔵の20kプルアップ抵抗を有効にすると、オンボードのLEDと系列抵抗が電圧レベルを低くするため、期待される5Vの代わりに約1.7Vになります。これは、常にLOWを返すことを意味します。もしピン13をデジタル入力として使用する必要がある場合は、 ``pinMode()`` をINPUTに設定し、外部のプルダウン抵抗を使用してください。 3. アナログピン。 デジタルピンが不足している場合、アナログピン(A0-A5)もデジタルピンとして使用できます。 ``pinMode(pin,mode)`` でINPUTに設定する必要があります。 **関連コンポーネント** 以下は関連コンポーネントです。クリックして使用方法を学ぶことができます。 .. toctree:: :maxdepth: 2 ar_serial_monitor ar_button ar_reed ar_detect_the_obstacle ar_detect_the_line