2016-09-06 16 views
0

私はArduino Unoマイクロコントローラを使った初心者の練習をしています。 (これは私が提供しているものなので、一般的なものです)Arduinoとエレクトロニクス初心者初心者

モーメンタリスイッチの状態に応じて1と0をシリアル出力に交互に送信するプログラムがあります。ピン2をスイッチの入力に設定します。しかし。配線中に、私は誤ってジャンパーケーブルを最初にピン3に差し込み、ボタンが押されたときにほとんど1を送信したことがわかりました。いくつかの0、まだほとんど1です。

当初、私はちょうどボードが少しばかげていたかもしれないと思っていましたが、ちょっと実験したいと思っていました。ピン2の代わりにピン3を差し込むと、ボタンが押されたときにも1がかなり安定して送られましたが、ピン1の場合はピン2のときよりも一貫して流れませんでした。だから私は4番ピンを試しましたが、そのピンポンは全く応答がありません。

私はプログラムの読みがより遠く離れていくにつれて、私が入力として機能するようにプログラムしたピンからケーブルを移動させるほど反応が少ないと思われますか?なぜこのようなことが起こるのか誰にでも理解できますか?

私がエレクトロニクスを初めて使ったのは明らかです。次のように:)

私はボードにアップロード持っているプログラムは次のとおりです。

// digital pin 2 has a pushbutton attached to it. Give it a name: 
int pushButton = 2; 
// the setup routine runs once when you press reset: 
void setup() { 
    // initialize serial communication at 9600 bits per second: 
    Serial.begin(9600); 
    // make the pushbutton's pin an input: 
    pinMode(pushButton, INPUT); 
} 
// the loop routine runs over and over again forever: 
void loop() { 
    // read the input pin: 
    int buttonState = digitalRead(pushButton); 
    // print out the state of the button: 
    Serial.println(buttonState); 
    delay(1); // delay in between reads for stability 
} 

答えて

2

フローティングピンは、ノイズの影響を受けやすいです。実際に何もピン2に接続していない場合は、ノイズが読み取られます。ピン2(ボード上の接続部)に接続されているワイヤは、アンテナのように動作し、ノイズを拾います。このような状況では、物理的に接続しているピン番号を常に使用する必要があります。

+0

+1フローティングピンのものに似ているように聞こえます。フローティングピンは、ランダムなメモリを指すのと同じようなものです。結果はしばしば未定義です。 –

+0

あなたが割り当てた値を制御していないので、かなりです。 – JMA

+1

優れています。これは明らかになぜ指紋でボードの側面に触れるのが出力にも影響するように思われる理由を説明しています。ありがとう! – Reb