2020年5月29日金曜日

Arduino互換ボードと買い物メモ

Arduino UNO欲しいけど高いなあ、と思っていたら、秋月電子でこのようなキットを見つけました。



ATmega168/328 マイコンボードキット | 秋月電子通商

1キットで2100円と、純正品のArduino UNOより1200円ほど安いです。
しかし、組み立てが必要であり、失敗するリスクもあります。ブートローダーの書き込みも必要で、そのためにはメス-メスのジャンパーも必要です。
買ってすぐ使えるArduinoの手軽さを考えると、差額の1200円の価値はあると思います。
しかしこれ、ちょっと気になるなあ。最近いいはんだこてを買ったことだし、はんだ付けの練習も兼ねてこの基板を組んでみたいです。

ちなみに。ブートローダーについては以下の記事が詳しいです。
Arduinoのブートローダって何?(1) - しなぷすのハード製作記

さて。これを買ってやることは、キャラクタ液晶の制御です。
元々キャラクタ液晶で遊んでみたくて、そのためにマイコンを買おうと思ったのが今回のきっかけです。
液晶本体やブレッドボードなどはすでに手元にあるので...
・Arduinoもどきボード
・チップ抵抗 22Ω (バックライト用。サイズ測らないとなあ)
・半固定抵抗 10kΩ (コントラスト調整用VR)
・半固定抵抗調整用ドライバー
・両メス端子 ジャンパー線
・USB Type-C to Mini-B ケーブル
・工具類(追加でニッパー、ラジオペンチなどを購入予定)
この辺があればいいでしょう。
手元になかったテスター類は実家から持って帰ってくる予定です。

キャラクタ液晶を使って何をしたいかですが、まあ色々です。とりあえず実験するのが今の目的で、何をするかは後から考えます。

今のところ構想しているのは、再生中の音楽のタイトルやアーティスト名をキャラクタ液晶やグラフィック液晶で表示したら便利そうかなーってところ。自分はよくSpotifyで音楽を聴くのですが、「この曲だれのだろー?」って気になることがよくあります。そういうときのためにに曲名とかアーティスト名をいつでも確認できるディスプレイがあると便利ですし、ついでに「お気に入り」に登録するボタンもつけておけば便利かなと思っています。
こういうことはArduinoでやるのは不向きかもしれないので、Raspberry Piでやりたいなと思います。いわゆる「ラズパイオーディオ」の機能の一部として実装してみたいですね。ラズパイでSpotifyの音楽流せるのかなあ。

あとは、これもArduinoでできるかは微妙ですが、MIDIのFM音源装置をつくってみたいなって思ってます。USBケーブルなどでPCとつなぎ、PCで再生したMIDI譜面の音をジェネレートする装置です。細かいことはまだ考えていないですが、とりあえず表示装置としてキャラクタ液晶つけたらかっこよくない?くらいの発想です。

2020年5月22日金曜日

1602キャラクタ液晶のバックライト抵抗メモ


サンライクのSC1602BSLBです。
秋月とかでよく売られている、16文字2行で、バックライトが黄緑色で、文字が黒いタイプの液晶です。Arduinoなどに繋ぐことで、数字列やテキストを表示できます。
僕はカホパーツで1000円ちょいで買いました。

この液晶、バックライトのための電流制限抵抗が実装されていません。そのかわり、リード部品の100Ω抵抗が2本付属してきます。「標準だと100Ωを1本繋げばいいけど、明るくしたいなら2本並列に繋いでね」とのこと。ですがこれが罠なんです。説明書通りに100Ω抵抗を繋いでも暗い暗い。合成で50Ωになるようにつなぐと確かに明るくなりますが、まだ十分な明るさではなさそうです。

ということで、バックライトから直接リード線を生やして、ブレッドボードに繋ぎ、10Ωの抵抗を何本か直列に繋いで検証しました。
なお今回使用した電源は、パナソニック製エネループ(公称1.2V)を4本直列にしたものです。テスターが手元になかったため、電源電圧は測定していません。

うん、20Ωくらいがちょうどいいですねえ。明るい場所でもしっかり光って見えます。


暗い場所だとこんな感じ。かなり明るいので、主に暗所で使うという場合はもう少し抵抗値を大きくしてあげてもいいと思います。
10Ωも試しました。気のせいかもしれませんが、さすがに10Ωになると液晶の裏面がほんのり温かくなっている気がしました。そんなに明るくする必要はないということで、10Ωでの常用はやめておきます。

あとは基板裏面のパターンに、20Ω程度のチップ抵抗をハンダ付けすればOKです。市販で手に入りやすいのは22Ωでしょうか。
今回は電流制限抵抗の値を決めるのが目的だったので、チップ抵抗は買っていません。また今度、Arduinoを購入したときにでも、液晶にチップ抵抗をはんだ付けし、最終的に使える状態まで持っていくつもりです。

なおこのバックライトなんですが、やっぱりどうしても、利用するシーンによって必要な明るさは変わってしまいます。周囲の明るさがめまぐるしく変わるといった用途では、バックライトの明るさを後々変更したくなる時もあると思います。
こういった場合は、バックライト端子に直接ピンを立てて、可変抵抗に繋いだり、10~20Ωくらいの抵抗を直列に挟んでマイコンに繋ぎ、PWMで明るさを調整しても良いでしょう。LEDの明るさをPWMで変更するのはマイコン工作では定番だと思います。
今回はそこまでやりませんが、機会があったらやってみたいですね。

・追記: 消費電力計算
今回使用した、SC1602BSLBのバックライトですが...
Vcc=5V
Vf=4.2V
R=20Ω

この条件では、バックライト点灯回路に流れる電流は、次のようになります。 
If=40mA

消費電力としては、LEDで168mW、抵抗含めて200mW消費する計算です。

・さらに追記: チップ抵抗について
この液晶のバックライトを点灯するには、2種類の方法があります。一つはバックライト端子にピンヘッダを立てる方法で、この方法では液晶表示とは無関係にバックライトを個別制御できます。そして本項目で触れるのが、液晶本体とバックライトで電源を共用する方法です。
液晶裏面のR9のランドに電流制限のためのチップ抵抗を取り付け、さらにジャンパーランドJ3をはんだでショートさせることで、液晶本体のVddとVssの端子からバックライトに電源を分岐させることができます。この場合、Vdd, Vssのオン・オフと連動してバックライトが点灯するため、「液晶を表示したままバックライトだけを消す」といった制御ができなくなります。

この液晶に付属するマニュアルには、バックライト抵抗R9のサイズが記載されていません。アマチュアの方の多くはリード部品の抵抗で代用されているようです。
自分は見た目を綺麗に仕上げたかったのでチップ抵抗を使いました。寸法をちゃんと測ったわけではないですが、試しに2012サイズの抵抗を取り付けたところ丁度いい大きさでした。

ただし、はんだ付けは難しかったです。米粒よりも小さい部品なので位置決めが困難ですし、適切なこて先やピンセット、フラックスなどの道具や材料をそろえる必要もあると感じました。今回はネット上で多く紹介されている「糸はんだでランドに予備はんだをし、部品を片側にはんだ付けし、もう片方にもはんだ付けをする」といった手順を試しましたが、はんだ量の調整が困難で、フラックスもどんどん揮発するためはんだが表面張力を失ってしまいました。結果として到底お見せできない仕上がりに...。
今後チップ部品を取り付けることが多くなるかもしれないので、道具をきちんとそろえたうえで練習したい所存です。

ATmega328P-PUを最小構成で動かす

最近、空き時間にAVRマイコンで遊んでいるのですが、Arduinoボードのように周辺機器や回路を満載せず、最小構成で動かしたいと感じることがあります。 Arduinoボードには、USB-シリアル変換インターフェース、5Vおよび3.3V定電圧電源、水晶発振子やセラミック発振子、電源...