😺
Arduinoの電圧入力を検知する方法
ArudinoのdigitalReadで電圧を検知する場合はINPUT_PULLUPを利用することで良い感じに検知することが可能です。
まず事前にvoid setup関数内でスイッチとするピンのモードpinModeをINPUT_PULLUPにしておきます。
void setup() {
pinMode(Switch, INPUT_PULLUP);
}
その後に適当な関数を用意して、電圧を検知した際の処理を記述していきます。
Delay(今回はdelayMicroseconds関数を利用)に関しては適当に指定して問題ありません。手動の際は連続した入力検知を避けるために0.5~1秒程度を指定しておくと良いでしょう。
void InputVolt_Check() {
//電圧検知
if (digitalRead(Switch) == LOW) {
//入力を検知した際の処理
delayMicroseconds(1);//手動スイッチの場合を加味して適当なDelayを挟む。
}
while (digitalRead(Switch) == LOW) {
if (digitalRead(Switch) == HIGH) {
//入力を検知した後の処理
break;
}
}
//検知後になにか処理したい場合はここに記述
}
このdigitalReadでは微弱な電圧の入力を検知できれば良いので、入力を検知するピンの手前に適当な抵抗(10Ω~)を挟むことでArudino自体を保護できます。
Discussion