PR 記事には広告が含まれています
スポンサーリンク
Translate

オリジナル7セグのシアン色LED NTP時計が完成しました!!

スポンサーリンク

プログラムを作り、レーザーカッターで部材を切り出して、シアン色のLED時計が完成しました。記事の最後にプレゼントもありますので、最後まで楽しんでいただければと思います。

前回の記事はこちら「シアン色LED時計の両面基板を組み立てました」です。

スポンサーリンク

プログラムの修正

試作の回路では、74HC595とP-MOS FETによるダイナミック点灯だったので、ネオピクセルインタフェースLEDドライバICのTM1926用にプログラムを修正します。

おおおおお!時間が表示されました。

スポンサーリンク

レーザーカッターで部材を切り出す

7セグメントマスクを切り出す

レーザーカッターで、7セグメントのマスクをMDFから切り出します。

たくさん切り出せました。使っているレーザーカッターEtcher Laser Proはカメラを搭載していて、その画像から切り出す場所を指定することができます。そのため、上の写真のようなカット済みの板でも、空いているところを狙って必要な部材を切り出すことができます。

おおお7セグメントっぽくなりました。

拡散シートの切り出し

続いて、拡散シートを切り出します。普通のA4のコピー用紙を、基板の形状に合わせてレーザーカッターでカットします。

拡散シートが切り出せました。

アクリルカバーの切り出し

続いてアクリルパネルを切り出します。

カットが終わりました。

スポンサーリンク

組み立て

切り出した、7セグメントマスクと、拡散シートと、アクリルカバーを基板に取り付けます。

おおおお!!7セグメント時計になりましたよ。写真では色が正しく伝わらないのが残念ですが、シアン色がとても綺麗です。

スポンサーリンク

たまに表示が乱れる

たまにというか、かなりの頻度で点灯していないセグメントが、一瞬光るという現象が発生します。

送信しているデータが正しいかチェックしてみたのですが、問題ありませんでした。

ネオピクセルインタフェースのデータを送信中に、割り込みが発生して送信中のデータがおかしくなってしまい、LEDドライバに正しいデータが伝わっていないと考えました。

xTaskCreatePinnedToCore(dispLED, "dispLED", 4096, NULL, 24, &taskHandle[dispLEDTask], 0);
...
void dispLED(void* arg) {
  while (1) {
    convTime2NeoPixelData();
    uint8_t n = 0;
    for (uint8_t i = 0; i < NUMPIXELS * 3; i += 3) {
      pixels.setPixelColor(n, neoPixelData[i + 0], neoPixelData[i + 1], neoPixelData[i + 2]);
      n++;
    }
    vTaskSuspend(taskHandle[ambientLightTask]);
    vTaskSuspend(taskHandle[updateTimeTask]);
    pixels.show();
    vTaskResume(taskHandle[updateTimeTask]);
    vTaskResume(taskHandle[ambientLightTask]);
    delay(20);
  }
}
</pre.

LEDドライバにデータを送信する処理は、タスクで動作しています。そこで、上のプログラムの1行目のように、タスクの優先度を一番高い24に設定しました。

これでも、たまに表示が乱れます。

そこで、LEDドライバにデータを送信中は、他のタスクを全て一旦止めるようにしました。上のプログラムの11,12行です。表示のタスクの他に2つのタスクが動いていたのですが、これを一旦停止します。そして、13行目でLEDドライバにデータを送信し、14,15行目でタスクを再開しています。

これで、かなり乱れなくなりましたが、たまに、ほんとにたまに乱れます。

使っているマイコンESP32 C3はシングルコアで、時計のプログラムの他に、WiFiの処理が自動で動いています。このためWiFiの処理とLEDドライバへのデータ送信が被ってしまうと、送信中のデータが壊れて表示が乱れるという現象になっているのではないかと考えています。

WiFi処理を止めることができないので、どうしようもありません。2コア入っているESP32 S3であれば、WiFiがコア0で処理されているので、LEDドライバへの通信をコア1で行えば、表示の乱れは発生しないのでしょうね。

スポンサーリンク

 シアン色LED NTP時計大プレゼント

UVプリント基板を作ってくれたPCBWay様のご協力により、今回制作したシアン色LED NTP時計キットを先着10名の方にプレゼントいたします。

PCBWayはビックサイトで開催されるJPCA Show 2025に出展します。期日は2025年6月4日〜6日です。

PCBWayの情報ページより転載
PCBWayは、基板製造・組立からCNC加工、3Dプリント、電子設計支援までを提供するワンストップサービス企業です。高品質・短納期対応で、個人開発者から企業まで幅広く支持されています。今回は人気のPCBサービスに加え、新しいデザイン支援サービスもご紹介。プロトタイプ開発や電子工作に関心のある方は、ぜひブース【6G-10】へお越しください!

事前登録することで無料で入場できます。個人でも大丈夫です。お時間がございましたら足を運んでみてはいかがでしょうか。

JPCA情報終わり

是非プレゼントにご応募いただいて、495nmの特殊なシアン色LEDの色と、UVプリントによるシアン色シルク印刷を楽しんでいただければと思います。部品は実装済みなので、はんだ付けは不要です。

ご希望の方は、下記サイトよりご応募ください。発送先は送料の関係で、日本国内のみとさせていただきます。ご応募から数日で発送いたします。

2025.6.5 上限に達したためご応募は終了しました
たくさんのご応募ありがとうございました

組み立て方や使い方は「シアン色LED NTP時計キットの組み立て方と使い方」をご覧ください。

皆様のご応募お待ちしております。

時計に使っているシアン色LEDはこちらで販売しております。よかったらどうぞ。

495nmシアン色3mmLED
特別に作ってもらった鉄道信号の青色のような色に発光するLEDです。
495nmシアン色チップLED
特別に作ってもらった鉄道信号の青色のような色に発光するチップLEDです。