2021年3月31日水曜日

部品外しのために低融点はんだを作る

昨日のFMラジオモジュールを交換する 前準備として低融点はんだを作ってみました。
以下のサイトの記事を参考させて頂きました。


が50%ずつの半田と、ビスマスを同量混ぜることでダルセ合金というものになるようです。融点は96~98℃とのことなので熱湯で溶ける合金になります。これを外したい部品ピンとランドの周りに載せて元々の半田と混ざることで、溶けている時間が長くなり部品が外しやすくなる、ハズ。

かなり前に作ろうと思って材料は購入してあったのですが、使う当てがなかったのでそのままになっていました。購入したのは、以下の棒はんだとビスマスです。


溶かす容器はダイソーのステンレス製計量カップです。持ち手がついていて便利です。溶かすときに素手では持てません。要注意。

ビスマスの塊を量ったら35gだったので、同量になるように棒はんだを切り出しました。


全体の重量と長さを量って、35gから長さを逆算して金切り鋸で切り出して量ってみたらぴったり35g。

溶かした半田を流し込む型は、アルミ製アングルの切れ端です。両端をアルミホイルを丸めたもので支えています。

コンロに火をつけてもしばらくは溶けませんでしたが、溶け始めるとあっという間にすべて溶けました。太目の針金でよくかき混ぜてから、アルミアングルに流し込みました。予想した程は流れずに太くなってしまいました。アルミアングルも熱しておけば少しは違うかな。

冷めてからアングルから外した様子。簡単に外れました。細かくなってしまったものは、再度溶かしてひとつにしました。

FMラジオ基板の裏側です。緑のFMラジオモジュールの左右のピンにこの低融点金属を溶かして混ぜる予定です。

今日はここまで。実際の作業は明日以降試してみます。さて、うまくいくか。



2021年3月30日火曜日

FMラジオ、組み立てたけど鳴らない(T_T)

部品点数も少なく簡単な回路なので夕食後に作ってみました。楽勝と思っていたら、何と鳴らない。液晶画面は表示されます。サーというノイズだけです。局を切り替えるとノイズが一瞬途切れるので反応はしているようです。以前作ったアマゾンの箱に入れた回路では動いているので、何が悪いのか? モジュールのロット違いでI2Cのタイミングか何か違うのか?


回路図、半田付け不良、ショートも確認したけど問題はなさそう。トホホです。明日以降、違うモジュールに差し替えて確認してみようと思います。10個のモジュールが無造作に袋に入っていたため、壊れている可能性もありそうなので。水晶振動子も付いているし。上手く外せるかが課題です。

なお音声出力用のダイソーの300円スピーカは、かみさんがダイソーに行くというので頼んで買ってきて貰いました。感謝。私は毎日ほぼ引き籠り生活です。

2021年3月29日月曜日

FMラジオモジュールが届いた

昨日、なかなか届かないと書いたFMラジオモジュールRDA5807Mが届きました。1か月強かかりました。以前に比べて中国から荷物が届くのに時間がかかっているように思える。昨年の今頃は新型コロナの影響で航空便が減って物流が滞っていたが、その後解消していた。しかしまた再発? スエズ運河の事故もあったり、グローバルになるとどこがボトルネックになるか分からないですね。

外装はエアキャップ封筒でしたが、中身はこんな感じでビニール袋にまとめて入っていた。大丈夫か?

今日は、週明けで疲れた(いつも?)ので、試作は作業は明日以降に行うつもりです。なお、外出自粛という名の引き籠りでダイソーの300円スピーカもまだ入手できていません。

2021年3月28日日曜日

FMラジオの基板が届いたが、、、

日曜日ですが郵便の配達があり待っていたプリント基板が届きました。配達記録郵便は日曜日でも届けてくれるようです。昨日、ドイツを経由しているようだと書きましたが確かに国際郵便の差出国がドイツになっていました。地球を1周したようです。

しかし、喜んだのも束の間。大きな間違いがありました。

裏面のFMラジオモジュールRDA5807Mを載せる場所の銅箔(GND)が剥き出しで半田メッキされています。RDA5807Mのライブラリを作るときに全体をレジストマスクしてしまった模様です。このままモジュールを載せると半田ブリッジやモジュール裏面との接触が起きそうでダメです。

ということで、手作業でレジストの改修作業を行ってみます。まずはマスキングテープでレジストを塗布するところ以外をマスクします。本当は半田メッキ無しで銅箔の上にレジストしないといけないのですが、こうするしか仕方ありません。

手元にあったサンハヤトのマスキングスプレィを吹き付けようという算段です。このスプレィは、昔プリント基板を自分でエッチングして自作していた時に使ったものなので、10年以上経っていると思う。

最初、ノズルの詰まりがあったがまだ使えました。かなりムラになったけど。

マスキングテープを剥がすとこんな感じです。見た目は悪いけど無事にランドだけ銅箔面が残りました。これで行けるかな? カプトンテープを貼ってもよいかも知れませんが、少し厚くなりますね。

他に間違いがないかすぐに作って試してみたいのですが、Aliexpressで注文したRDA5807Mがまだ届かないのです。トラッキング情報では10日ほど前に原産国(中国)を出発したことになっていますが、日本に入ったという記録はありません。こっちもドイツ経由か!?

2021年3月27日土曜日

CO2センサで遊ぶ(その7,完成、回路図・スケッチ公開)

CO2センサで遊ぶシリーズはひとまず完了です。PIC電子工作ページに「密」の見える化、CO2濃度計 としてまとめ記事をアップしました。回路図、スケッチも公開しています。無保証です。

動画もアップしました。


いままで動画編集はWindows10に付いていたビデオエディターを使っていたのですが、あまりにも簡単なことしかできないのと、先日Windows10が吹っ飛んでプロジェクトファイルが消えてしまったので、新しくPowerDirectorという動画編集ソフトを購入しました。

初心者でも使えそうで、シェアトップということなので、そんなに使い勝手は悪くないだろうとこれにしました。今回、これで編集しましたが、慣れていないので難しいのと、正しい使い方なのかわからない。とくにキャプションの入れ方が分からず、今回は殆ど入っていません。追々、使えるようになることを期待。

次の工作ネタのFMラジオのプリント基板は国内には届いたようですが、なかなか到着しません。トラッキング情報を見ると、国内に届くまでに中国の深センからドイツ、英国、再びドイツ、日本という経路を辿っています。なぜ? 日本に入ってからも川崎から成田に移動し、その後再び川崎にきていますが、その後の動きがありません。到着は来週かな。

2021年3月24日水曜日

CO2センサで遊ぶ(その6、UIと内部処理見直し)

CO2測定器のUIと内部処理を見直しました。UIは従来のものに加え、リング状の中に濃度を表示してみました。少しはカッコよくなったか。下記は1,000ppm未満なので緑色のリングですが、濃度に応じてリングの色が変わります。


太い線の円は描けないので、半径を変えて複数描画しています。これだけだと太くはなるのですがモアレが表示されてしまうので、中心点も移動しながら塗りつぶせるように描画しています。当初、塗りつぶしで大きな円を描き、小さめの円を黒塗りしていたのですが、書き換え時に一瞬大きな円の塗りつぶしが表示されるのが見えてしまうので、このようにしました。

このデザインは、給湯器のリモコン画面をパクり参考にしました。濃度に応じて扇型で表示したかったのですが、利用しているAdafruit_GFXライブラリで扇型を表示できないようなので、単純なリング形状にしました。


内部処理の見直しは、これまでmillis()関数で前回測定から10秒経過したかを判断していましたが、タイマー割り込みを使って時間をカウントするようにしました。10ms毎の割り込みでタッチスイッチの状態確認(チャタリング排除のためのサンプリングですが、タッチスイッチでは意味はないかな)をし、その中で1,000カウントすることで10秒を測っています。

下記は本日のダイニングのCO2濃度で、右端が17:45頃です。11時間前あたり(朝6:30頃)に4,000ppmのピークがでていますが、これは朝方寒くてファンヒータをつけたことによるものです。


なお、グラフ表示時のY軸(ppm)は最大値に応じて1,000ppm毎に自動調整するようになっています。上記は4,000ppmを越えていたので最大が5,000ppmの軸になっています。

これでプログラムはほぼ完了とします。コードを少しキレイにして、この週末あたりに回路図と共に公開予定です。需要はあるか分かりませんが。

2021年3月22日月曜日

Aliexpressからの返金は為替レートで僅かにプラス

本日、クレジットカードの明細が届いたので確認したら、マトリクスLEDパネルは返金されることになった に書いた件は無事に返金されていました。よかったです。

支払いがUS$だったので、支払ったときと返金されたときの為替レートの差でほんの僅かですが差益がありました。まぁ3か月もやきもきした慰謝料にしては悲しい金額ですが。でも円高でよかった。逆だったら泣く。

返金するという連絡があったので、懲りずに再び色々注文したのですが今のところ届いています。あと一つがなかなか届かないのが気がかりですが、、、また、AliexpressではないですがFMラジオのプリント基板もまだ届きません。

写真は朝の散歩のお花見。全体的にはまだ一分咲き程度ですが、この樹は早いようです。今度の週末あたりが満開でしょうか。

2021年3月21日日曜日

CO2センサで遊ぶ(その5、3Dプリンタでケース作り)

今日は終日春の嵐ですね。首都圏の緊急事態宣言が解除されましたが、この天候では外出もできないので感染防止にはよかったのかも。週末の顧客を期待していたお店は打撃か。個人的には世の中の動きとはあまり関係なく外出しない生活を続けていますが、暖かくなってきたので桜を愛でながら朝の散歩は再開しました。そのためか花粉症の症状が少し悪化しつつあります。

昨日からCO2濃度計のケース作りに着手しました。久しぶりの3D-CAD(Fusion360)にとまどいながらもなんとか設計して印刷。1回目は寸法を勘違いしていた箇所があって失敗。なんでこんなところを間違えるか!? と思う箇所を間違っていました。昨夜設計し直して、今朝2回目を印刷しました。1回の印刷に4時間ほどかかるので夜中に印刷すればよいのですが、発熱機器なので就寝中に動かすのは心配です。


できあがったケース本体と蓋です。蓋側に液晶ディスプレイが付きます。蓋は視認性を考慮して斜めに嵌ります。すでにXIAOは定位置に収まっています。USB-Cコネクタが外にでるので、そこから給電とプログラムの書き換えを行えます。

CO2センサと表示を切り替えるためのタッチスイッチを所定の場所に収めた様子です。

配線は、基板を使わずにワイヤラッピングです。各モジュールのピンヘッダにラッピングワイヤを巻き付けます。

ワイヤラッピングが終わって試しに動かしているところ。カラー液晶のバックライトが部屋で使うには少し明るすぎたので、47Ωの抵抗を入れました。下記のキーボードV,B間にあるのが熱収縮チューブでカバーしてある抵抗です。

ケースへの組み込みです。CO2センサとタッチスイッチは両面テープで貼り付けました。XIAOは窪みに押し込んだら簡単には抜けなくなったのでそのまま。カラー液晶モジュールは四隅をホットボンドで固めて固定です。

こんな感じになりました。3Dプリンタの積層痕はありますが、まあ良しとします。蓋は嵌め込んだだけです。当初両面テープで貼り付けようかと思っていましたが意外とぴったり嵌ったのでそのまま。

裏側です。右側で光っているのがCO2センサの検知部分です。原理はよく分かりませんが、特定の波長の赤外線の透過量を測っているのでしょうか? ゆっくり点滅しています。

このセンサ、電源を入れて1分間程度はプレヒート時間ということで、正しい値が測定できません。そこで、XIAO起動後に1分待ってから通信したところ、正しいデータが返ってきませんでした。測定値がおかしいのではなく、データフォーマットそのものが期待しているものと違いました。原因が分かりません。取り合えず1分待つのをやめたので最初の1分間程度は500ppm(この値が返ってくる)になっています。

これで一応ハードはできたので、あと1週間程度はプログラムをもう少し見直して遊んでみて完成させるつもりです。そのころにはFMラジオのプリント基板が届くことを期待。

2021年3月19日金曜日

CO2センサで遊ぶ(その4、就寝中のCO2濃度が高い)

昨夜、寝室にCO2センサを置いてみたところ、就寝中のCO2濃度が2,000ppmを越えていました。一応、ドアの上に換気用の小窓(廊下との窓)があって開けてありますが、CO2は空気より重いらしいので意味はない? ちなみにセンサはベッドサイドにおき、頭と同じくらいの高さでした。


朝、ドアを開けて寝室を出ると急速に下がっていきますが、それでも1,000ppmは越えている。部屋にいたらドアを開けていても1,500~2,000ppm程度にはなりそう。寝室は非常に空気が悪いことになっていますね。春先、頭の働きが鈍いのは花粉症だけでなく、CO2濃度も影響していたのかも。でも夏場もエアコンかけて部屋を締め切っているので同じか。

以下の厚生労働省サイト資料(令和2年11月27日)によると、感染症予防には1,000ppm以下が求められるようですが、人が大勢いたら難しそうですね。




週末、このセンサのケースを設計しようと思っています。3Dプリンタで作るつもりですが、さてうまくいくか?

2021年3月17日水曜日

CO2センサで遊ぶ(その3、部屋のCO2濃度が意外と高い)

CO2センサは昨夜、グラフ表示のバグを修正し、テレワーク部屋で動かしっぱなしにしてみました。昨夜動かし始めたときに2,000ppmあった値が部屋を出ると徐々に下がって、今朝は800ppm台になっていました。

部屋で仕事を始めると再び上昇し、2,500ppm前後で落ち着きました。結構空気が悪いですね。ちなみにテレワーク部屋は5畳位の広さで、花粉が入ってこないように窓は締めて、Skypeで打合せなどをするのでドアも閉めてあります。

食事や休憩時間は、ドアを開けっぱなしで部屋を出たのでCO2濃度が下がっています。結構素早く反応しています。

空気の汚れが十分に可視化できていますね。一人で部屋にいても1時間に一度くらいは換気したほうがよさそうです。でも、花粉のため窓は開けられない。時々ドアを開ける位かな。

2021年3月16日火曜日

CO2センサで遊ぶ(その2)

前回試したCO2センサMH-Z19Cにカラーグラフィック液晶(1.8インチ、160x128)を繋いで表示してみました。繋いだのはXIAOでSPI接続です。写真にはモアレがでてしまっていますが、実物はもう少しキレイに見えます。


濃度に応じて背景色が変化します。望ましいと言われている1,000ppm未満は緑色、2,000ppm未満は注意の黄色、3,000ppm未満はオレンジ、それ以上は警告の赤色です。

スイッチで濃度の推移をグラフ表示するモードになります。以下は直近の1H分の表示。

以下は直近6Hの表示ですが、測定を開始して4H程度なので途中で切れています。

まだ表示にバグがあるようで上記のグラフは正しくない感じです。濃度は途中で上下していた気がします。

最長25H分の表示ができるようにしていて、10秒毎に測定しているので最大で6*60Min*25H = 9,000個の値を保持しています。グラフ化するときの解像度はもっと低いので端折って保持すればよいのですが、XIAOはRAMが32KBあるので処理を単純化するためにすべて保持しています。

見た目をもう少し改善したいと思っています。また、そろそろケースを考えたいです。

2021年3月14日日曜日

「密」の見える化、CO2センサを試してみた

相変わらずのテレワーク・自粛生活が続いていますが、そのおかげか花粉症の症状が例年より軽くて助かっています。FMラジオの基板が届くまでしばらく時間がかかるので別の工作に手を出しました。

「密」の見える化で話題になったCO2センサです。秋月で取り扱いが始まっていたMH-Z19CというCO2センサを購入してみました(2,480円)。CO2濃度がPWMとUARTの2通りで出力されます。取り合えずSeeeduino XIAOとUARTで繋いで動かしてみました。TX,RXの2本の線で繋ぐだけです。あとは電源5VとGND。


以下、10秒毎に測定した結果をArduino IDEのシリアルプロッタでグラフ化したものです。
CO2濃度は1,000ppm以下が望ましいようですが、部屋の中は丁度その位あって少し高めでした。グラフが下がっているのは、ドアを開けっぱなしにして部屋を出た様子。再び上昇しているのは部屋に戻ってきたからです。一人で居ても換気が必要なことが見えました。


キャリブレーション機能もありますが、まだ使っていません。外気環境でキャリブレーションするとその時のCO2濃度が400ppmになるらしい。現在の地上のCO2濃度が丁度その位なので。また、24時間ごとに自動キャリブレーションも動くようですが、どんな原理なのでしょうか? もし、そのとき屋内でCO2が高かったらそれが400ppmになるのは変だし。

以下、スケッチです。バグがあるかも知れません、無保証です。
//----------------------------------------------------------------
//                                                  '21.03.14 naka
//  CO2センサー
//
//  CO2 Sensor      : MH-Z19C
//  micro controler : Seeeduino XIAO (UART接続)
//----------------------------------------------------------------
#include<Wire.h>

void setup() {
  Serial1.begin(9600);  // TX(6),RX(7) <---> Co2 sensor MH-Z19C 
  Serial.begin(115200);
}
 
void loop() {
  //                Start,Reserved,Command,    -,    -,    -,    -,    -, Checksum 
  byte Command[9] = {0xFF,    0x01,   0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79};
  struct {
    byte start;
    byte command;
    byte concentration_high;
    byte concentration_low;
    byte temp;
    byte emp[3];
    byte checksum;
  } Return;

  Serial1.write(Command, sizeof Command);
  Serial1.readBytes((char *)&Return, 9);

  if (Return.start!=0xff || Return.command!=0x86 ) {
    return;
  }
  else {
    byte checksum = getCheckSum((byte *)&Return);
    if (Return.checksum!=checksum) {
      return;
    }
  }
  int ppm = Return.concentration_high*256 + Return.concentration_low;
//  int temp = Return.temp - 40;
  
  Serial.printf("%d\n",ppm);
  delay(10000);
}

byte getCheckSum(byte *packet) {
  byte i,checksum = 0;
  for(i=1;i<8;i++) {
    checksum += packet[i];  
  }
  return (0xFF - checksum) + 1;
}

MH-Z19Cのデータシートには記載がなかったのですが、ネット情報だと温度も取れるようです。スケッチ内にコメントアウトして記載してあります。ただし、測定の補正用に使っているものらしく、高めにでるとのこと。確認したら確かに室温より少し高めでした。

一応、動作確認できたので次は小型LCDを繋いで、数値表示とグラフ表示の切り替え機能を付けようかと思っています。

なお、このセンサはアマゾンでも扱っています(3~4,000円位)。

2021年3月10日水曜日

FMラジオのバッテリ残量表示

FMラジオの基板は発送したとのメールが届きました。到着まで7~25日程度と書かれていましたので今月末までには届くことを期待しています。

前回書いたバッテリ電圧の表示機能ですが、起動時の短い時間で数値を読むのは厳しいのとそれほど厳密な値が必要なわけではないので、バッテリアイコン表示に変えました。使用している超小型キャラクタLCD、AQM0802A-RN-GBW(秋月電子)に任意のグラフィックパターンを定義して表示する機能があるので、それを使ってみました。


黒い残量表示の■が3V以上あるときに3つ、2.5V以上のとき2つ、2V以上のとき1つ表示されます。それ以下だと黒い■は表示されません。まだ、確かめてないけど。

電源投入時にLCDが真っ黒(コントラストが強い状態)になる件は、起動時にウェイトをいれることで解消したようです。今のところ起きてない。使用しているダイソー300円スピーカのアンプに電解コンデンサが載ってるので、それがチャージされるまでちょっと電圧が低い状態だったのかも。電圧が低いとLCDが薄く表示されるので、それを補正するためにコントラストを強くするようなプログラムを組んであるので。

あと、FM局をスキャンできるようにしたいとか書いてましたが、使用しているPIC(PIC12F1501)のプログラムメモリが1Kwordしかなくて、そんなにプログラムを書けないことも判明。電池表示を組み込んだら、あと僅かしか残っていませんでした。

2021年3月7日日曜日

59円FMラジオのプログラム更新中

例年のことですが、花粉症がひどくて色々と低空飛行中です。目はかゆいし、鼻はつまり、熱っぽくて倦怠感が続いています。仕事は仕方ないから気力を振り絞っていますが、仕事以外のことはやる気がでません。寝ても疲れがとれない。それでも今年はテレワークと自粛生活で外出しなくて済んでいるのでまだよいほうです。
 
そんな中、59円チューナモジュールを使ったFMラジオ のプログラムを局のスキャンできるようにバージョンアップしようと考えましたが、スキャンして見つけたらプリセットしたいとか、プリセットした局を順次切り替えたいとか、色々と欲がでてきました。しかし、スイッチ2個で操作させるには長押しとか2個同時押しとか、UIが複雑になり使いこなせそうにありません。で、やっぱりスキャンするのはやめました。プログラムに局情報を書き込む従来手法のままです。
 
ただ、以前周波数からバイナリ値に変換するところの質問を受けたことがあるので、変換テーブル(PICアセンブラソース)を作りました。ソース内の局定義を差し替えればOKのはず。
	DT      "        "," 76.0MHz",B'00000000',B'00011000'
	DT      "        "," 76.1MHz",B'00000000',B'01011000'
	DT      "        "," 76.2MHz",B'00000000',B'10011000'
	DT      "        "," 76.3MHz",B'00000000',B'11011000'
	DT      "        "," 76.4MHz",B'00000001',B'00011000'
	DT      "        "," 76.5MHz",B'00000001',B'01011000'
	DT      "        "," 76.6MHz",B'00000001',B'10011000'
	DT      "        "," 76.7MHz",B'00000001',B'11011000'
	DT      "        "," 76.8MHz",B'00000010',B'00011000'
	DT      "        "," 76.9MHz",B'00000010',B'01011000'
	DT      "        "," 77.0MHz",B'00000010',B'10011000'
	DT      "        "," 77.1MHz",B'00000010',B'11011000'
	DT      "        "," 77.2MHz",B'00000011',B'00011000'
	DT      "        "," 77.3MHz",B'00000011',B'01011000'
	DT      "        "," 77.4MHz",B'00000011',B'10011000'
	DT      "        "," 77.5MHz",B'00000011',B'11011000'
	DT      "        "," 77.6MHz",B'00000100',B'00011000'
	DT      "        "," 77.7MHz",B'00000100',B'01011000'
	DT      "        "," 77.8MHz",B'00000100',B'10011000'
	DT      "        "," 77.9MHz",B'00000100',B'11011000'
	DT      "        "," 78.0MHz",B'00000101',B'00011000'
	DT      "        "," 78.1MHz",B'00000101',B'01011000'
	DT      "        "," 78.2MHz",B'00000101',B'10011000'
	DT      "        "," 78.3MHz",B'00000101',B'11011000'
	DT      "        "," 78.4MHz",B'00000110',B'00011000'
	DT      "        "," 78.5MHz",B'00000110',B'01011000'
	DT      "        "," 78.6MHz",B'00000110',B'10011000'
	DT      "        "," 78.7MHz",B'00000110',B'11011000'
	DT      "        "," 78.8MHz",B'00000111',B'00011000'
	DT      "        "," 78.9MHz",B'00000111',B'01011000'
	DT      "        "," 79.0MHz",B'00000111',B'10011000'
	DT      "        "," 79.1MHz",B'00000111',B'11011000'
	DT      "        "," 79.2MHz",B'00001000',B'00011000'
	DT      "        "," 79.3MHz",B'00001000',B'01011000'
	DT      "        "," 79.4MHz",B'00001000',B'10011000'
	DT      "        "," 79.5MHz",B'00001000',B'11011000'
	DT      "        "," 79.6MHz",B'00001001',B'00011000'
	DT      "        "," 79.7MHz",B'00001001',B'01011000'
	DT      "        "," 79.8MHz",B'00001001',B'10011000'
	DT      "        "," 79.9MHz",B'00001001',B'11011000'
	DT      "        "," 80.0MHz",B'00001010',B'00011000'
	DT      "        "," 80.1MHz",B'00001010',B'01011000'
	DT      "        "," 80.2MHz",B'00001010',B'10011000'
	DT      "        "," 80.3MHz",B'00001010',B'11011000'
	DT      "        "," 80.4MHz",B'00001011',B'00011000'
	DT      "        "," 80.5MHz",B'00001011',B'01011000'
	DT      "        "," 80.6MHz",B'00001011',B'10011000'
	DT      "        "," 80.7MHz",B'00001011',B'11011000'
	DT      "        "," 80.8MHz",B'00001100',B'00011000'
	DT      "        "," 80.9MHz",B'00001100',B'01011000'
	DT      "        "," 81.0MHz",B'00001100',B'10011000'
	DT      "        "," 81.1MHz",B'00001100',B'11011000'
	DT      "        "," 81.2MHz",B'00001101',B'00011000'
	DT      "        "," 81.3MHz",B'00001101',B'01011000'
	DT      "        "," 81.4MHz",B'00001101',B'10011000'
	DT      "        "," 81.5MHz",B'00001101',B'11011000'
	DT      "        "," 81.6MHz",B'00001110',B'00011000'
	DT      "        "," 81.7MHz",B'00001110',B'01011000'
	DT      "        "," 81.8MHz",B'00001110',B'10011000'
	DT      "        "," 81.9MHz",B'00001110',B'11011000'
	DT      "        "," 82.0MHz",B'00001111',B'00011000'
	DT      "        "," 82.1MHz",B'00001111',B'01011000'
	DT      "        "," 82.2MHz",B'00001111',B'10011000'
	DT      "        "," 82.3MHz",B'00001111',B'11011000'
	DT      "        "," 82.4MHz",B'00010000',B'00011000'
	DT      "        "," 82.5MHz",B'00010000',B'01011000'
	DT      "        "," 82.6MHz",B'00010000',B'10011000'
	DT      "        "," 82.7MHz",B'00010000',B'11011000'
	DT      "        "," 82.8MHz",B'00010001',B'00011000'
	DT      "        "," 82.9MHz",B'00010001',B'01011000'
	DT      "        "," 83.0MHz",B'00010001',B'10011000'
	DT      "        "," 83.1MHz",B'00010001',B'11011000'
	DT      "        "," 83.2MHz",B'00010010',B'00011000'
	DT      "        "," 83.3MHz",B'00010010',B'01011000'
	DT      "        "," 83.4MHz",B'00010010',B'10011000'
	DT      "        "," 83.5MHz",B'00010010',B'11011000'
	DT      "        "," 83.6MHz",B'00010011',B'00011000'
	DT      "        "," 83.7MHz",B'00010011',B'01011000'
	DT      "        "," 83.8MHz",B'00010011',B'10011000'
	DT      "        "," 83.9MHz",B'00010011',B'11011000'
	DT      "        "," 84.0MHz",B'00010100',B'00011000'
	DT      "        "," 84.1MHz",B'00010100',B'01011000'
	DT      "        "," 84.2MHz",B'00010100',B'10011000'
	DT      "        "," 84.3MHz",B'00010100',B'11011000'
	DT      "        "," 84.4MHz",B'00010101',B'00011000'
	DT      "        "," 84.5MHz",B'00010101',B'01011000'
	DT      "        "," 84.6MHz",B'00010101',B'10011000'
	DT      "        "," 84.7MHz",B'00010101',B'11011000'
	DT      "        "," 84.8MHz",B'00010110',B'00011000'
	DT      "        "," 84.9MHz",B'00010110',B'01011000'
	DT      "        "," 85.0MHz",B'00010110',B'10011000'
	DT      "        "," 85.1MHz",B'00010110',B'11011000'
	DT      "        "," 85.2MHz",B'00010111',B'00011000'
	DT      "        "," 85.3MHz",B'00010111',B'01011000'
	DT      "        "," 85.4MHz",B'00010111',B'10011000'
	DT      "        "," 85.5MHz",B'00010111',B'11011000'
	DT      "        "," 85.6MHz",B'00011000',B'00011000'
	DT      "        "," 85.7MHz",B'00011000',B'01011000'
	DT      "        "," 85.8MHz",B'00011000',B'10011000'
	DT      "        "," 85.9MHz",B'00011000',B'11011000'
	DT      "        "," 86.0MHz",B'00011001',B'00011000'
	DT      "        "," 86.1MHz",B'00011001',B'01011000'
	DT      "        "," 86.2MHz",B'00011001',B'10011000'
	DT      "        "," 86.3MHz",B'00011001',B'11011000'
	DT      "        "," 86.4MHz",B'00011010',B'00011000'
	DT      "        "," 86.5MHz",B'00011010',B'01011000'
	DT      "        "," 86.6MHz",B'00011010',B'10011000'
	DT      "        "," 86.7MHz",B'00011010',B'11011000'
	DT      "        "," 86.8MHz",B'00011011',B'00011000'
	DT      "        "," 86.9MHz",B'00011011',B'01011000'
	DT      "        "," 87.0MHz",B'00011011',B'10011000'
	DT      "        "," 87.1MHz",B'00011011',B'11011000'
	DT      "        "," 87.2MHz",B'00011100',B'00011000'
	DT      "        "," 87.3MHz",B'00011100',B'01011000'
	DT      "        "," 87.4MHz",B'00011100',B'10011000'
	DT      "        "," 87.5MHz",B'00011100',B'11011000'
	DT      "        "," 87.6MHz",B'00011101',B'00011000'
	DT      "        "," 87.7MHz",B'00011101',B'01011000'
	DT      "        "," 87.8MHz",B'00011101',B'10011000'
	DT      "        "," 87.9MHz",B'00011101',B'11011000'
	DT      "        "," 88.0MHz",B'00011110',B'00011000'
	DT      "        "," 88.1MHz",B'00011110',B'01011000'
	DT      "        "," 88.2MHz",B'00011110',B'10011000'
	DT      "        "," 88.3MHz",B'00011110',B'11011000'
	DT      "        "," 88.4MHz",B'00011111',B'00011000'
	DT      "        "," 88.5MHz",B'00011111',B'01011000'
	DT      "        "," 88.6MHz",B'00011111',B'10011000'
	DT      "        "," 88.7MHz",B'00011111',B'11011000'
	DT      "        "," 88.8MHz",B'00100000',B'00011000'
	DT      "        "," 88.9MHz",B'00100000',B'01011000'
	DT      "        "," 89.0MHz",B'00100000',B'10011000'
	DT      "        "," 89.1MHz",B'00100000',B'11011000'
	DT      "        "," 89.2MHz",B'00100001',B'00011000'
	DT      "        "," 89.3MHz",B'00100001',B'01011000'
	DT      "        "," 89.4MHz",B'00100001',B'10011000'
	DT      "        "," 89.5MHz",B'00100001',B'11011000'
	DT      "        "," 89.6MHz",B'00100010',B'00011000'
	DT      "        "," 89.7MHz",B'00100010',B'01011000'
	DT      "        "," 89.8MHz",B'00100010',B'10011000'
	DT      "        "," 89.9MHz",B'00100010',B'11011000'
	DT      "        "," 90.0MHz",B'00100011',B'00011000'
	DT      "        "," 90.1MHz",B'00100011',B'01011000'
	DT      "        "," 90.2MHz",B'00100011',B'10011000'
	DT      "        "," 90.3MHz",B'00100011',B'11011000'
	DT      "        "," 90.4MHz",B'00100100',B'00011000'
	DT      "        "," 90.5MHz",B'00100100',B'01011000'
	DT      "        "," 90.6MHz",B'00100100',B'10011000'
	DT      "        "," 90.7MHz",B'00100100',B'11011000'
	DT      "        "," 90.8MHz",B'00100101',B'00011000'
	DT      "        "," 90.9MHz",B'00100101',B'01011000'
	DT      "        "," 91.0MHz",B'00100101',B'10011000'
	DT      "        "," 91.1MHz",B'00100101',B'11011000'
	DT      "        "," 91.2MHz",B'00100110',B'00011000'
	DT      "        "," 91.3MHz",B'00100110',B'01011000'
	DT      "        "," 91.4MHz",B'00100110',B'10011000'
	DT      "        "," 91.5MHz",B'00100110',B'11011000'
	DT      "        "," 91.6MHz",B'00100111',B'00011000'
	DT      "        "," 91.7MHz",B'00100111',B'01011000'
	DT      "        "," 91.8MHz",B'00100111',B'10011000'
	DT      "        "," 91.9MHz",B'00100111',B'11011000'
	DT      "        "," 92.0MHz",B'00101000',B'00011000'
	DT      "        "," 92.1MHz",B'00101000',B'01011000'
	DT      "        "," 92.2MHz",B'00101000',B'10011000'
	DT      "        "," 92.3MHz",B'00101000',B'11011000'
	DT      "        "," 92.4MHz",B'00101001',B'00011000'
	DT      "        "," 92.5MHz",B'00101001',B'01011000'
	DT      "        "," 92.6MHz",B'00101001',B'10011000'
	DT      "        "," 92.7MHz",B'00101001',B'11011000'
	DT      "        "," 92.8MHz",B'00101010',B'00011000'
	DT      "        "," 92.9MHz",B'00101010',B'01011000'
	DT      "        "," 93.0MHz",B'00101010',B'10011000'
	DT      "        "," 93.1MHz",B'00101010',B'11011000'
	DT      "        "," 93.2MHz",B'00101011',B'00011000'
	DT      "        "," 93.3MHz",B'00101011',B'01011000'
	DT      "        "," 93.4MHz",B'00101011',B'10011000'
	DT      "        "," 93.5MHz",B'00101011',B'11011000'
	DT      "        "," 93.6MHz",B'00101100',B'00011000'
	DT      "        "," 93.7MHz",B'00101100',B'01011000'
	DT      "        "," 93.8MHz",B'00101100',B'10011000'
	DT      "        "," 93.9MHz",B'00101100',B'11011000'
	DT      "        "," 94.0MHz",B'00101101',B'00011000'
	DT      "        "," 94.1MHz",B'00101101',B'01011000'
	DT      "        "," 94.2MHz",B'00101101',B'10011000'
	DT      "        "," 94.3MHz",B'00101101',B'11011000'
	DT      "        "," 94.4MHz",B'00101110',B'00011000'
	DT      "        "," 94.5MHz",B'00101110',B'01011000'
	DT      "        "," 94.6MHz",B'00101110',B'10011000'
	DT      "        "," 94.7MHz",B'00101110',B'11011000'
	DT      "        "," 94.8MHz",B'00101111',B'00011000'
	DT      "        "," 94.9MHz",B'00101111',B'01011000'
	DT      "        "," 95.0MHz",B'00101111',B'10011000'
	DT      "        "," 95.1MHz",B'00101111',B'11011000'
	DT      "        "," 95.2MHz",B'00110000',B'00011000'
	DT      "        "," 95.3MHz",B'00110000',B'01011000'
	DT      "        "," 95.4MHz",B'00110000',B'10011000'
	DT      "        "," 95.5MHz",B'00110000',B'11011000'
	DT      "        "," 95.6MHz",B'00110001',B'00011000'
	DT      "        "," 95.7MHz",B'00110001',B'01011000'
	DT      "        "," 95.8MHz",B'00110001',B'10011000'
	DT      "        "," 95.9MHz",B'00110001',B'11011000'
	DT      "        "," 96.0MHz",B'00110010',B'00011000'
	DT      "        "," 96.1MHz",B'00110010',B'01011000'
	DT      "        "," 96.2MHz",B'00110010',B'10011000'
	DT      "        "," 96.3MHz",B'00110010',B'11011000'
	DT      "        "," 96.4MHz",B'00110011',B'00011000'
	DT      "        "," 96.5MHz",B'00110011',B'01011000'
	DT      "        "," 96.6MHz",B'00110011',B'10011000'
	DT      "        "," 96.7MHz",B'00110011',B'11011000'
	DT      "        "," 96.8MHz",B'00110100',B'00011000'
	DT      "        "," 96.9MHz",B'00110100',B'01011000'
	DT      "        "," 97.0MHz",B'00110100',B'10011000'
	DT      "        "," 97.1MHz",B'00110100',B'11011000'
	DT      "        "," 97.2MHz",B'00110101',B'00011000'
	DT      "        "," 97.3MHz",B'00110101',B'01011000'
	DT      "        "," 97.4MHz",B'00110101',B'10011000'
	DT      "        "," 97.5MHz",B'00110101',B'11011000'
	DT      "        "," 97.6MHz",B'00110110',B'00011000'
	DT      "        "," 97.7MHz",B'00110110',B'01011000'
	DT      "        "," 97.8MHz",B'00110110',B'10011000'
	DT      "        "," 97.9MHz",B'00110110',B'11011000'
	DT      "        "," 98.0MHz",B'00110111',B'00011000'
	DT      "        "," 98.1MHz",B'00110111',B'01011000'
	DT      "        "," 98.2MHz",B'00110111',B'10011000'
	DT      "        "," 98.3MHz",B'00110111',B'11011000'
	DT      "        "," 98.4MHz",B'00111000',B'00011000'
	DT      "        "," 98.5MHz",B'00111000',B'01011000'
	DT      "        "," 98.6MHz",B'00111000',B'10011000'
	DT      "        "," 98.7MHz",B'00111000',B'11011000'
	DT      "        "," 98.8MHz",B'00111001',B'00011000'
	DT      "        "," 98.9MHz",B'00111001',B'01011000'
	DT      "        "," 99.0MHz",B'00111001',B'10011000'
	DT      "        "," 99.1MHz",B'00111001',B'11011000'
	DT      "        "," 99.2MHz",B'00111010',B'00011000'
	DT      "        "," 99.3MHz",B'00111010',B'01011000'
	DT      "        "," 99.4MHz",B'00111010',B'10011000'
	DT      "        "," 99.5MHz",B'00111010',B'11011000'
	DT      "        "," 99.6MHz",B'00111011',B'00011000'
	DT      "        "," 99.7MHz",B'00111011',B'01011000'
	DT      "        "," 99.8MHz",B'00111011',B'10011000'
	DT      "        "," 99.9MHz",B'00111011',B'11011000'
	DT      "        ","100.0MHz",B'00111100',B'00011000'
	DT      "        ","100.1MHz",B'00111100',B'01011000'
	DT      "        ","100.2MHz",B'00111100',B'10011000'
	DT      "        ","100.3MHz",B'00111100',B'11011000'
	DT      "        ","100.4MHz",B'00111101',B'00011000'
	DT      "        ","100.5MHz",B'00111101',B'01011000'
	DT      "        ","100.6MHz",B'00111101',B'10011000'
	DT      "        ","100.7MHz",B'00111101',B'11011000'
	DT      "        ","100.8MHz",B'00111110',B'00011000'
	DT      "        ","100.9MHz",B'00111110',B'01011000'
	DT      "        ","101.0MHz",B'00111110',B'10011000'
	DT      "        ","101.1MHz",B'00111110',B'11011000'
	DT      "        ","101.2MHz",B'00111111',B'00011000'
	DT      "        ","101.3MHz",B'00111111',B'01011000'
	DT      "        ","101.4MHz",B'00111111',B'10011000'
	DT      "        ","101.5MHz",B'00111111',B'11011000'
	DT      "        ","101.6MHz",B'01000000',B'00011000'
	DT      "        ","101.7MHz",B'01000000',B'01011000'
	DT      "        ","101.8MHz",B'01000000',B'10011000'
	DT      "        ","101.9MHz",B'01000000',B'11011000'
	DT      "        ","102.0MHz",B'01000001',B'00011000'
	DT      "        ","102.1MHz",B'01000001',B'01011000'
	DT      "        ","102.2MHz",B'01000001',B'10011000'
	DT      "        ","102.3MHz",B'01000001',B'11011000'
	DT      "        ","102.4MHz",B'01000010',B'00011000'
	DT      "        ","102.5MHz",B'01000010',B'01011000'
	DT      "        ","102.6MHz",B'01000010',B'10011000'
	DT      "        ","102.7MHz",B'01000010',B'11011000'
	DT      "        ","102.8MHz",B'01000011',B'00011000'
	DT      "        ","102.9MHz",B'01000011',B'01011000'
	DT      "        ","103.0MHz",B'01000011',B'10011000'
	DT      "        ","103.1MHz",B'01000011',B'11011000'
	DT      "        ","103.2MHz",B'01000100',B'00011000'
	DT      "        ","103.3MHz",B'01000100',B'01011000'
	DT      "        ","103.4MHz",B'01000100',B'10011000'
	DT      "        ","103.5MHz",B'01000100',B'11011000'
	DT      "        ","103.6MHz",B'01000101',B'00011000'
	DT      "        ","103.7MHz",B'01000101',B'01011000'
	DT      "        ","103.8MHz",B'01000101',B'10011000'
	DT      "        ","103.9MHz",B'01000101',B'11011000'
	DT      "        ","104.0MHz",B'01000110',B'00011000'
	DT      "        ","104.1MHz",B'01000110',B'01011000'
	DT      "        ","104.2MHz",B'01000110',B'10011000'
	DT      "        ","104.3MHz",B'01000110',B'11011000'
	DT      "        ","104.4MHz",B'01000111',B'00011000'
	DT      "        ","104.5MHz",B'01000111',B'01011000'
	DT      "        ","104.6MHz",B'01000111',B'10011000'
	DT      "        ","104.7MHz",B'01000111',B'11011000'
	DT      "        ","104.8MHz",B'01001000',B'00011000'
	DT      "        ","104.9MHz",B'01001000',B'01011000'
	DT      "        ","105.0MHz",B'01001000',B'10011000'
	DT      "        ","105.1MHz",B'01001000',B'11011000'
	DT      "        ","105.2MHz",B'01001001',B'00011000'
	DT      "        ","105.3MHz",B'01001001',B'01011000'
	DT      "        ","105.4MHz",B'01001001',B'10011000'
	DT      "        ","105.5MHz",B'01001001',B'11011000'
	DT      "        ","105.6MHz",B'01001010',B'00011000'
	DT      "        ","105.7MHz",B'01001010',B'01011000'
	DT      "        ","105.8MHz",B'01001010',B'10011000'
	DT      "        ","105.9MHz",B'01001010',B'11011000'
	DT      "        ","106.0MHz",B'01001011',B'00011000'
	DT      "        ","106.1MHz",B'01001011',B'01011000'
	DT      "        ","106.2MHz",B'01001011',B'10011000'
	DT      "        ","106.3MHz",B'01001011',B'11011000'
	DT      "        ","106.4MHz",B'01001100',B'00011000'
	DT      "        ","106.5MHz",B'01001100',B'01011000'
	DT      "        ","106.6MHz",B'01001100',B'10011000'
	DT      "        ","106.7MHz",B'01001100',B'11011000'
	DT      "        ","106.8MHz",B'01001101',B'00011000'
	DT      "        ","106.9MHz",B'01001101',B'01011000'
	DT      "        ","107.0MHz",B'01001101',B'10011000'
	DT      "        ","107.1MHz",B'01001101',B'11011000'
	DT      "        ","107.2MHz",B'01001110',B'00011000'
	DT      "        ","107.3MHz",B'01001110',B'01011000'
	DT      "        ","107.4MHz",B'01001110',B'10011000'
	DT      "        ","107.5MHz",B'01001110',B'11011000'
	DT      "        ","107.6MHz",B'01001111',B'00011000'
	DT      "        ","107.7MHz",B'01001111',B'01011000'
	DT      "        ","107.8MHz",B'01001111',B'10011000'
	DT      "        ","107.9MHz",B'01001111',B'11011000'
	DT      "        ","108.0MHz",B'01010000',B'00011000'

もうひとつ、電池残量を確認するために電圧を表示する機能を組み込みました。電源投入後のバージョン表示のあとに0.5秒だけ表示されます。下記の写真ではニッケル水素電池2本直列で使っていますが2.62Vになっています。ニッケル水素などの充電池は乾電池と違い、空になる直前に電圧が下がるのであまり残量表示にはならないかも知れませんが、多少の目安にはなるかと思っています。


もう少し確認して、プリント基板版ができたらソースを公開するつもりです。現在、電源オン時にたまに液晶が黒く(コントラストが強く)表示される現象が起きていて、その原因を調査したく思っています。電圧測定が正しくできなかったのか、LCDへのコントラストコマンド送出がよくないのか。黒く表示されたときに電源を入れ直すと解決し、その後しばらくは何度か入れ直しても大丈夫。AD変換のクロックが適切でなかったので修正したのですが、解決していません。単純に電源投入から少し時間をおいて電圧が安定してから測定すればよいのかも。

注文したプリント基板のステータスをみるとまだ発送されていません。以前より少し時間がかかっているようです。タイミングにもよるのかも知れませんが。