👍

Arduinoで早押しボタンを作る 【その11 完成】

に公開
31

できた!

オプション機能の追加の余地はありますが、早押しボタンとしての基本的な要件は満たしたと思うのでまとめ記事を書きたいと思います

動作確認

https://youtu.be/z8a7JqgAQxM
最低限利用可能な早押しボタンを作ることができました
ボタンは4個しか用意していませんが、最大8個まで接続可能です

外観写真

本体外観



ボタン外観



作り方まとめ

手軽に作りたい人はこちら

作る過程はどうでもよいのでできるだけ安く、簡単に作りたい人向けにまとめました
https://zenn.dev/eph/articles/e914f50fdef502

中身を理解して作りたい人はこちら

各工程について細かく書いている記事はこちらからどうぞ

  • その1 必要な部品や工具を準備する
  • その2 ボタンが押されたことを検知するプログラムを作る
  • その3 その2の続き
  • その4 早押しボタン側の筐体を作る
  • その5 早押しボタンをランプを高輝度で点灯させる回路を作る
  • その6 プログラムを整理する
  • その7 音声を再生するプログラムを作る
  • その8 たくさんのLEDの点灯を制御する
  • その9 本体側の筐体を作る
  • その10 LEDを点滅させる

Discussion

しゅーしゅー

「しょ」さんの記事を見て、実際に早押しボタンを作ろうとしている学生です。
このページである「Arduinoで早押しボタンを作る 【その11 完成】」の中にある
「「作り方まとめ」の手軽に作りたい人はこちら」
作る過程はどうでもよいのでできるだけ安く、簡単に作りたい人向けにまとめました
の下にあるリンクを見たいのですが、リンクを押しても
「404」このページはすでに削除されているか、URLが間違っている可能性があります。と出てきてしまってみることができません。見ることができるように更新していただけるととてもありがたいです。
よろしくお願いします。

しょしょ

コメントありがとうございます。
記事内のリンクは以下のまとめ記事へのリンクでした
https://zenn.dev/eph/articles/e914f50fdef502
今読むと拙い記事ですのでこれを見て実際に作るのは結構難易度が高いかもしれません。分からない所があれば気軽にコメントしてください
ぜひ早押しボタン作り頑張ってください!

しゅーしゅー

返信ありがとうございます!
しょ さんの記事を参考にしてボタンを作り終えることができました。
次に判別機(親機?)を作ろうと思っているのですが、まとめのページにある図を見てそのままブレッドボードで作ろうと思っています。
わからないことがとても多いと思うのでコメントでお聞きしたいと思っています。よろしくお願いします。

しょしょ

コンデンサを使った覚えがないのですがどこの部分でしょうか?

しゅーしゅー

勘違いをしていましたすみません 整流ダイオードと間違えていました。整流ダイオードの大きさはどれを購入するとよいですか?
また親機の大部分を写真の通りに作ることができたのですが、arduinoにプログラムを書き込むときに毎回エラーが出てしまって書き込めません。
また音声出力接続端子はどのようにつなげばよいのですか?
回答よろしくお願いします

しょしょ

整流用ダイオードはなんでもいいです
https://akizukidenshi.com/catalog/g/g100934/
https://akizukidenshi.com/catalog/g/g100941/
電源を繋ぎ間違えたときなどに壊れないようにという意図なので、省略も可能です

Arduinoのエラーについて、
どのようなエラーか分からないので、エラー文をコピーしてまらえますか?
また、単純なプログラムでは動いていますか?
こちらの記事などを参考に試してみるのも有効かと思います。
https://zenn.dev/eph/articles/647babc0aaf607

音声出力端子について、
L(Tip)、R(Ring)がArduinoからの信号線に
GND(Sleeve)がグランド線につながるように接続します
参考:
https://denshi-kousaku.nazotoki-k.com/kiso/e_jack.htm
ジャックはものによって配置が違うので調べる必要がありますが、
たとえばこちらであれば1本だけ長い端子がGND(Sleeve)です。
https://akizukidenshi.com/catalog/g/g106257/

しゅーしゅー

はやい返信にとても感謝しています
①とりあえず整流ダイオードは省略します
②エラー分の赤い字のところをコピペします
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x0e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x0e
Failed uploading: uploading error: exit status 1
③サイトを見て学び、頑張ってみます

しょしょ

書き込みをしようとしてArduinoのボードを見つけられていないエラーのような気がします。先ほど貼った「Lチカ」の記事内のボードの選択や、COMポートの選択の辺りをチェックしてみてると良いと思います

しゅーしゅー

わかりました。ありがとうございます。
もう1つ質問なのですが、LEDは絶対に必要でしょうか

しゅーしゅー

何回かやってみたらプログラムを書き込むことに成功しました
しかし全く動きません arduinoに電源がいってないのかもしれません
どのようにしてarduinoに電源を供給するのですか

しゅーしゅー

現状の写真を送ります。間違っているかしょがあればしてきください

しょしょ

お写真ありがとうございます。完全に想定外でした
今の状態だとおそらくPCとは接続できていないです。
こちらの記事にあるようにPCとの接続にはCH340という別のボードを使っての接続が必要です。
いま一度、通して読んでみてもらえると良いと思います。

また、ボードの足をはんだ付けしていないように見えます
この状態だとブレッドボードとの間で上手く接続できていないので正常に動作しないと思います
全ての足をはんだ付けした状態でブレッドボードに差し込むことになります

電源についてですが、PCと接続している間はPCから給電されます
PCを接続しない場合(最終的に箱などに入れる場合)は左端のACアダプタから給電することを想定しています。整流ダイオードは省略可能ですがダイオードも導線と同じとみなして、ボードのVINまで図の赤線を伸ばしてあげる必要があります(ACアダプタ端子側も差し込むところが一つ左にずれているので、+と書いてある側の2つのどちらかに刺してください)

ここ以降は↑が解決してからですが、

  • 音声出力端子の接続はたぶん逆です。短い2つを1つにしてArduino側に、長いひとつがGNDにつながります
  • 本体LEDについて、省略可能です。電源が入っているか等を確認するためのものなので必要なければ
しゅーしゅー

返信ありがとうございます
1.CH340はこれですよね
2.ボードの足とはこれのことですか
3.vinまで伸ばしました
 ACアダプタも一マスずらしました
4.LEDは今のところ省きます

しょしょ

脚はそれです
ブレッドボードを使う場合は長い方は両方下向きに、短い方はCH340を接続できるように上向きにはんだ付けすることになります

しゅーしゅー

指摘されたところを直したつもりなのですがどうでしょうか
arduinoは「書き込みが完了しました」と出たので、CH340を外した状態です。



しょしょ

配線はひと目合っているように見えます。
たぶん音声出力端子は逆ですが
CH340を接続する端子ははんだ付けしていないのですか?だとすると本当に正常に書き込めているかは怪しいと思います。
ステータス表示用のLEDを省略されるということなので、正常動作しているかはPCに接続したままログを見るしかないと思います。そういう意味でも安定して接続状態を維持する必要があると思います

しょしょ

L字の足があったんでしょうか?目視ではちゃんと接続できているか判断できないので、
プログラムの書き込みができているかを、Lチカのような簡単なプログラムで確認するのをおすすめします

しゅーしゅー

音声の端子を反対側で繋げたら音が出ました
また、子機の赤色のLEDが光りません
正解不正解のボタンを押したらすぐにボタンが押された感じになってしまいます
どうすればいいですか

しょしょ

症状はボタンと押すと音は流れるが、LEDが付かないということでしょうか?
74HC周りの配線、LEDの極性、プログラム内でLEDとボタンの対応が合っているかが確認すべきポイントだと思います

しょしょ

ボタンを接続しているジャックの74HC~に繋がっている線を抜いて5Vに刺したら光りますか?

しゅーしゅー

5.0vと書かれた2つのやつのどちらかの上に刺せば良いのですか?

しょしょ

では、LEDが壊れているか、向きが間違っているか、配線が上手くいってないです