注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
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
デジタルリードの例
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をボタンの値に設定する
}
注意と警告
プルアップ&プルダウン。
digitalRead()はピンがレベル信号を取得していない場合、ランダムな値を生成する可能性があります。入力ピンを既知の状態に指示することで、プロジェクトの信頼性を高めることができます。 ボタンなどの入力部品を使用する場合、デジタル入力ピンに並列にプルアップまたはプルダウン抵抗を接続することが多いです。プルアップ抵抗を接続するのとは別に、コード内でピンモードを
INPUT_PULLUPに設定することもできます。たとえば、pinMode(pin,INPUT_PULLUP)。この場合、ピンはソフトウェア経由でAtmegaの内蔵プルアップ抵抗にアクセスし、プルアップ抵抗を接続するのと同じ効果が得られます。ピン13について。
R4ボード上のすべてのデジタルピン(1-13)は
digitalRead()として使用できます。 しかし、デジタルピン13をデジタル入力として使用するのは、他のデジタルピンよりも難しいです。 これは、LEDと抵抗が接続されており、ほとんどのボードにはんだ付けされているからです。 内蔵の20kプルアップ抵抗を有効にすると、期待される5Vの代わりに1.7V前後になります。これは、オンボードのLEDと直列抵抗が電圧レベルを低くするためです。ピン13をデジタル入力として使用する必要がある場合は、そのpinMode()をINPUTに設定し、外部のプルダウン抵抗を使用してください。アナログピン。
デジタルピンが足りない場合、アナログピン(A0-A5)もデジタルピンとして使用できます。
pinMode(pin,mode)でINPUTに設定する必要があります。
関連コンポーネント
以下は関連するコンポーネントです。クリックして使用方法を学ぶことができます。