説明
digitalWriteやdigitalReadなどのデジタルI/O命令を使用する前に、使用するピンを入力で使うのか、出力で使うのかを設定するために使用する関数です。
入力モードではINPUTまたはINPUT_PULLUPのどちらかを指定することができます。
INPUTを指定した場合、ピンに何も接続されていない場合にdigitalReadで状態を取得した場合はLOWまたはHIGHの不定の状態となり、INPUT_PULLUPを指定した場合は必ずHIGHとなります。
<<digitalPinについてArduinoの公式ページで補足説明文>>
構文
書き方 | pinMode(pin番号,設定値) |
戻り値 | なし |
引数 | pin番号…出力先Arduinoピン番号 設定値…INPUT または OUTPUT または INPUT_PULLUP |
関連関数 | digitalWrite,digitalRead |
プログラム例
//0~13までのピン状態を読み取りシリアルモニターに表示します。 //1はシリアルポートとしてシリアルモニタで利用されますので表示は変わりません void setup() { for(int pin=0;pin<14;pin++){ pinMode(pin,INPUT_PULLUP) ;//INPUT または INPUT_PULLUP に変えてテスト } Serial.begin(9600) ; } void loop() { int dat[14] ; for(int pin=0;pin<14;pin++){ dat[pin]=digitalRead(pin) ; Serial.print(dat[pin]) ; Serial.print("|") ; } Serial.println("") ; delay(500); }
実験
上記のプログラムをArduinoIDEで入力し、Arduino Unoで表示してみました。
PIN(1)はシリアルモニター用に使用しているUSBで利用されているため結果は常に0となっています。
クムクムロボットではINPUTモードはありません
二足歩行プログラミングロボットクムクムロボットでのdigital入力は特に使用していないため、特にINPUTで指定しているピンはありません。
クムクムロボットロボットでは、RGB-LEDに接続されているピンと距離センサー(HC-SR04)でトリガーに使用しているピンをOUTPUTモードで指定して使用します。
注意#
アナログピンに設定されているA0やA1などについてもこの関数を使用しデジタル出力を行うことができます。
ただし、Arduino Nano,Pro MiniなどのA6,A7についてはアナログ入力にしか使用できません。