Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2604

Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2604

Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2632
スポンサーリンク

digitalRead

スポンサーリンク
スポンサーリンク

説明

デジタルI/Oの現在の状態を検査します

書き方 状態値=digitalRead(pin番号)
戻り値 HIGH または LOW
引数 調べたいI/OのArduinoピン番号

プログラム例

//7番ピンの状態を調べてシリアルモニターに表示します
int inPin = 7;    // pushbutton connected to digital pin 7
int val = 0;      // variable to store the read value

void setup() {
  pinMode(inPin, INPUT);    // sets the digital pin 7 as input
  Serial.begin()
}

void loop() {
  val = digitalRead(inPin);   // read the input pin
  Serial.println(val) ;
}

実験

上記のプログラムをArduinoIDEで入力し、Arduino Unoに転送し実験してみましょう。
Unoの7番にはジャンパワイヤーを1本させいて置き、もう片方は、対面の5VとGNDに差し替えてシリアルモニターの出力を確認します。
1(HIGH)と0(LOW)に変化することが確認できるはずです。
ちなみに、5Vではなく3.3Vにさしても、1(HIGH)となるはずです。
これは、UNOに使用されているCPU(ATMEGA328P)が、3.3VでもHIGHと認識するような仕様だからです。(これはCPUの仕様で、CPUによって数値は異なります)

プログラム画面(シリアルモニター中)

ボードを繋ぎ変えて実験

クムクムロボットで使ってみる

弊社の二足歩行プログラミングロボットクムクムロボットでこの関数を使って実験してみます。
<<距離センサーのポートにスイッチをつけて入力検知>>

注意

ピンに何も接続されていない状態の場合、戻り値は不定(HIGHまたはLOW)となります。
アナログピンに設定されているA0やA1などについてもこの関数を使用することができます。
ただし、Arduino Nano,Pro MiniなどのA6,A7についてはアナログ入力にしか使用できません。

 

タイトルとURLをコピーしました