Raspberry Pi Pico W で温度計付きデジタル時計を製作する①
はじめに
知人にLEDをたくさんもらったので何かに活用したいと思っていたところ、Raspberry Pi Pico Wを入手する機会がありました。ちょうど温度計と時計を作ろうと (1年くらい前から) 思っていたので、Raspberry Pi Pico W を使って温度計付きのデジタル時計を製作しました。
Raspberry Pi Pico W は、1000円台で購入できるマイコンで、OSは搭載しないながらもWi-Fi・Bluetooth機能が使用できるので、この手の電子工作には最適だと思います。
本記事では、主にハードウェアの製作の解説をしていきます。プログラミングに関しては「Raspberry Pi Pico W で温度計付きデジタル時計を製作する②」の方に投稿します。
機能
搭載する機能は以下の3つ
- 室温表示機能
- 時計表示機能
- ストップウォッチ機能
時間計測系の機能に関しては、特に難しいことはせずに普通に実装しています。室温表示機能はADコンバータが必要なので、Raspberry Pi Pico W 以外のマイコンを使用するときには注意が必要です。これらの機能はプッシュスイッチで切り替えられるようにしました。
使用部品
- 7セグメントLEDを駆動するためには、LEDドライバが必要になります。もちろんGPIOから直接配線してもよいのですが、それはそれで大変ことになるのでパス。
- 今回は秋月で1個110円のTM1637を使用しました。これを選んだ理由は、単純に安いこと、
プログラミング編でかなり苦戦する駆動用ライブラリが豊富なことです。
- 7セグLEDは手持ちのLEDが大量に余っていたのであえて自作してみました。7セグLED自作のメリットは文字版のデザインを好きに決められること、大型化できることくらいでしょう。しかし、配線が面倒なので普通に既製品を購入した方がよいと思います。その場合は、アノードコモンの7セグLEDを選ぶ必要があります。
- 下の表に使用した部品は以下の通り。
名前 | 規格 | 個数 |
---|---|---|
Raspberry Pi Pico W | 完成品ならピンヘッダ不要 | 1 |
ピンヘッダ | 1×40pin 2.54mmピッチ | 1 |
ピンソケット | 1×20pin 2.54mmピッチ | 1 |
ICソケット | DIP 20pin | 1 |
7セグLEDドライバーIC | TM1637 | 1 |
LED | 3mm 黄色(色、大きさは自由) | 59 |
トランジスタ | 2SC1815(または同等品) | 2 |
温度センサ | LM19CIZ | 1 |
電解コンデンサ | 100μF 16V | 1 |
セラミックコンデンサ | 0.1μF(104) | 1 |
100pF(101) | 2 | |
1/4W抵抗 | 10kΩ | 2 |
1kΩ | 2 | |
300Ω | 2 | |
トグルスイッチ | on-off 1回路 | 1 |
プッシュスイッチ | モーメンタリならどれでも可 | 2 |
ユニバーサル基板 | C基板 | 1 |
B基板 | 1 | |
木製小物入れ | ダイソーで購入(写真1) | 1 |
コネクター付ケーブル | (写真2)を切って使う | 1 |
USBケーブル | 電源供給用(不要品で可) | 1 |
PC<-->Raspberry Pi 通信用 A-microB | 1 | |
ポリウレタン銅線 | 3m | 1 |
ネジ・はんだ | 適宜 |
写真1 | 写真2 |
回路
一応画像で示しましたが、明らかに解像度が低い...GitHubでプログラムと一緒にpdfを公開しています。
全体の構成図
配線のつなぎ方
Raspberry Pi と各パーツの結線は以下の通り。
ピン番号 | 接続先 |
---|---|
1(GPIO 0) | コロン「:」LED駆動用トランジスタのベース |
2(GPIO 1) | 小数点「.」LED駆動用トランジスタのベース |
3(GND) | グラウンド |
4(GPIO 2) | TM1637のCLK(pin18) |
5(GPIO 3) | TM1637のDIO(pin17) |
19(GPIO 14) | プッシュスイッチ1(内部プルアップ) |
20(GPIO 15) | プッシュスイッチ2(内部プルアップ) |
31(ADC 0) | 温度センサLM19 VOUT(アナログ電圧出力) |
36 (3V3) | 3.3V(「:」と「.」のアノードとLM19のVCC) |
38 (GND) | ACアダプタのGND |
39 (VSYS) | TM1637に5V供給 |
40 (VBUS) | ACアダプタから5V入力 |
製作
ブレッドボードで試作
基板にはんだづけする前にブレッドボードで動作テストを行いました。写真ではどこが繋がっているのか分かりづらいのでイラストを作成しました。
7セグLEDモジュールの製作
TM1637のデータシートを参照してこんな感じでレイアウトしました。市販品の7セグLEDを使用するときは、それぞれ対応する端子に配線しましょう。裏側の配線写真はごちゃごちゃしているので見せられないよ! 7セグLEDはカソードがそれぞれa, b, c, d, e, f, g のセグメントに対応していて、アノードが1~4桁目のコモンに対応しています。さらに今回は、コロン:と小数点.を独立制御しているので、そのための配線も引き出しています。よって、カソード×7、アノード×4、コロン・小数点駆動用×3の14本の配線が必要です。
基板に実装する
基板の部品配置は以下の通り。
ここで、ICソケットは写真のように⭕しるしの端子(TM1637の9, 10, 11, 19, 20番)を使用しないので、ニッパーでソケットの足を切ってしまいます。3ピンのソケットには温度センサLM19を刺します。14ピンのソケットには7セグLEDモジュールに接続します。
動作確認
プッシュスイッチは次のように接続しました。
GPIO 14 --> プッシュスイッチ --> GND
GPIO 15 --> プッシュスイッチ --> GND
回路図のように配線をすると下の写真のようになります。
ケースに取り付ける
電源供給用USBケーブル、スイッチ、TM1637が載った基板、Raspberry Pi Pico W を木箱に取り付けます。
そのあとに、7セグLEDモジュールを取り付けます。最後に蓋を閉めれば取り付け完了!
続きは...
「Raspberry Pi Pico W で温度計付きデジタル時計を製作する②」の記事では、室温表示機能・時計表示機能・ストップウォッチ機能の実装プログラムの説明を行います。
Discussion