TOP > カテゴリ > ロボット・電子工作・マイコン >

DIPロータリースイッチの使い方 [Arduino]

「0-9」(10種)または「0-9,A-F」(16種)のスイッチが搭載されているDIPロータリースイッチの使い方です。

どの「数字」または「英字」が押されているかは「2進化10進数」または「2進化16進数」で判断します。また、今回のタイプはマイナスドライバーでスイッチを変更できます。

使用部品・材料

総額で約320円です。(Arduino本体の値段を除く)

部品/材料値段備考
ブレッドボード¥270秋月電子の通販コード(P-00315)
DIPロータリー・スイッチ(10ステップ)青 42J02GB¥50秋月電子の通販コード(P-06574)
カーボン抵抗器数円10kΩ(4個)を使用。

配線図

Arduinoで使用するデジタルピンが「1,2,4,8」ではなく「11,2,4,8」なのは後述します。

次は公式データシートより引用(42j.pdf)

※「C」がアノードコモン(アノード共通接続/Anode common)

次はスケッチの実行例です。

スケッチ(プログラム)

現在選択されているスイッチ番号の「2進化10進数」を表示します。左から42J02GBの「1,2,4,8」ピンです。

void setup() {
  Serial.begin(9600);
  pinMode(11,INPUT);
  pinMode(2,INPUT);
  pinMode(4,INPUT);
  pinMode(8,INPUT);
}
 
void loop() {  
  Serial.print(digitalRead(11));
  Serial.print(" ");
  Serial.print(digitalRead(2));
  Serial.print(" ");
  Serial.print(digitalRead(4));
  Serial.print(" ");
  Serial.print(digitalRead(8));
  Serial.println("");  

  delay(300);
}

Arduinoのデジタル0,1ピンは非推奨

今回のスケッチでArduinoのデジタル1ピンを使用すると、digitalRead()関数が常に1になってしまいます。理由はシリアル通信で送信(1ピンはTX)しているからです。また、0ピン(RX)は受信ですがジャンパワイヤーが刺さりっぱなしだと、スケッチを書き込み出来ませんので注意が必要です。

これに気づくのに30分ぐらい時間を費やしてしまいました。42J02GBの不具合?初期不良!?ではありませんのでご注意ください。





関連記事



公開日:2017年07月15日
記事NO:02476