自作フットプリントにパーツが入った!JLCPCBの基板を組み立て
JLCPCBで発注した基板が届きました。
今回はこの基板にパーツをはんだ付けしていきます。
一番ドキドキしたのは「自作したフットプリントにパーツが入るか?」です。
前回の記事ではフットプリントの自作~発注まで解説しています。
もちろんパーツは無事に入りました!
無事にフットプリントにパーツが入ったので、I/Oチェックボードが完成しましたよ!
- 自作フットプリントにパーツを入れはんだ付けする方法
- I/OチェックボードとArduinoとの組み合わせ試験の方法
発注した基板は、JLCPCBのものです。
基板の紫色が気に入りました!
解説動画
今回の記事はこちらの動画をまとめたものです。
今回作成するI/Oチェックボードとは
フットプリントを自作する方法でお伝えした、このポンチ絵のI/Oチェックボードを作成します。
毎回動作チェックの度にブレッドボードで回路を作るのは大変だと思い、このI/Oチェックボードを作成しました。
パーツのはんだ付け
パーツは背の低いものからはんだ付けしていきましょう。
はんだ付けのコツについてはこちらにまとめています。
パーツ1つ1つのはんだ付けの様子が確認したい方は、動画をご覧ください。
(↓パーツのはんだ付け部分から再生されます。)
とくに気を付けてほしいのはLEDの向きです。
丸が欠けている部分を意識してくださいね!
フットプリント自作のトグルスイッチのはんだ付け
トグルスイッチはフットプリントがなかったので、自作したフットプリントです。
穴の位置や大きさをマニュアル通りに設計しましたが、きちんと入るでしょうか?
\ドキドキ…/
\ぴったり!/
穴のサイズや位置、パーツサイズに合わせた四角もぴったりでした!
金属部分が熱くなる可能性も考えて、手ではなくペンチで押さえてはんだ付けしました。
はんだ付けが終わったら
こて先を綺麗にして、はんだをコーティングしましょう!
Amazonで同じサイズのトグルスイッチの取り扱いがありました。
※まったく同じものがいい人は秋月電子通商にて【2MS1-T1-B4-M2-Q-E】をお探しください。
スペーサーの取り付けで完成
I/Oチェックボードが真っ直ぐ自立するように、最後にスペーサーを取り付けます。
ネジの閉めすぎには気を付けてください。
だいたい止まったかな?の場所でOKですよ。
スペーサーは秋月電子通商にて通販コード【P-01864】で販売があります。
今後も基板作りにチャレンジしたいかはセット買いがおすすめなのでAmazonのこちらがいいですよ!
スペーサーの取り付けが終われば完成です。
紫色の基板、想像以上にいい感じ♡
Arduinoと組み合わせ試験
I/Oチェックボードが完成したら試運転しましょう。
Arduinoと組み合わせて問題なく動作することを確認します。
LEDを光らせる
写真の通りに配線します。
またプログラムは以下のものを書きこみました。
1const char PIN_LED_7 = 9;
2const char PIN_LED_6 = 8;
3const char PIN_LED_5 = 7;
4const char PIN_LED_4 = 6;
5const char PIN_LED_3 = 5;
6const char PIN_LED_2 = 4;
7const char PIN_LED_1 = 3;
8const char PIN_LED_0 = 2;
9
10void setup() {
11 pinMode(PIN_LED_7, OUTPUT);
12 pinMode(PIN_LED_6, OUTPUT);
13 pinMode(PIN_LED_5, OUTPUT);
14 pinMode(PIN_LED_4, OUTPUT);
15 pinMode(PIN_LED_3, OUTPUT);
16 pinMode(PIN_LED_2, OUTPUT);
17 pinMode(PIN_LED_1, OUTPUT);
18 pinMode(PIN_LED_0, OUTPUT);
19}
20
21//整数を渡すとLEDに表示する
22void show8LED(int dec) {
23 digitalWrite(PIN_LED_0, dec & 1);
24 dec = dec >> 1; //1ビット右シフト
25 digitalWrite(PIN_LED_1, dec & 1);
26 dec = dec >> 1; //1ビット右シフト
27 digitalWrite(PIN_LED_2, dec & 1);
28 dec = dec >> 1; //1ビット右シフト
29 digitalWrite(PIN_LED_3, dec & 1);
30 dec = dec >> 1; //1ビット右シフト
31 digitalWrite(PIN_LED_4, dec & 1);
32 dec = dec >> 1; //1ビット右シフト
33 digitalWrite(PIN_LED_5, dec & 1);
34 dec = dec >> 1; //1ビット右シフト
35 digitalWrite(PIN_LED_6, dec & 1);
36 dec = dec >> 1; //1ビット右シフト
37 digitalWrite(PIN_LED_7, dec & 1);
38}
39
40void loop() {
41 int num = 1;
42 for (int i = 0; i <= 8; i++) {
43 show8LED(num - 1);
44 delay(38);
45 num = num *2;
46 }
47 for (int i = 0; i <= 8; i++) {
48 show8LED(num - 1);
49 delay(38);
50 num = num / 2;
51 }
52
53}
電気を消してLEDを光らせると、思った通りに光ってくれました。
LEDが光っている様子はYoutubeで確認できます。
(↑上記リンクはLEDを光らせる部分から再生されます。)
色の並びもセンスいいですよね?!
スイッチの信号を読み取る
写真の通りに配線します。
プログラムは下記のものを書きこみました。
1#define NOTE_C3 131 //ド
2#define NOTE_CS3 139
3#define NOTE_D3 147
4#define NOTE_DS3 156
5#define NOTE_E3 165
6#define NOTE_F3 175
7#define NOTE_FS3 185
8#define NOTE_G3 196
9#define NOTE_GS3 208
10#define NOTE_A3 220
11#define NOTE_AS3 233
12#define NOTE_B3 247
13#define NOTE_C4 262 //ド
14#define NOTE_CS4 277
15#define NOTE_D4 294
16#define NOTE_DS4 311
17#define NOTE_E4 330
18#define NOTE_F4 349
19#define NOTE_FS4 370
20#define NOTE_G4 392392
21
22const char PIN_SW_7 = 9;
23const char PIN_SW_6 = 8;
24const char PIN_SW_5 = 7;
25const char PIN_SW_4 = 6;
26const char PIN_SW_3 = 5;
27const char PIN_SW_2 = 4;
28const char PIN_SW_1 = 3;
29const char PIN_SW_0 = 2;
30
31const int BEAT = 200;
32
33void setup() {
34 pinMode(PIN_SW_7, INPUT);
35 pinMode(PIN_SW_6, INPUT);
36 pinMode(PIN_SW_5, INPUT);
37 pinMode(PIN_SW_4, INPUT);
38 pinMode(PIN_SW_3, INPUT);
39 pinMode(PIN_SW_2, INPUT);
40 pinMode(PIN_SW_1, INPUT);
41 pinMode(PIN_SW_0, INPUT);
42}
43
44void loop() {
45 int num = 1;
46 if (digitalRead(PIN_SW_0) == 0) {
47 tone(12, NOTE_C3, BEAT);
48 delay(BEAT);
49 }
50 if (digitalRead(PIN_SW_1) == 0) {
51 tone(12, NOTE_D3, BEAT);
52 delay(BEAT);
53 }
54 if (digitalRead(PIN_SW_2) == 0) {
55 tone(12, NOTE_E3, BEAT);
56 delay(BEAT);
57 }
58 if (digitalRead(PIN_SW_3) == 0) {
59 tone(12, NOTE_F3, BEAT);
60 delay(BEAT);
61 }
62 if (digitalRead(PIN_SW_4) == 0) {
63 tone(12, NOTE_G3, BEAT);
64 delay(BEAT);
65 }
66 if (digitalRead(PIN_SW_5) == 0) {
67 tone(12, NOTE_A3, BEAT);
68 delay(BEAT);
69 }
70 if (digitalRead(PIN_SW_6) == 0) {
71 tone(12, NOTE_B3, BEAT);
72 delay(BEAT);
73 }
74 if (digitalRead(PIN_SW_7) == 0) {
75 tone(12, NOTE_C4, BEAT);
76 delay(BEAT);
77 }
78}
実際に動きを確認している様子はYoutubeで確認できます。
(↑上記リンクはスイッチの信号を読み取るためにスピーカーを鳴らしてる部分から再生されます。)
スイッチは最初は1つずつON/OFFしていきます。
SW1:トグルスイッチ
SW2:トグルスイッチ
SW3:プッシュスイッチ
SW4:プッシュスイッチ
SW5:ディップスイッチ(1~4を順に)
の順番です。
まずは1つずつON/OFFして
信号を読み取れない、
つまり音が鳴らないものがないか確認しましょう。
このプログラムはすべてONするとドレミファソラシドの音階が繰り返される仕掛けです。
1つずつON/OFFして問題がなければ、次はすべてONしてみましょう。
おもしろーい!
変化するアナログ電圧値を読み取る
写真の通りに配線します。
まずはI/OチェックボードのA1に、ArduinoのA0(ゼロ)を繋げます。
シリアルプロッタを使って確認している様子はYoutubeで閲覧できます。
(↑上記リンクはシリアルプロッタで電圧を確認している部分から再生されます。)
シリアルプロッタの使い方を確認したい方は測距センサの使い方のYoutubeで閲覧可能です。
(↑上記リンクはシリアルプロッタの使い方部分から再生されます。)
ボリュームを回して、シリアルプロッタで電圧変化を確認しました。
一番左に絞った時に電圧が0、右に回していくにつれ電圧が上昇していく…というほうが分かりやすかったかな?と反省点もあります。
ものづくりに失敗は付き物!
次のバージョンを作るときに修正します。
JLCPCBで発注した基板は最高
今回もJLCPCBで基板を発注しました。
このコンセプトで、プリント基板だけでなく3Dプリンティングもされています。
実際発注してみた結果は以下の通りです。
・発注から7日で届いた
・基板自体は5枚で2$
(別途送料がかかります。)
・バッチリ動く
・発注も支払いも簡単
発注や支払いの詳細についてはこの記事に書いています。
前回と違って、今回は厚さ1.2mmのものを作成してみました。
小さいサイズであればこの厚みで強度も問題なさそうと感じました。
まとめ
今回は自作したフットプリントがパーツにぴったりだった話など、下記について解説しました。
- 自作フットプリントにパーツを入れはんだ付けする方法
- I/OチェックボードとArduinoとの組み合わせ試験の方法
I/Oチェックボード欲しくなった!
もしそんな人がいれば、Youtubeのコメント欄に書いていただけると嬉しいです。
それなりに数が集まれば、
お届けする方法を考えようかと思っています!
紫色の基板、とても素敵で気に入っています!
自作したフットプリントもパーツと合って大満足です!
前回のプリント基板ではミスをしてしまいました。
ものづくりにミスは付き物ですが、他人のミスから学ぶのもまた大事なことです。
私のミスと同じような失敗をしないように、この記事から学んでください。
ものづくりって面白い!
最後まで読んでいただき、ありがとうございました!
以上、CHAでした!