Aruduino ガーディアン互換機
ガーディアン互換機としてArduino UNO ATmega328PとL293Dで構成しコンパイルしました。
ところがアナログピンに接続したマイクロスイッチがうまく動かず、pinMode関数”pinMode(A0, INPUT);”の引数を、INPUT_PULLUP”pinMode(A0, INPUT_PULLUP);”に変更したらうまく動くようになりました。
これはコンピュータのPINがどこにもつながっていない場合でもONとOFFを決めようした結果、ONとOFFがランダムに出るようになるので、+とーのはっきりした電圧を流すと、ONとOFFがどちらかに決まって正しく動くようになった。ということだと思います。
ということは元のNEOは、別のプルアップ抵抗が搭載されていたのでこうなったと思います。
このような外部のプルアップを用意する理由と利点がわからなかったので、小学生ロボコンのメンターの大学院生の方に聞いてみました。
そうしたらこのURLを教えてくれました。
ここに書いてあることから、内部プルアップが低電力用に最適化されているため、適切な抵抗値が必要になる時に、外部抵抗を使用することがあるということを理解しました。
あとKURIKIT(Scratch)上で関数を作成した場合に、Arduinoのコード生成で実際の関数として生成されるのかどうかなど調べるのが面白いので、今日も頑張ろうと思います。