押したらボタン、光るようにする…?
こんにちは、インターン生の岡島と申します。
皆さん、音ゲーは好きですか?
よく遊びますか??
作ってみたくないですか???
ゆるーく電子工作未経験の人がコントローラーを作れるようになることを目的として、
電子工作初心者が書いていきます。
前回は、スイッチを使ってLEDを点灯させました。
今回は、複数のボタンを繋げ、押されたら光らせてみましょう!
それでは、早速回路を組み立てましょう!
必要なものはこちら↓
・Arduino Uno本体
・LED
・照光式押しボタン薄型60φ正方形(【OBSA-60UK】)
・LHS-H(OBSA-LHS1F-LN用のハーネス)
・ジャンプワイヤー(オス・オス)
・ブレッドボード
・抵抗
・USB-Type B
まず、2つのボタンを繋げます。
照光式押しボタン薄型60φ正方形におすすめのスイッチは【OBSA-LHS1F-LN】です。(標準で付いてる)
OBSA-LHS1F-LNは上部にLEDを付けられます。
これにより、容易にボタンを光らせることが可能です。
OBSA-LHS1F-LNのLEDを改造します。
OBSA-LHS1F-LNについているLEDは12Vです。
Arduino Unoで扱える電圧ではないので5VのLEDに差し替える改造をします。
改造手順
1,OBSA-LHS1F-LNの先端部分のヘッド球を外す
2,LEDの足がヘッド球の下側で折り曲げられているのでまっすぐに伸ばす
3,LEDの部分と支えの部分を分離させる(ペンチでLED部分をつかむとやりやすい)
4,5V以下のLEDに差し替える(+,-注意)
5,先ほど抜いたLEDのように足を折り曲げる(足が長い場合は切ってもいい)
6,OBSA-LHS1F-LNに戻す(+,-注意)
以上
OBSA-LHS1F-LNの側面を見ると、コネクタ接続部分の役割が書いてあります。
上から
・プラス
・マイナス
・NO (スイッチに流す電流の入り口みたいなイメージ)
・COM(スイッチに流す電流の出口みたいなイメージ)
です。
回路は以下のとおりです。
かなり複雑ですが、頑張って回路が出来たらArduino IDEを起動しましょう!
以下のプログラムを書いてみてください
const int SWITCH1=1; // スイッチを繋げたのは1番ピン
const int SWITCH2=0; // スイッチを繋げたのは0番ピン
const int LED1 =3; // LED1を刺すのは3番ピン
const int LED2 =2; // LED2を刺すのは2番ピン
uint8_t keyData[8] = { 0, 0, 0, 0, 0, 0, 0 };
// void setup(){}は、起動時に一回のみ走るプログラムです。
void setup() {
pinMode(SWITCH1,INPUT) ; // SWITCH1の接続ピンをデジタル入力に設定
pinMode(SWITCH2,INPUT) ; // SWITCH2の接続ピンをデジタル入力に設定
pinMode(LED1,OUTPUT) ; // LED1の接続ピンをデジタル出力に設定
pinMode(LED2,OUTPUT) ; // LED2の接続ピンをデジタル出力に設定
Serial.begin(9600); // シリアル通信準備
delay(2000);
}
// void loop(){}は、繰り返し走るプログラムです。
void loop() {
if (digitalRead(SWITCH1) == HIGH) { //スイッチ1の状態を調べる
digitalWrite(LED1 ,HIGH) ; //スイッチ1が押されているならLED1を点灯,シリアル通信で”a”を送信
keyData[2] = 0x04; // ‘a’キー
Serial.write(keyData, 8); // キーの入力を送信(make)
keyData[2] = 0x00;
Serial.write(keyData, 8); // キーの解放を送信(break)
}
else {
digitalWrite(LED1,LOW) ; //スイッチ1が押されていないならLED1を消灯
}
if (digitalRead(SWITCH2) == HIGH) { //スイッチ2の状態を調べる
digitalWrite(LED2 ,HIGH) ; //スイッチ2が押されているならLED2を点灯,シリアル通信で”b”を送信
keyData[2] = 0x05; // ‘b’キー
Serial.write(keyData, 8); // キーの入力を送信(make)
keyData[2] = 0x00;
Serial.write(keyData, 8); // キーの解放を送信(break)
}
else {
digitalWrite(LED2,LOW) ; //スイッチ2が押されていないならLED2を消灯
}
}
キーコードはこちらのサイトがわかりやすいと思います。( http://www.freebsddiary.org/APC/usb_hid_usages.php )
7番の keybordの欄を参考にしてください。
それでは書き込みましょう!
ボタンを押すとボタンのLEDが光りましたか?
シリアルモニターというArduino IDEのツールを開いてください。
ちゃんと通信できていますか?
おめでとうございます。
うまくいかなかった場合は、回路を確認したり、スケッチが正しいかを確認しましょう。
Arduino,PCが破損しても責任は負えません、配線等は各自よく調べたうえで実行しましょう!
第一回 お触り、Arduino IDEのインストール
第二回 LED光らせる?(Lチカに挑戦!)
第三回 スイッチを繋げてみよう!
第四回 押したらボタン、光るようにする…?
最終回 キーボードとしてPCに認識させよう
今回は以上です。
次回、Arduino Unoをキーボードに改造します。
それでは次の記事、キーボードとしてPCに認識させよう でお会いしましょう!
興味を持たれた方はお気軽にお問い合わせください。
インターンシップへの申し込み・お問い合わせ先
