工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduinoで作るニキシー管時計:ステップバイステップガイド

必要な部品と材料

部品数量
Arduino UNO1
ニキシー管(IN-12等)6本
フォトカプラ TLP6276個
DC-DCステップアップモジュール(12V→390V)1
ブレッドボード1
RTCモジュール DS32311

電子部品の購入は UTSOURCE が便利です。

プロジェクト概要

長年の試行錯誤の末、Arduinoとフォトカプラのみでニキシー管時計の製作に成功しました。専用ドライバIC(入手困難)を使わず、フォトカプラで高電圧駆動を制御します。詳細な製作動画も公開しています。

ステップ1:回路設計

Arduinoで作るニキシー管時計:ステップバイステップガイド

フォトカプラ(TLP627)でArduinoの5Vロジックからニキシー管の150V駆動を絶縁制御します。マトリクス接続により、Arduinoの16出力ピンで6本×10個(計60個)のグロー放電を制御。DS3231 RTCモジュールでI2C通信により時刻を保持(バックアップ電池対応)。Arduinoが時刻を読み取り、高速で各桁を順次点灯させるダイナミック点灯で、6桁が同時に点灯しているように見せます。

ステップ2:Arduinoコード

// Youtube channel: engineer2you
#include <Wire.h>
#include "DS3231.h"
RTClib RTC;
DS3231 Clock;
int hour, minute, second;
const int nixie_0 = 2;  const int nixie_1 = 3;  const int nixie_2 = 4;
const int nixie_3 = 5;  const int nixie_4 = 6;  const int nixie_5 = 7;
const int nixie_6 = 8;  const int nixie_7 = 9;  const int nixie_8 = 10;
const int nixie_9 = 11;
const int row_1 = 0;  const int row_2 = 1;  const int row_3 = 14;
const int row_4 = 15;  const int row_5 = 16;  const int row_6 = 17;
const int time_on = 2;

void setup() {
  pinMode(nixie_0, OUTPUT); pinMode(nixie_1, OUTPUT); pinMode(nixie_2, OUTPUT);
  pinMode(nixie_3, OUTPUT); pinMode(nixie_4, OUTPUT); pinMode(nixie_5, OUTPUT);
  pinMode(nixie_6, OUTPUT); pinMode(nixie_7, OUTPUT); pinMode(nixie_8, OUTPUT);
  pinMode(nixie_9, OUTPUT);
  pinMode(row_1, OUTPUT); pinMode(row_2, OUTPUT); pinMode(row_3, OUTPUT);
  pinMode(row_4, OUTPUT); pinMode(row_5, OUTPUT); pinMode(row_6, OUTPUT);
  // Serial.begin(9600); // D0/D1使用時はシリアル不可
  Wire.begin();
}

void loop() {
  DateTime now = RTC.now();
  hour = now.hour(); minute = now.minute(); second = now.second();

  int j, k;
  // 秒の表示
  j = second / 10; k = second % 10;
  off_all(); on_number(0, k+2); delay(time_on);
  off_all(); on_number(1, j+2); delay(time_on);
  // 分の表示
  j = minute / 10; k = minute % 10;
  off_all(); on_number(14, k+2); delay(time_on);
  off_all(); on_number(15, j+2); delay(time_on);
  // 時の表示
  j = hour / 10; k = hour % 10;
  off_all(); on_number(16, k+2); delay(time_on);
  off_all(); on_number(17, j+2); delay(time_on);
}

void on_number(int row, int nixie) {
  digitalWrite(row, HIGH); digitalWrite(nixie, HIGH);
}
void off_all() {
  digitalWrite(row_1, LOW); digitalWrite(row_2, LOW); digitalWrite(row_3, LOW);
  digitalWrite(row_4, LOW); digitalWrite(row_5, LOW); digitalWrite(row_6, LOW);
  digitalWrite(nixie_0, LOW); digitalWrite(nixie_1, LOW); digitalWrite(nixie_2, LOW);
  digitalWrite(nixie_3, LOW); digitalWrite(nixie_4, LOW); digitalWrite(nixie_5, LOW);
  digitalWrite(nixie_6, LOW); digitalWrite(nixie_7, LOW); digitalWrite(nixie_8, LOW);
  digitalWrite(nixie_9, LOW);
  delayMicroseconds(400); // ゴースト防止
}

DS3231から時刻を取得し、フォトカプラ経由で6本のニキシー管をダイナミック点灯制御します。

ステップ3:回路の組み立て

Arduinoで作るニキシー管時計:ステップバイステップガイド
Arduinoで作るニキシー管時計:ステップバイステップガイド
Arduinoで作るニキシー管時計:ステップバイステップガイド
Arduinoで作るニキシー管時計:ステップバイステップガイド
Arduinoで作るニキシー管時計:ステップバイステップガイド

まずはブレッドボードで動作確認。初回で問題なく動作しました。次ステップではMDFケースに収め、インテリアとして飾れるよう改良予定です。

コード全文

上記コードスニペットと同一です。GitHub等での公開はありませんが、コピペで動作します。

製造プロセス

  1. Arduino POVクロック:残像効果で浮かび上がるLED時計を自作する
  2. Arduinoで作るレトロNumitron管時計:シンプル、信頼性高く、省エネ
  3. DIY Arduinoワードクロック – 文字で時刻を表示する洗練されたリアルタイムクロック
  4. Arduino で作るイスラム教礼拝時刻付きリアルタイムクロック
  5. 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
  6. スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
  7. Arduino Dueと3.2インチTFTで作る温度監視付きリアルタイムクロック
  8. ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
  9. 自作MDF木製ケースのニキシー管時計:Arduinoで制御するレトロモダンな逸品
  10. DS1302 RTCとArduino UNOで作る信頼性の高い目覚まし時計
  11. E3.seriesで電気ハーネス設計を効率化