13.Arduinoで入力を検知(digitalRead)

1.最初からマスター

dijitalWriteやanalogWriteによるポート(ピン)からの出力はおおよそできましたので、いよいよポート(ピン)に入ってくる信号をキャッチする方法にチャレンジします。
入力もArduinoではデジタルです。電気が来ているのか?来ていないのか?
電気が来ている場合はポート(ピン)は5Vか3.3V(HIGH)になり、来ていない場合はLOWになるので、検査したいポートがHIGHなのかLOWなのかを判定すればいいだけです。

とりあえずやってみる

例のごとく乱暴です。
まずはジャンパーワイヤーを1本取り出し、片方をArduinoの5Vのコネクタに差し込んでおきます。
もう片方はブランブランしておきます。

プログラム

とりあえずこのプログラムをIDEにコピペしてUNOで動かします。

このプログラムは、7番ピンを入力にセットして13番ピンを出力にセットしています。
つまり、7番ピンのHIGHかLOWを検知して動くプログラムです。

とにかく動かしてみましょう!

プログラムが動いたら7番を刺す!

プログラムの転送が無事に終わったら、写真のようにブランブランしていたもう片方を7番のコネクタにさしてみます。

みごとLEDが光っています。思惑通りです。

適当な時間たったら抜いてみる

抜いてみましたが….LEDは消えません。
しかし…じっと眺めていてください!そのうちプツっと切れます。

これは、高速にloopプログラムが回っているせいでLOWを検知するまでHIGHを検知した名残があるせいです….(すみません…電気的にはもう少しちゃんと説明できるのですが、とりあえず今日はこのあたりで納得しておいてください)

HIGHになったら音を鳴らしてみる

HIGHになったらピコっと音を鳴らしてみる

 

コメント

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