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の不具合?初期不良!?ではありませんのでご注意ください。
掲示板
ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。