Arduinoと小型ディスプレイ(OLED)を使ってラックスマンFMチューナーキットLXV-OT8の受信中のFM局名を表示

音楽之友社のムック本付録のラックスマンFMチューナーキットにArduino、OLEDとu8gライブラリを使って受信中のFM局名を表示するプチ改造を行いました。FM局名を表示することでアナログ感のあるチューニングダイヤルの使い勝手が少しアップです。

LXV-OT8の受信中のFM局名を表示
ArduinoとOLEDディスプレイでFM局名を日本語表示(木製ケースはムック本付録に含まれません)
目次

受信中のFM局名を表示できれば便利かも

パネル前面のチューニングダイヤルを廻して選局するタイプはアナログ感があって良いのですが、受信中のFM局名を表示できないか思案しました。

このFMチューナーキットはDSP(Digital Signal Processing)方式で、受信機としての心臓部はプリントパターン面に実装されているラジオIC:4831 B30 GU。ケース前面パネルから見える真空管12AU7はラジオICからのステレオ信号の増幅とハーモライズする役目を担っていると思われます。

プリントパターン面に実装されているラジオIC:4831 B30 GU
プリントパターン面に実装されているラジオIC:4831 B30 GU。Silicon Laboratories製と思われる

チューニングにはケース前面パネルのダイアルとつながる100kΩのボリューム(可変抵抗)が使われています。このボリュームをよく見ると、2つのボリュームが連結された2連構造となっていますが、パネル側のボリュームは未配線です。

この未配線側のボリュームを使います。プリントパターン両端の(1)(3)間に5Vを印可すると、可変部の端子(2)の電圧は回転角に応じて分圧(0~5V)されます。
この電圧値をArduinoのADコンバータで読み取り、ステレオ受信できた時にFM局の名称をOLEDディスプレイに表示します。
受信周波数表示ではありませんが、FM局名が表示されれば選局の目安になります。

LXV-OT8のチューニング用ボリューム
LXV-OT8のチューニング用ボリューム。2つのボリュームが連結されているので、パネル側の未使用部を利用

ArduinoのAD変換、analogRead()

Arduino UnoやNanoには、10ビットのADコンバータにつながるアナログ入力ポート(UnoはA0~A5、NanoはA0~A7)を持っており、本体のみで0~5Vの電圧測定ができます。

Arduino公式サイトのドキュメントにArduinoシリーズの分解能を纏めた表があります。10ビットのADコンバータを持つArduinoシリーズのanalogRead()関数は、読み取った値を0~1023の整数値(1024単位)で返します。アナログ入力電圧は0~5Vなので、1単位当たりの電圧は、5(V) / 1024(単位) = 0.0048828125(約4.9mV)です。

analogRead() – Arduino Reference

https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/

準備したパーツと組み立て(2022/01/22更新)

前面パネル右側の真空管が見えるアクリル窓の内側に実装したかったので、小型のOLEDモジュールと Arduino Nano互換ボードを使いました。OLEDは素子そのものが発光するのでバックライトがなくモジュールが薄くできています。

#パーツ仕様個数
1ELEGOO
Nano互換ボード
CH340/ATmega328P
※PCとの接続にはmini-BのUSBケーブルが必要
1
20.96インチ
OLEDモジュール
128 x 64   SSD1306チップ  I2C接続
※4線が接着したジャンパーワイヤが2組付属
1
3ジャンパーワイヤ・メス-メス:nano互換ボードとOLED間の結線に利用
・メス-オス:nano互換ボードと基板間の結線に利用、
       オス側はピンを切断してはんだ付け
・プリントパターンGNDとボリューム(1)間の結線
適量
4固定用バンド結束バンドベース、結束バンド、布絶縁テープ適量

LXV-OT8基板裏面のボリュームのプリントパターン(1)(2)(3)から引き出した配線をNano互換ボードのGND、A0、5Vピンに、電源スイッチがオンになった後の電源パターン(12VとGND)から引き出した配線をNano互換ボードのVinとGNDピンに接続します。GNDは共通として配線数を減らします。Vinが12Vと電圧が高いので配線ミスが無いように注意します。

OLEDモジュールとNano互換ボードはI2Cで接続。OLEDモジュールのVcc、GND、SCL、SDAの4線をNano互換ボードの3V3、GND、A5、A4ピンにつなぎます。Nano互換ボードへのピン配線のみ(ブレッドボード無し)でワイヤ接続が完了しました。

プリントパターンの未使用ボリューム端子と電源の配線取り出し
プリントパターンの未使用ボリューム端子と電源の配線取り出し。OLED付属のジャンパーワイヤ(平面接着した4線)を利用
Nano互換ボードからOLEDとプリンパターンへの結線図
Nano互換ボードからOLEDとプリンパターンへの結線図

ロットや製品バージョンによってはプリントパターンや使われているパーツが異なる場合もあるのでご注意ください。

LXV-OT8ケースにOLEDディスプレイを組み込んで動作確認

Nano互換ボードと配線ワイヤは、背面パネルの2箇所に接着した結束バンドベースに電極端子がプリント基板のパーツに接触しないように離して結束バンドで固定。OLEDディスプレイは薄くて軽いので、黒色の布絶縁テープで前面パネル右側の真空管が見えるアクリル窓の内側に仮固定しています。しばらく使ってみてOLEDディスプレイの見やすさに問題ないようであればグルーガンで固定予定です。

前面パネルのチューニングダイヤルを回すとOLEDディスプレイにFM局名が表示されるので使い勝手が少しアップしました。

LXV-OT8ケースにパーツを固定
LXV-OT8ケースにパーツを固定
LXV-OT8ケースに取り付けたOLEDディスプレイ
LXV-OT8ケースに取り付けたOLEDディスプレイ

電圧の読み取り値をFM局名に変換してOLEDに表示するスケッチ

analogRead()値のレンジ設定

チューニングダイヤルを廻しながら、橙色のランプが点灯(ステレオ受信)するanalogRead()値のレンジと受信中のFM局名をメモします。今回のレンジ設定は橙色のランプが点灯するステレオ受信範囲としましたが、モノラルでも聞こえ始めた時点から幅広くレンジ指定した方がチューニングダイヤルを速く廻したときの追従がもっと容易かもしれません。
NORMAL/WIDE切替には未対応です。

なお、ケーブルTVのFM波再送信を受信しているので、東京タワー東京スカイツリーなどFM局の送信所からの送信周波数とはレンジが異なっています。

#FM局ステレオ受信時の
analogRead() レンジ
電圧換算
中央値(Ⅴ)
1bayfm80 ~ 1100.42
2NACK5136 ~ 1500.72
3TOKYO FM190 ~ 2020.95
4NHK横浜-FM226 ~ 2361.14
5J-WAVE366 ~ 3821.83
6NHK東京-FM512 ~ 5282.52
7Fm yokohama582 ~ 6162.90
8InterFM897710 ~ 7283.52

レンジ設定に対応するFM局名をOLEDに日本語で表示(2022/01/19更新)

OLED画面の上段左にチャンネルに紐づけたNo(1~8)、その横にanalogRead値(0~1023)、下段にFM局名の表示を割り当てます。

Andiunoはメモリ領域が小さく高解像度の日本語フォントセットの格納が難しいので、漢字を含むFM局名は128X30ピクセルの画像データとしてu8g.drawXBMP()で表示しました。

FM局名をOLEDに日本語表示
FM局名をOLEDに日本語表示

漢字を含まないFM局名でも文字数に応じて最適なサイズの英数フォントセットを多く使いすぎるとArduinoのメモリ領域を圧迫するので、6文字以上のFM局名も128X30ピクセルの画像データとして表示。 5文字以下のFM局名、チャンネルに紐づけたNo、analogRead値は、英数フォントセット u8g_font_fub25 を使っています。

スケッチ実行時のメモリ消費量
スケッチ実行時のメモリ消費量

画像データはWindows標準アプリのペイント3Dで作ったFM局名のビットマップ画像(BMP)を128X30ピクセルに整形した後、BMPからHEXデータに変換しています。 BMPからHEXデータへの変換にはProgramResource.netサイトの「nfBmptoHex.exe」を利用させていただきました。

OLEDモジュール表示に必要なライブラリ「U8glib.h」は、Arduino IDEメニューの ツール –> ライブラリの管理 からライブラリマネージャで「U8glib」を検索してインストールします。

u8g.setFont()で使うフォント見本は fontsize | olikraus/u8glib を参考にさせていただきました。

ライブラリ U8glib のインストール
ライブラリ U8glib のインストール
arduino_lxv-ot8_fm_lcd.ino  ※ここをクリックするとコード表示を開閉できます。
#include <U8glib.h>

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST);

int analog_pin = A0;    // アナログ入力ポートの番号
int analog_value = 0;   // 読み取り値を格納する変数
int vol_value = 0;      // 電圧換算値を格納する変数

// FM局名(128x30BMP)画像から変換したHEXデータ
const unsigned char nhkyokohamafm[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xE7, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xE7, 0x60, 0xC0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x70, 0x38, 0x70, 0x38, 0x70, 0x9C, 0xFF, 0xF3, 0xFC, 0x0F, 0x00, 0xFC, 0xC7, 0x01, 0x0E, 0x78, 0x70, 0x38, 0x70, 0x38, 0x78, 0x9C, 0xFF, 0xE3, 0xFD, 0x07, 0x00, 0xFE, 0xCF, 0x03, 0x0F, 0xF8, 0x70, 0x38, 0x70, 0x38, 0x3C, 0x9C, 0xE7, 0xC1, 0x7D, 0x00, 0x00, 0xFE, 0xCF, 0x03, 0x0F, 0xF8, 0x70, 0x38, 0x70, 0x38, 0x3C, 0x3E, 0xE7, 0xC0, 0x1C, 0x00, 0x00, 0x1E, 0xC0, 0x03, 0x0F, 0xF8, 0x70, 0x38, 0x70, 0x38, 0x1E, 0x3F, 0xE7, 0x00, 0x1C, 0x00, 0x00, 0x1E, 0xC0, 0x87, 0x0F, 0xF8, 0x71, 0x38, 0x70, 0x38, 0x0E, 0xFF, 0xFF, 0x33, 0xFC, 0x1F, 0x00, 0x1E, 0xC0, 0x87, 0x0F, 0xF8, 0x71, 0x38, 0x70, 0x38, 0x0F, 0xDE, 0xFF, 0x73, 0xFC, 0x1F, 0x00, 0x1E, 0xC0, 0x87, 0x0F, 0xF8, 0x73, 0x38, 0x70, 0x38, 0x07, 0xDC, 0xFF, 0xF3, 0xFC, 0x1F, 0x00, 0x1E, 0xC0, 0xC7, 0x0F, 0xB8, 0x73, 0x38, 0x70, 0xB8, 0x07, 0x1C, 0x18, 0xE0, 0x1C, 0x0E, 0x00, 0x1E, 0xC0, 0xCF, 0x0E, 0xB8, 0x73, 0x38, 0x70, 0xF8, 0x03, 0x9C, 0xFF, 0xE1, 0x1C, 0x0E, 0x00, 0xFE, 0xC7, 0xCE, 0x0E, 0x38, 0x77, 0xF8, 0x7F, 0xF8, 0x03, 0xFE, 0xFF, 0x41, 0x1C, 0x0E, 0x00, 0xFE, 0xC7, 0xEC, 0x0E, 0x38, 0x77, 0xF8, 0x7F, 0xF8, 0x03, 0xFE, 0x99, 0x01, 0x1C, 0x0E, 0x7F, 0xFE, 0xC7, 0x7C, 0x0E, 0x38, 0x7F, 0xF8, 0x7F, 0xF8, 0x07, 0xBE, 0x99, 0x41, 0x1C, 0x0E, 0x7F, 0x1E, 0xC0, 0x7C, 0x0E, 0x38, 0x7E, 0x38, 0x70, 0xF8, 0x07, 0x9F, 0xFF, 0xC1, 0x1D, 0x0E, 0x7F, 0x1E, 0xC0, 0x78, 0x0E, 0x38, 0x7E, 0x38, 0x70, 0x38, 0x0F, 0x9F, 0xFF, 0xC1, 0xFF, 0x3F, 0x7F, 0x1E, 0xC0, 0x78, 0x0E, 0x38, 0x7C, 0x38, 0x70, 0x38, 0x0F, 0x9F, 0x99, 0xE1, 0xFE, 0x3F, 0x00, 0x1E, 0xC0, 0x38, 0x0E, 0x38, 0x7C, 0x38, 0x70, 0x38, 0x1E, 0x9D, 0x99, 0xE1, 0xFE, 0x3F, 0x00, 0x1E, 0xC0, 0x30, 0x0E, 0x38, 0x7C, 0x38, 0x70, 0x38, 0x1E, 0x9D, 0xFF, 0xE1, 0x18, 0x03, 0x00, 0x1E, 0xC0, 0x00, 0x0E, 0x38, 0x78, 0x38, 0x70, 0x38, 0x3C, 0x9C, 0xFF, 0x61, 0x3C, 0x07, 0x00, 0x1E, 0xC0, 0x00, 0x0E, 0x38, 0x78, 0x38, 0x70, 0x38, 0x3C, 0x1C, 0xC3, 0x70, 0x1E, 0x0F, 0x00, 0x1E, 0xC0, 0x00, 0x0E, 0x38, 0x70, 0x38, 0x70, 0x38, 0x78, 0xDC, 0xE3, 0x73, 0x1F, 0x3E, 0x00, 0x1E, 0xC0, 0x00, 0x0E, 0x38, 0x70, 0x38, 0x70, 0x38, 0x78, 0xFC, 0xC3, 0xF7, 0x0F, 0x3C, 0x00, 0x1E, 0xC0, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x81, 0x33, 0x03, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
const unsigned char nhktokyofm[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x38, 0x1C, 0x78, 0x3C, 0x78, 0xFF, 0xFF, 0xE3, 0xFF, 0x7F, 0x00, 0xF8, 0x3F, 0x0F, 0x78, 0x3E, 0x38, 0x1C, 0x78, 0x3C, 0x38, 0xFF, 0xFF, 0xE3, 0xFF, 0x7F, 0x00, 0xF8, 0x3F, 0x0F, 0x7C, 0x3E, 0x38, 0x1C, 0x78, 0x3C, 0x3C, 0xFF, 0xFF, 0xE3, 0xFF, 0x7F, 0x00, 0xF8, 0x3F, 0x0F, 0x7C, 0x7E, 0x38, 0x1C, 0x78, 0x3C, 0x1C, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x1F, 0x7C, 0x7E, 0x38, 0x1C, 0x78, 0x3C, 0x1E, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x1F, 0x7C, 0x7E, 0x38, 0x1C, 0x78, 0x3C, 0x0E, 0xFC, 0xFF, 0xC1, 0xFF, 0x1F, 0x00, 0x38, 0x00, 0x1F, 0x7E, 0xFE, 0x38, 0x1C, 0x78, 0x3C, 0x0F, 0xFC, 0xFF, 0xC1, 0xFF, 0x1F, 0x00, 0x38, 0x00, 0x1F, 0x7E, 0xFE, 0x38, 0x1C, 0x78, 0x3C, 0x07, 0x9C, 0xC7, 0xC1, 0xFF, 0x1F, 0x00, 0x38, 0x00, 0x3F, 0x7E, 0xEE, 0x39, 0x1C, 0x78, 0xBC, 0x07, 0x0C, 0xC7, 0xC1, 0x01, 0x1C, 0x00, 0x38, 0x00, 0x3F, 0x7F, 0xCE, 0x39, 0x1C, 0x78, 0xBC, 0x03, 0xFC, 0xFF, 0xC1, 0x01, 0x1C, 0x00, 0xF8, 0x1F, 0x37, 0x7F, 0xCE, 0x39, 0xFC, 0x7F, 0xFC, 0x01, 0xFC, 0xFF, 0xC1, 0x01, 0x1C, 0x00, 0xF8, 0x1F, 0x77, 0x7B, 0xCE, 0x3B, 0xFC, 0x7F, 0xFC, 0x01, 0xFC, 0xFF, 0xC1, 0x01, 0x1C, 0x00, 0xF8, 0x1F, 0xF7, 0x7B, 0x8E, 0x3B, 0xFC, 0x7F, 0xFC, 0x03, 0x0C, 0xC7, 0xC1, 0xFF, 0x1F, 0xFE, 0xF8, 0x1F, 0xF7, 0x7B, 0x8E, 0x3B, 0xFC, 0x7F, 0xFC, 0x07, 0x1C, 0xC7, 0xC1, 0xFF, 0x1F, 0xFE, 0x38, 0x00, 0xE7, 0x79, 0x8E, 0x3F, 0x1C, 0x78, 0xFC, 0x07, 0xFC, 0xFF, 0xC1, 0xFF, 0x1F, 0xFE, 0x38, 0x00, 0xE7, 0x79, 0x0E, 0x3F, 0x1C, 0x78, 0xBC, 0x07, 0xFC, 0xFF, 0x01, 0xF2, 0x06, 0xFE, 0x38, 0x00, 0xE7, 0x79, 0x0E, 0x3F, 0x1C, 0x78, 0x3C, 0x0F, 0xE0, 0x1F, 0x00, 0x72, 0x06, 0x00, 0x38, 0x00, 0xC7, 0x79, 0x0E, 0x3E, 0x1C, 0x78, 0x3C, 0x0F, 0xE0, 0x1F, 0x00, 0x77, 0x0F, 0x00, 0x38, 0x00, 0xC7, 0x78, 0x0E, 0x3E, 0x1C, 0x78, 0x3C, 0x1E, 0xF0, 0x3F, 0x80, 0x77, 0x0E, 0x00, 0x38, 0x00, 0x07, 0x78, 0x0E, 0x3E, 0x1C, 0x78, 0x3C, 0x1E, 0xF8, 0x7F, 0x80, 0x73, 0x1E, 0x00, 0x38, 0x00, 0x07, 0x78, 0x0E, 0x3C, 0x1C, 0x78, 0x3C, 0x3C, 0x7E, 0xF7, 0xC1, 0x71, 0x3C, 0x00, 0x38, 0x00, 0x07, 0x78, 0x0E, 0x3C, 0x1C, 0x78, 0x3C, 0x3C, 0x3F, 0xE7, 0xE7, 0x71, 0x78, 0x00, 0x38, 0x00, 0x07, 0x78, 0x0E, 0x3C, 0x1C, 0x78, 0x3C, 0x78, 0x0F, 0xC7, 0xF7, 0x7C, 0x70, 0x00, 0x38, 0x00, 0x07, 0x78, 0x0E, 0x38, 0x1C, 0x78, 0x3C, 0xF8, 0x07, 0x87, 0x77, 0x7C, 0x70, 0x00, 0x38, 0x00, 0x07, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x22, 0x7C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
const unsigned char fmyokohama[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x70, 0xCF, 0x03, 0x1C, 0x0C, 0x0F, 0xC6, 0xE1, 0xC3, 0x3D, 0xFC, 0x70, 0xCF, 0xC3, 0x0F, 0x1C, 0xF0, 0xFF, 0x07, 0x1C, 0x8E, 0x1F, 0xC6, 0xF1, 0xC7, 0x7F, 0xFC, 0xF1, 0xFF, 0xC7, 0x1F, 0x1C, 0xF0, 0xFF, 0x07, 0x18, 0xCE, 0x3F, 0xC6, 0xF0, 0xC7, 0x7F, 0xFC, 0xF1, 0xFF, 0xC7, 0x1F, 0xFC, 0x73, 0x3C, 0x07, 0x18, 0xC6, 0x39, 0xE6, 0x38, 0xCE, 0x71, 0x84, 0xF3, 0x3C, 0x47, 0x38, 0xFC, 0x73, 0x1C, 0x07, 0x38, 0xE6, 0x30, 0xE6, 0x38, 0xCE, 0x71, 0x80, 0x73, 0x1C, 0x07, 0x38, 0xFC, 0x73, 0x1C, 0x07, 0x38, 0xE6, 0x70, 0x76, 0x18, 0xCC, 0x61, 0x80, 0x73, 0x1C, 0x06, 0x38, 0x1C, 0x70, 0x1C, 0x06, 0x38, 0xE7, 0x70, 0x76, 0x18, 0xCC, 0x61, 0xE0, 0x73, 0x1C, 0x06, 0x3E, 0x1C, 0x70, 0x1C, 0x06, 0x30, 0xE3, 0x70, 0x7E, 0x18, 0xCC, 0x61, 0xF8, 0x73, 0x1C, 0x86, 0x3F, 0x1C, 0x70, 0x1C, 0x06, 0x30, 0xE3, 0x70, 0x7E, 0x18, 0xCC, 0x61, 0xFC, 0x73, 0x1C, 0xC6, 0x3F, 0x1C, 0x70, 0x1C, 0x06, 0x70, 0xE3, 0x70, 0x7E, 0x18, 0xCC, 0x61, 0x8E, 0x73, 0x1C, 0xE6, 0x38, 0x1C, 0x70, 0x1C, 0x06, 0xF0, 0xE3, 0x70, 0xEE, 0x18, 0xCC, 0x61, 0x8E, 0x73, 0x1C, 0xE6, 0x38, 0x1C, 0x70, 0x1C, 0x06, 0xE0, 0xE3, 0x70, 0xE6, 0x38, 0xCE, 0x61, 0x8E, 0x73, 0x1C, 0xE6, 0x38, 0x1C, 0x70, 0x1C, 0x06, 0xE0, 0xC1, 0x39, 0xC6, 0x38, 0xCE, 0x61, 0x8E, 0x73, 0x1C, 0xE6, 0x38, 0x1C, 0x70, 0x1C, 0x06, 0xE0, 0xC1, 0x3F, 0xC6, 0xF1, 0xCF, 0x61, 0xFE, 0x73, 0x1C, 0xE6, 0x3F, 0x1C, 0x70, 0x1C, 0x06, 0xE0, 0xC1, 0x3F, 0xC6, 0xF1, 0xC7, 0x61, 0xFE, 0x73, 0x1C, 0xE6, 0x3F, 0x1C, 0x70, 0x1C, 0x06, 0xE0, 0x81, 0x1F, 0x86, 0xE3, 0xC3, 0x61, 0xBC, 0x73, 0x1C, 0xC6, 0x3B, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
const unsigned char interfm897[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xE7, 0x01, 0x0E, 0x78, 0x00, 0x1E, 0xF8, 0x3F, 0xFE, 0x01, 0x00, 0x1C, 0x00, 0x00, 0x00, 0xFE, 0xE7, 0x01, 0x0F, 0xFC, 0x81, 0x3F, 0xF8, 0x3F, 0xFE, 0x01, 0x00, 0x1C, 0x00, 0x00, 0x00, 0xFE, 0xE7, 0x03, 0x0F, 0xFE, 0x83, 0x7F, 0xF8, 0x3F, 0xFE, 0x01, 0x00, 0x1C, 0x00, 0x00, 0x00, 0xFE, 0xE7, 0x03, 0x0F, 0xFF, 0xC3, 0x7F, 0xF8, 0x3F, 0x70, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x0E, 0xE0, 0x03, 0x0F, 0x8F, 0xC3, 0xF1, 0x00, 0x38, 0x70, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x0E, 0xE0, 0x83, 0x0F, 0x87, 0xE7, 0xE1, 0x00, 0x38, 0x70, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x0E, 0xE0, 0x87, 0x0F, 0x07, 0xE7, 0xE0, 0x00, 0x3C, 0x70, 0x70, 0x1C, 0xFE, 0xC1, 0x83, 0x63, 0x0E, 0xE0, 0x87, 0x0F, 0x07, 0xE7, 0xE0, 0x00, 0x3C, 0x70, 0x70, 0x3F, 0xFE, 0xF1, 0x87, 0x73, 0x0E, 0xE0, 0xC7, 0x0F, 0x07, 0xE7, 0xE0, 0x00, 0x1C, 0x70, 0xF0, 0x3F, 0xFE, 0xF1, 0x8F, 0x7B, 0x0E, 0xE0, 0xCF, 0x0F, 0x8F, 0xE3, 0xE0, 0x00, 0x1C, 0x70, 0xF0, 0x3F, 0xFE, 0x39, 0x8E, 0x7F, 0x0E, 0xE0, 0xCE, 0x0F, 0x9F, 0xE3, 0xE0, 0x00, 0x1E, 0x70, 0xF0, 0x38, 0x1C, 0x18, 0x8E, 0x7F, 0xFE, 0xE7, 0xCE, 0x0E, 0xFF, 0xE1, 0xE0, 0x01, 0x0E, 0x70, 0x70, 0x78, 0x1C, 0x1C, 0x9C, 0x07, 0xFE, 0xE7, 0xEC, 0x0E, 0xFE, 0xE1, 0xE1, 0x01, 0x0E, 0x70, 0x70, 0x70, 0x1C, 0x1C, 0x9C, 0x03, 0xFE, 0xE7, 0xFC, 0x0E, 0xFC, 0xE1, 0xE1, 0x01, 0x0F, 0x70, 0x70, 0x70, 0x1C, 0x1C, 0x9C, 0x03, 0xFE, 0xE7, 0xFC, 0x0E, 0xFE, 0xC3, 0xFF, 0x00, 0x0F, 0x70, 0x70, 0x70, 0x1C, 0xFC, 0x9F, 0x03, 0x0E, 0xE0, 0x7C, 0x0E, 0xE7, 0xC3, 0xFF, 0x00, 0x07, 0x70, 0x70, 0x70, 0x1C, 0xFC, 0x9F, 0x03, 0x0E, 0xE0, 0x78, 0x0E, 0xC7, 0x87, 0xFF, 0x80, 0x07, 0x70, 0x70, 0x70, 0x1C, 0xFC, 0x9F, 0x03, 0x0E, 0xE0, 0x78, 0x8E, 0x87, 0x07, 0xE7, 0x80, 0x07, 0x70, 0x70, 0x70, 0x1C, 0x1C, 0x80, 0x03, 0x0E, 0xE0, 0x78, 0x8E, 0x03, 0x07, 0xE0, 0x80, 0x03, 0x70, 0x70, 0x70, 0x1C, 0x1C, 0x80, 0x03, 0x0E, 0xE0, 0x38, 0x8E, 0x03, 0x07, 0xE0, 0x80, 0x03, 0x70, 0x70, 0x70, 0x1C, 0x1C, 0x80, 0x03, 0x0E, 0xE0, 0x30, 0x8E, 0x03, 0x07, 0xE0, 0xC0, 0x03, 0x70, 0x70, 0x70, 0x1C, 0x1C, 0x80, 0x03, 0x0E, 0xE0, 0x00, 0x8E, 0x07, 0x07, 0x70, 0xC0, 0x01, 0x70, 0x70, 0x70, 0x1C, 0x3C, 0x90, 0x03, 0x0E, 0xE0, 0x00, 0x8E, 0x87, 0x07, 0x70, 0xC0, 0x01, 0x70, 0x70, 0x70, 0x3C, 0x78, 0x9C, 0x03, 0x0E, 0xE0, 0x00, 0x0E, 0x8F, 0x47, 0x78, 0xE0, 0x01, 0xFE, 0x71, 0x70, 0xFC, 0xF9, 0x9F, 0x03, 0x0E, 0xE0, 0x00, 0x0E, 0xFF, 0xC3, 0x3F, 0xE0, 0x01, 0xFE, 0x71, 0x70, 0xF8, 0xF1, 0x9F, 0x03, 0x0E, 0xE0, 0x00, 0x0E, 0xFE, 0xC3, 0x3F, 0xE0, 0x00, 0xFE, 0x71, 0x70, 0xF8, 0xF1, 0x8F, 0x03, 0x0E, 0xE0, 0x00, 0x0E, 0xFE, 0xC1, 0x1F, 0xF0, 0x00, 0xFE, 0x71, 0x70, 0xF0, 0xC0, 0x83, 0x03, 0x0E, 0xE0, 0x00, 0x0E, 0x78, 0xC0, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
const unsigned char jwave[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x80, 0x1F, 0xE0, 0x03, 0x3C, 0x00, 0x1F, 0xC0, 0x07, 0x80, 0x8F, 0xFF, 0x3F, 0xF0, 0x3F, 0x00, 0x00, 0x1F, 0xF0, 0x03, 0x3E, 0x80, 0x3F, 0xC0, 0x07, 0x80, 0x87, 0xFF, 0x3F, 0xF0, 0x3F, 0x00, 0x00, 0x1F, 0xF0, 0x03, 0x3E, 0x80, 0x3F, 0xC0, 0x0F, 0xC0, 0x87, 0xFF, 0x3F, 0xF0, 0x3F, 0x00, 0x00, 0x1F, 0xF0, 0x03, 0x3E, 0x80, 0x3F, 0x80, 0x0F, 0xC0, 0x87, 0xFF, 0x3F, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0xF0, 0x07, 0x3E, 0xC0, 0x3F, 0x80, 0x0F, 0xC0, 0x83, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1E, 0xF8, 0x07, 0x1E, 0xC0, 0x7F, 0x80, 0x0F, 0xE0, 0x83, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0xF8, 0x07, 0x1F, 0xC0, 0x7F, 0x00, 0x1F, 0xE0, 0x83, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0xF8, 0x07, 0x1F, 0xE0, 0x7F, 0x00, 0x1F, 0xE0, 0x83, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3E, 0xF8, 0x07, 0x1F, 0xE0, 0xFB, 0x00, 0x1F, 0xF0, 0x81, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x3C, 0xFC, 0x0F, 0x0F, 0xE0, 0xF9, 0x00, 0x3E, 0xF0, 0x81, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x3C, 0x8F, 0x0F, 0xE0, 0xF9, 0x00, 0x3E, 0xF0, 0x81, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x3C, 0x8F, 0x0F, 0xF0, 0xF1, 0x00, 0x3E, 0xF0, 0x80, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x3C, 0x8F, 0x0F, 0xF0, 0xF1, 0x01, 0x7C, 0xF8, 0x80, 0xFF, 0x3F, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x3E, 0x8F, 0x0F, 0xF0, 0xF0, 0x01, 0x7C, 0xF8, 0x80, 0xFF, 0x3F, 0x00, 0x3E, 0xFC, 0x1F, 0x78, 0x1E, 0x9F, 0x07, 0xF8, 0xF0, 0x01, 0x7C, 0x78, 0x80, 0xFF, 0x3F, 0x00, 0x3E, 0xFC, 0x1F, 0xF8, 0x1E, 0xDE, 0x07, 0xF8, 0xE0, 0x03, 0x78, 0x7C, 0x80, 0xFF, 0x3F, 0x00, 0x3E, 0xFC, 0x1F, 0xF8, 0x1E, 0xDE, 0x07, 0x78, 0xE0, 0x03, 0xF8, 0x7C, 0x80, 0x0F, 0x00, 0x00, 0x3E, 0xFC, 0x1F, 0xF8, 0x1F, 0xFE, 0x07, 0x7C, 0xE0, 0x03, 0xF8, 0x3C, 0x80, 0x0F, 0x00, 0x00, 0x3E, 0xFC, 0x1F, 0xF0, 0x0F, 0xFC, 0x03, 0xFC, 0xFF, 0x07, 0xF8, 0x3C, 0x80, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xF0, 0x0F, 0xFC, 0x03, 0xFC, 0xFF, 0x07, 0xF0, 0x3F, 0x80, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xF0, 0x0F, 0xFC, 0x03, 0xFC, 0xFF, 0x07, 0xF0, 0x3F, 0x80, 0x0F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0xF0, 0x0F, 0xFC, 0x03, 0xFE, 0xFF, 0x07, 0xF0, 0x1F, 0x80, 0x0F, 0x00, 0x00, 0x3F, 0x00, 0x00, 0xF0, 0x0F, 0xFC, 0x01, 0x3E, 0x80, 0x0F, 0xE0, 0x1F, 0x80, 0x0F, 0x00, 0x06, 0x3F, 0x00, 0x00, 0xE0, 0x07, 0xF8, 0x01, 0x3E, 0x80, 0x0F, 0xE0, 0x1F, 0x80, 0x0F, 0x00, 0xFE, 0x1F, 0x00, 0x00, 0xE0, 0x07, 0xF8, 0x01, 0x1F, 0x80, 0x0F, 0xE0, 0x0F, 0x80, 0xFF, 0x3F, 0xFE, 0x0F, 0x00, 0x00, 0xE0, 0x07, 0xF8, 0x01, 0x1F, 0x00, 0x1F, 0xC0, 0x0F, 0x80, 0xFF, 0x3F, 0xFE, 0x07, 0x00, 0x00, 0xE0, 0x07, 0xF8, 0x00, 0x1F, 0x00, 0x1F, 0xC0, 0x0F, 0x80, 0xFF, 0x3F, 0xFC, 0x01, 0x00, 0x00, 0xC0, 0x03, 0xF0, 0x80, 0x0F, 0x00, 0x1F, 0xC0, 0x07, 0x80, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
const unsigned char tokyofm[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xC0, 0x07, 0xF0, 0x80, 0xFF, 0x80, 0x07, 0x7C, 0x00, 0x00, 0xFF, 0xCF, 0x03, 0x78, 0xFE, 0xFF, 0xE0, 0x1F, 0xF0, 0xC0, 0xF7, 0x80, 0x07, 0xFE, 0x01, 0x00, 0xFF, 0xCF, 0x07, 0x78, 0xFE, 0xFF, 0xF0, 0x3F, 0xF0, 0xC0, 0xF3, 0x80, 0x07, 0xFF, 0x03, 0x00, 0xFF, 0xCF, 0x07, 0x7C, 0xFE, 0xFF, 0xF8, 0x7F, 0xF0, 0xE0, 0xF1, 0xC1, 0x83, 0xFF, 0x07, 0x00, 0xFF, 0xCF, 0x07, 0x7C, 0xC0, 0x03, 0x7C, 0x78, 0xF0, 0xE0, 0xE1, 0xC1, 0xC3, 0xC7, 0x07, 0x00, 0x07, 0xC0, 0x0F, 0x7C, 0xC0, 0x03, 0x3C, 0xF0, 0xF0, 0xF0, 0xE0, 0xC1, 0xC1, 0x83, 0x0F, 0x00, 0x07, 0xC0, 0x0F, 0x7E, 0xC0, 0x03, 0x3C, 0xF0, 0xF0, 0xF0, 0xC0, 0xE3, 0xE1, 0x03, 0x0F, 0x00, 0x07, 0xC0, 0x0F, 0x7E, 0xC0, 0x03, 0x1E, 0xE0, 0xF1, 0x78, 0xC0, 0xE3, 0xE1, 0x01, 0x0F, 0x00, 0x07, 0xC0, 0x1F, 0x7E, 0xC0, 0x03, 0x1E, 0xE0, 0xF1, 0x78, 0xC0, 0xE3, 0xE0, 0x01, 0x1E, 0x00, 0x07, 0xC0, 0x1F, 0x7F, 0xC0, 0x03, 0x1E, 0xE0, 0xF1, 0x3C, 0x80, 0xF7, 0xE0, 0x01, 0x1E, 0x00, 0x07, 0xC0, 0x1F, 0x7F, 0xC0, 0x03, 0x1E, 0xE0, 0xF1, 0x3C, 0x80, 0xF7, 0xE0, 0x01, 0x1E, 0x00, 0x07, 0xC0, 0x1F, 0x7F, 0xC0, 0x03, 0x1E, 0xE0, 0xF1, 0x1E, 0x80, 0x7F, 0xE0, 0x00, 0x1E, 0x00, 0xFF, 0xC7, 0x3D, 0x7B, 0xC0, 0x03, 0x0E, 0xC0, 0xF1, 0x1F, 0x00, 0x7F, 0xE0, 0x00, 0x1E, 0x00, 0xFF, 0xC7, 0xB9, 0x7B, 0xC0, 0x03, 0x0E, 0xC0, 0xF1, 0x1F, 0x00, 0x7F, 0xF0, 0x00, 0x1E, 0x00, 0xFF, 0xC7, 0xB9, 0x7B, 0xC0, 0x03, 0x0E, 0xC0, 0xF1, 0x1F, 0x00, 0x3F, 0xF0, 0x00, 0x1E, 0x00, 0xFF, 0xC7, 0xF9, 0x7B, 0xC0, 0x03, 0x0E, 0xC0, 0xF1, 0x3F, 0x00, 0x3E, 0xE0, 0x00, 0x1E, 0x00, 0x07, 0xC0, 0xF1, 0x79, 0xC0, 0x03, 0x1E, 0xE0, 0xF1, 0x3F, 0x00, 0x1E, 0xE0, 0x00, 0x1E, 0x00, 0x07, 0xC0, 0xF1, 0x79, 0xC0, 0x03, 0x1E, 0xE0, 0xF1, 0x7D, 0x00, 0x1E, 0xE0, 0x01, 0x1E, 0x00, 0x07, 0xC0, 0xF1, 0x79, 0xC0, 0x03, 0x1E, 0xE0, 0xF1, 0x7C, 0x00, 0x1C, 0xE0, 0x01, 0x1E, 0x00, 0x07, 0xC0, 0xE1, 0x78, 0xC0, 0x03, 0x1E, 0xE0, 0xF1, 0xF8, 0x00, 0x1C, 0xE0, 0x01, 0x1E, 0x00, 0x07, 0xC0, 0xE1, 0x78, 0xC0, 0x03, 0x1E, 0xE0, 0xF1, 0xF8, 0x00, 0x1C, 0xE0, 0x01, 0x0F, 0x00, 0x07, 0xC0, 0xE1, 0x78, 0xC0, 0x03, 0x3C, 0xF0, 0xF0, 0xF0, 0x01, 0x1C, 0xE0, 0x03, 0x0F, 0x00, 0x07, 0xC0, 0x01, 0x78, 0xC0, 0x03, 0x3C, 0xF0, 0xF0, 0xF0, 0x01, 0x1C, 0xC0, 0x83, 0x0F, 0x00, 0x07, 0xC0, 0x01, 0x78, 0xC0, 0x03, 0x7C, 0x78, 0xF0, 0xE0, 0x03, 0x1C, 0xC0, 0xC7, 0x07, 0x00, 0x07, 0xC0, 0x01, 0x78, 0xC0, 0x03, 0xF8, 0x7F, 0xF0, 0xE0, 0x03, 0x1C, 0x80, 0xFF, 0x07, 0x00, 0x07, 0xC0, 0x01, 0x78, 0xC0, 0x03, 0xF0, 0x3F, 0xF0, 0xC0, 0x07, 0x1C, 0x00, 0xFF, 0x03, 0x00, 0x07, 0xC0, 0x01, 0x78, 0xC0, 0x03, 0xE0, 0x1F, 0xF0, 0xC0, 0x07, 0x1C, 0x00, 0xFE, 0x01, 0x00, 0x07, 0xC0, 0x01, 0x78, 0xC0, 0x03, 0xC0, 0x07, 0xF0, 0x80, 0x0F, 0x1C, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x01, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };

void setup(void) {
  u8g.setColorIndex(1);
}

void loop(void) {
// アナログピンからデータ取得
int analog_value = analogRead(analog_pin);
// 電圧換算値:未使用
// vol_value = ((5.0 * analogdata) / 1024) * 100;
//OLED描画
  u8g.firstPage();
  do {
//analog_value描画(0~1023)
    u8g.setFont(u8g_font_fub25);
    u8g.setPrintPos(50, 27);
    u8g.print(analog_value);

//チャンネル番号と局名の描画
if ((analog_value >= 80) && (analog_value <= 110)) {
     u8g.setFont(u8g_font_fub25);
     u8g.drawStr(0,27,"1");
     u8g.drawStr(0,60,"bayfm");  //フォント表示
   }else if ((analog_value >= 136) && (analog_value <= 150)) {
     u8g.setFont(u8g_font_fub25);
     u8g.drawStr(0,27,"2");
     u8g.drawStr(0,60,"NACK5");  //フォント表示
   }else if ((analog_value >= 190) && (analog_value <= 202)) {
     u8g.setFont(u8g_font_fub25);
     u8g.drawStr(0,27,"3");
             u8g.drawXBMP( 0, 32, 128, 30, tokyofm);  //128x30ビットマップ
   }else if ((analog_value >= 226) && (analog_value <= 236)) {
     u8g.setFont(u8g_font_fub25);
     u8g.drawStr(0,27,"4");
             u8g.drawXBMP( 0, 32, 128, 30, nhkyokohamafm);  //128x30ビットマップ
   }else if ((analog_value >= 366) && (analog_value <= 382)) {
     u8g.setFont(u8g_font_fub25);
     u8g.drawStr(0,27,"5");
             u8g.drawXBMP( 0, 32, 128, 30, jwave);  //128x30ビットマップ
   }else if ((analog_value >= 512) && (analog_value <= 528)) {
     u8g.setFont(u8g_font_fub25);
     u8g.drawStr(0,27,"6");
             u8g.drawXBMP( 0, 32, 128, 30, nhktokyofm);  //128x30ビットマップ
   }else if ((analog_value >= 582) && (analog_value <= 616)) {
     u8g.setFont(u8g_font_fub25);
     u8g.drawStr(0,27,"7");
             u8g.drawXBMP( 0, 32, 128, 30, fmyokohama);  //128x30ビットマップ
   }else if ((analog_value >= 710) && (analog_value <= 728)) {
     u8g.setFont(u8g_font_fub25);
     u8g.drawStr(0,27,"8");
             u8g.drawXBMP( 0, 32, 128, 30, interfm897);  //128x30ビットマップ
   }
     } while ( u8g.nextPage() );
delay(500);
}

FM補完放送局(ワイドFM)のFM局名を表示(2022/06/26追加)

FM WIDE SELECTORのプッシュスイッチにも空き端子が一箇所ありました(このページをご覧いただいた方からご連絡いただきました)。

この空き端子から分圧抵抗2個で信号レベルを電圧調整してArduino nanoのデジタルピンにジャンパーワイヤで結線。プッシュスイッチの状態(ON、OFF)をデジタルピンの(HIGH、LOW)から取得してIF文でワイドFMが選択されたことを判別して処理分岐します。

あわせて読みたい
Arduinoと小型ディスプレイ(OLED)を使ってラックスマンFMチューナーキットLXV-OT8の受信中のFM局名を表... FM WIDE SELECTORスイッチの空き端子を使ってFM補完放送局(ワイドFM、AM放送がFMで聴けます)のFM局名表示を追加しました。この空き端子から分圧抵抗2個で信号レベルを...
よかったらシェアしてね!
  • URLをコピーしました!
目次