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

NeonDCDCを使ってネオン管で電飾を作ってみました

スポンサーリンク

ネオン管用の高電圧電源モジュールNeonDCDCを作ったので、ネオン管を使って電飾を作ってみました。

スポンサーリンク

NeonDCDC

基板はJLCPCBで作ってもらいました。データの作成と注文方法はこちらを参考にしてください。

NeonDCDCは5Vから80V〜200Vの高電圧を生成する電源モジュールです。80Vで16mA程度まで電流を出力することができます。

NeonDCDCは、こちら👇👇👇でも販売しております。

スポンサーリンク

HV5812

HV5812DataSheet

HV5812はMicrochip社の、80VまでドライブできるドライバICです。出力は20チャンネルあります。シフトレジスタを内蔵しているので、SPIで制御できます。

ネオン管をドライブするのにとても好都合なICです。以前透明で美しいVFD管、IV-27MのドライバICとして使いました。

今回は、このドライバICを使って、ネオン管で電飾を作ります。

スポンサーリンク

回路

全体の回路

回路図は上記のようになっています。マイコンにはESP32-DevKitCを使っています。HV5812は5Vで動作するために、ESP32とHV5812の間には3.3Vから5Vへ変換するレベルシフターが入っています。

ネオン管の電源のために、ESP32の5V出力をNeonDCDCを使って80Vに昇圧しています。

HV5812の出力ピンに47kΩの抵抗を接続して、ネオン管を接続しています。これで、ネオン管1個あたり0.5mA程度流れます。HV5812の出力ピン20チャンネルありますが、ブレットボードのサイズの制限からネオン管の数を15個にしました。

レベルシフター

レベルシフト回路

3.3Vから5Vへのロジックレベルの変換には、上の図のような回路を使っています。MOS-FETのゲートが3.3Vに接続されていて、不思議な感じに見えますね。

動作は以下のようになっています。

3.3V Logic INがHiで3.3Vの時、ゲートとソースが同じ電圧なので、MOS-FETはOFFしています。そのため、5Vの電圧がLogic OUTに出力されます。

3.3V Logic INがLowで0の時、ゲートがソースよりも3.3V高いのでMOS-FETはONします。ドレイン電流がソースへ流れるため、ドレインの電圧は0Vになります。

この様に、Logic INが3.3Vの時はLogic OUTが5Vに、Logic INが0Vの時はLogic OUTが0となり、レベルシフトが実現します。実はとてもシンプルな動作でした。

プルアップ抵抗が1kΩとちょっと小さめですが、これは今回使っているクロックが3.3MHzと高速なためです。抵抗値が大きいと立ち上がりが鈍ってしまうため、実験の結果1kΩに決定しました。I2C通信のプルアップ抵抗と同様に考えると、クロックが1MHz程度でしたら2.2kΩ、400kHz程度でしたら10kΩでもいいかもしれません。

スポンサーリンク

プログラム

#include <SPI.h>
#define SPI_FREQ 3300000
#define STROBE_PIN 5

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  delay(100);
  Serial.println("start");

  initHV5812();

}

long temp = 0x0;
void loop() {
  // put your main code here, to run repeatedly:
  int wait = 20;
  for ( int j = 0 ; j < 5 ; j++ )
  {
    temp = 1;
    for ( int i = 0 ; i < 15 ; i++ )
    {
      sendData( temp );
      temp = temp << 1;
      delay(wait);
    }
  }
  for ( int j = 0 ; j < 5 ; j++ )
  {
    temp = 1;
    temp = temp << 14;
    for ( int i = 0 ; i < 15 ; i++ ) { sendData( temp ); temp = temp >> 1;
      delay(wait);
    }
  }

  wait = 30;
  temp = 0;
  for ( int i = 0 ; i < 15 * 3 ; i++ )
  {
    if ( i % 5 == 0 )
      temp |= 1;
    sendData( temp );
    temp = temp << 1;
    delay(wait);
  }
  for ( int i = 0 ; i < 15 ; i++ )
  {
    sendData( temp );
    temp = temp << 1;
    delay(wait);
  }

  for ( int i = 0 ; i < 15 * 3 ; i++ )
  {
    temp &= (long)0x000FFFFF;
    if ( i % 5 == 0 )
      temp |= (long)(1 << 14); sendData( temp ); temp = temp >> 1;
    delay(wait);
  }
  for ( int i = 0 ; i < 15 ; i++ ) { sendData( temp ); temp = temp >> 1;
    delay(wait);
  }

  wait = 10;
  for ( int k = 0 ; k < 2 ; k++ )
  {
    for ( int j = 0 ; j < 3 ; j++ )
    {
      temp = (long)1 << 14;
      for ( int i = 0 ; i < 15 ; i++ ) { sendData( temp ); temp |= temp >> 1;
        delay(wait);
      }
      for ( int i = 0 ; i < 15 ; i++ )
      {
        temp = temp << 1;
        sendData( temp );
        delay(wait);
      }
    }
    for ( int j = 0 ; j < 3 ; j++ )
    {
      temp = 1;
      for ( int i = 0 ; i < 15 ; i++ )
      {
        sendData( temp );
        temp |= temp << 1;
        delay(wait);
      }
      for ( int i = 0 ; i < 15 ; i++ ) { temp = temp >> 1;
        temp &= (long)0x000FFFFF;
        sendData( temp );
        delay(wait);
      }
    }
  }
}

//init HV5812
bool initHV5812()
{
  SPI.begin();
  SPI.setFrequency(SPI_FREQ);
  SPI.setDataMode(SPI_MODE0);
  SPI.setBitOrder(MSBFIRST);

  pinMode( STROBE_PIN, OUTPUT );
  digitalWrite( STROBE_PIN, LOW );

  long data = 0;
  sendData( data );
}

//send data to HV5812
bool sendData( long data )
{
  uint8_t transfarData[4];
  transfarData[0] = ( data & 0xFF000000 ) >> 24;
  transfarData[1] = ( data & 0x00FF0000 ) >> 16;
  transfarData[2] = ( data & 000000FF00 ) >> 8;
  transfarData[3] = ( data & 0x000000FF );

  SPI.writeBytes(transfarData, sizeof(transfarData));
  digitalWrite( STROBE_PIN, HIGH );
  delayMicroseconds(1);
  digitalWrite( STROBE_PIN, LOW );
}

プログラムはシンプルすぎて不要かもしれませんが、載せておきます。sendData関数で引数のDataの内容がHV5812へ転送されます。

スポンサーリンク

ブレッドボードに実装

左からESP32-DevKitC、中央がNeonDCDCとHV5812、右がネオン管です。

ネオン管が流れるように点灯しています。

ネオン管で電飾って、あまり見ないですね。昔はあったのでしょうか。

ネオン管の光って、ニキシー管もそうですが、暖かい感じのオレンジ色で、とても美しいです。見ていて飽きないですね。

ネオン管用高電圧発生モジュールNeonDCDCで遊んでみました。もっとたくさん光らせてみたいですね。

NeonDCDCは、こちら👇👇👇で販売しております。
NeonDCDCの基板はJLCPCBで作ってもらいました。