Stacks Image 7099

 
X-Plane コクピットの自作に挑戦!
プルアップとプルダウン
プルアップとプルダウン、これTeensyを扱うにおいて、最初に頭に入れて置きたい重要事項です。
プルアップ抵抗またはプルダウン抵抗は、Teensyの入力にHIGH(5V)かLOW(0V)信号を 確実に伝える為に取り付けます。抵抗がない場合はHIGH/LOWの状態が不安定となり、Teesyが誤動作を起こす元になるので抵抗は必ず付けましょう。

X-Plane10本番.rwsw

5Vからみて最初に抵抗が来て、スイッチ、GNDの順になります。

  • スイッチが押されていない時は、GNDに流れません。抵抗を通して入ってきたTeensyのピン電圧は5Vになります。
  • スイッチが押された時は、GNDと繋がる。従ってTeensyのピンの電圧は0Vになります。




X-Plane10本番.rwsw-1

5Vからみて最初にスイッチが来て、抵抗、GNDの順になります。
これは上と丁度逆の状態になります。

  • スイッチが押されていない時は、GNDと繋がっているので、Teensyのピン電圧は0Vになります。
  • スイッチが押された時は、Teensyのピン電圧は5Vになります。

実際にはLEDを扱う時に、ボタンを押したとき、点灯させるか、離した時、点灯させるかをこれでコントロール出来るようですね。

しかし、下の方法だとこの回路がいらないとか?
Teensyで内蔵プルアップ抵抗をONさせる方法は、pinMode( )関数で行います。
pinMode(1, INPUT_PULLUP) ; と言う感じで記述します。これで上の回路のように設定しなくても直接ピンに接続できるようになります。
下がその回路になります。Teensyのピンから直接スイッチに入っています。その間には抵抗が一切ありません。そのままGNDに繋がっていますね。これGND側でないと動作しません。
ここに詳しく説明されています。すごく分かりやすいので見てみてください。下の画像もそこからおかりしました。

Pasted Graphic


また、X-Planeでスイッチを押したとき、最初だけ反応しない場合があります。2度押すとスイッチが入ります。その後は順調ですが、最初反応しないのでチョット気になる場合があります。これはプルダウンで回路を作成してると思います。これをプルアップにすると問題なく最初からスイッチが入るようになります。
頭がこんがらかってしまいますが、スケッチとの関係もあるのかもしれません。もし、これでもダメなら逆にするとか…… まさに素人考えですね。

※ここに説明記事があります参考になるかも:http://mag.switch-science.com/2013/05/23/input_pullup/

comments powered by Disqus
Contents