• 締切済み

Arduinoを使ってニキシー管8桁表示をコントロールしたいです

Arduinoを使ってニキシー管8桁表示をコントロールしたいです まったく、方針がわかりません。 シフトレジスタ74HC595を8個つかってK155ID1を8個 そして高圧昇圧回路あたりをじょじょに理解していけば、何とかなるでしょうか?

みんなの回答

noname#114832
noname#114832
回答No.1

何故今時ニキシー管を? >まったく、方針がわかりません。 情報もなく、やり遂げてもあまり意味ないようなら やめといた方がいいと思います。 特段の思い入れや理由でもあればこの限りでないですが。 全盛当時と比べ周辺のデバイス供給状況も変わってますから、 いい回路を見つけたとしてもデバイス調達でつまづくでしょうし。 >そして高圧昇圧回路あたりをじょじょに理解していけば、何とかなるでしょうか? 努力量と情報と部材調達状況次第で、いくら質問者さんが努力しても適わない要因はあります。 代替措置をなんとかして探るなどすれば実現可能「かも」知れませんけど そうして「探る」事までもが回答として提供されるかどうか。 大して意味ないなら現状に合わせさっさと辞めるのも一手です。

stockjp
質問者

補足

調達に関しては何ら問題にしておりません。 とりあえず、昇圧回路から直接、ニキシー管の点灯はできてます。 Arduinoを使って、複数のシフトレジスタへの出力もできてます。 K155ID1も手元にあります。 レジスタ74HC595とK155ID1との接続が不明なだけです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ニキシー管点灯に必要な昇圧回路キットについて

    先日、某電気街にてニキシー管なる物を購入しました。 調べたところ真空管の一種のようで、とりあえず点灯だけでもさせたいと思うのですが、電源が170V-180VDCと分かり困っています。 そこで昇圧回路なる物が必要なことが分かったのですが、なかなか170V程度に昇圧する物が見つかりません。 自作した方が良いのでしょうか?電気工作に関しては中学生の理科程度の知識しかありません。 また良いキットがあれば教えてください。 宜しくお願いします。

  • ニキシー管・PICとフォトカプラによる点滅制御

    ニキシー管時計を製作している者です。 ニキシー管のダイナミック点灯の試験を行う過程で以下の事柄が起き、原因が分からず悩んでいます。 貼付した実験回路図を参照して頂きたいのですが、PICマイコンのIOポートを一定間隔でH→L→H→…と切替え、そのタイミングでニキシー管を点滅させたい、という狙いです。 200Ω抵抗、フォトカプラのチョイスに関しては書籍「マイコンと表示器をつなぐ10の方法」を参考にさせて貰っています。 1)PICのH→L切替にニキシー管の点滅が連動してくれません。点灯はPICがHになるタイミングで行われるのですが、Lになった際に消灯してくれない状態です。高圧電源からの電流制限抵抗Rを上記書籍に従って4.7kΩとしていました。 2)そこで、高圧電源からの電流制限抵抗を上げていき、200KΩとしたところ点滅しだしたのですが、発光が非常に暗い状態です。試しにこの抵抗値でニキシー管6桁を一つづつ点滅させたのですが、予期した点滅は行われるものの、電流が少なすぎるのかセグメントが発光しきれていない状態になりました。 3)一度点灯するとGND線を外しても(やや暗くなるのですが)点灯し続けてしまいます。GNDと、PICからの制御線を両方外すと消灯します。 書籍、web記事を参照しても比較的簡単にアノード制御を行っている様子であり、上記の様な現象は書かれておらず、この回路のどこが悪いのかわからず質問させて頂きました。 ちなみに、高圧電源部は市販キットを使用しています。 時計制御部もキットを使用したかったのですが、ケースサイズの関係で不可能となり今回の製作に至った経緯です。 アドバイス頂けたら幸甚です。宜しくお願いします。

  • Arduino×LEDマトリクス×BA823

    秋月のLEDマトリクス(赤単色)をローム社のシフトレジスタBA823と接続し、Arduinoで制御しようと試みていますが、配線方法が分からず困っています・・・。 BA823を使用する理由は、LEDマトリクスのドット単位で明るさを制御したいからです。74HC595などでも試みたのですが、最終的に映像を出力させたいと考えており多くのLEDマトリクスを使用した際、74HC595では表示速度に難があるかと感じました。 現在は、LEDマトリクスのアノード側とカソード側に、それぞれ1台ずつBA823を接続し、データシートに従いVCC、GND、STROBE(LATCH)、SHIFT PULSE(CLOCK)、DATAをArduinoへ繋いでいますが、全く点灯しない状況です。 どなたか少しでも情報を持っている方がいましたら、是非アドバイスお願いします。 また、ドット単位で明るさが制御できるシフトレジスタの情報がある方がおられましたら、是非ご教示下さい。 よろしくお願いします。

  • Arduinoによる時計の製作について

    Arduinoを使って時計の製作をしようと検討しています。概要としては、 ・7セグLEDx18個;18桁のダイナミック制御 ・リアルタイムクロックモジュール(I2C)による時刻取得 といった感じです。 前者についてはシフトレジスタを複数用いることでデジタル出力x3本、後者に2本、合計デジタル出力5本で制御できると考えていますが、これは実際に行うことが出来るのでしょうか?また、可能であるとして注意すべき点などありましたらお教えくださると助かります。 よろしくお願いします。

  • ニキシー管みたいな真空管。

    名称を教えてください。 秋葉原のパーツ屋さんの店先で光っている真空管みたいな電球です。 中でフィラメントがチラチラと動いているように光って見える真空管。 無論フィラメントそのものがが動いているのではなく、 そう見えるだけです。 ニキシー管は数字が光るんですが、数字にはなっていません。 うまく言えないんですが、昔からあるやつです。 あれはなんていう名前の放電管なんでしょう。

  • 74HC595から出力が出ない

    ICの置き換えを依頼されました。 以前の物は、ルネサスの16BIT LED DRIVER(シフトレジスタとラッチ付き)の 物でM66310を使っていた。すでにM66310は、生産中止品でした。その後継の R8A661600を見っけたのですが、こちらも入手困難であったため、東芝の TC74HC595APを2個と、トランジスタアレー(ソースドライバ)使う回路を製作 しました。 先日、部品を組み立て、お客さんに渡したところ、従来の基板と今回製作 した基板を入れ替えてもらったのですが、同じ入力信号(データとシフト クロックとラッチ信号を入れても、LEDが一つも点灯しないと言われ困っております。 ・74HC595とM66310(R8A661600)の入力は、データシートを見る限り  どちらも正論理 ・74HC595の出力イネーブルは、0Vに入れている。 ・74HC595のリセットは、+5Vを入れている。 何度も、回路図とデータシートを見比べたのですが納得がいきません 何か見落としていることなどがあれば教えてもらえないでしょうか。 参考) ルネサスのR8A661600DD/SPのデータシート http://documentation.renesas.com/jpn/products/assp/rjj03f0221_r8a66160ds.pdf#search='R8A66160' 東芝のTC74HC595データシート http://www.semicon.toshiba.co.jp/docs/datasheet/ja/LogicIC/TC74HC595AF_TC74HC595AP_ja_datasheet_071001.pdf

  • ニキシー管の数字

    ニキシー管の数字の並びは、なぜ、0,1,2・・9という順になっていないのでしょうか? 6が手前で0が最後、途中がよくわからないですが。 何か意味があるのでしょうか。

  • arduinoでの7セグ4桁表示について

    http://garretlab.web.fc2.com/arduino/introduction/beginning_with_7segment_led/#turn_on_four_digits こちらのサイトを参考に7セグ4桁表示に挑戦しています。 // 1桁の数字(n)を表示する void display_number (int n) { for (int i = 0; i < number_of_anode_pins; i++) { digitalWrite(anode_pins[i], digits[n] & (1 << i) ? HIGH : LOW); } } この部分の digits[n] & (1 << i) ? HIGH : LOW の 「&」 「?」 「:」 の意味はどのようなものですか?

  • ニキシー管時計の自作について

    ニキシー管時計を自作しているのですか、スイッチ入力のプログラムが分かりません。 #include <16f1938.h> #fuses INTRC_IO,NOWDT,NOPROTECT,NOCPD,NOMCLR,NOPUT,NOBROWNOUT,NOIESO #use delay(clock=16MHZ) // クロック周波数は16MHz #byte RA = 0x0c //RAをポートAのアドレス0Ch番地に設定 #bit MODE_SW = RA.0 #bit UP_SW = RA.1 #bit DOWN_SW = RA.2 #bit NIXI_8 = RA.6 #bit NIXI_9 = RA.7 #byte RB = 0x0d //RBをポートBのアドレス0Dh番地に設定 #byte RC = 0x0e //RCをポートCのアドレス0Eh番地に設定 void io_init(void); // i/o設定関数 signed int sec=56,min=34,hour=12; void disp_nixi(int v); int flag=0; /*-------------------------------------- timer0割り込み 1ms間隔 ---------------------------------------*/ #INT_TIMER0 void timer0(void) { static signed int flag=0; static signed long m_sec=0;//msカウンタ set_timer0(131); //256-125 =131 125* 8us = 1000us //全て消灯 RB=0x00; disp_nixi(10); delay_us(10); m_sec++; if(m_sec>1000){ sec++; m_sec=0; } if(sec>60){ min++; sec=0; } if(min>60){ hour++; min=0; } if(hour>=24){ hour=0; } if(flag<6)flag++; else flag=0; switch(flag){ case 0: disp_nixi(sec%10); RB=0x01;//1桁ON break; case 1: disp_nixi(sec/10); RB=0x02;//2桁ON //RB=0x02;//2桁ON break; case 2: disp_nixi(min%10); RB=0x04;//3桁ON break; case 3: disp_nixi(min/10); RB=0x08;//4桁ON break; case 4: disp_nixi(hour%10); RB=0x10;//5桁ON break; case 5: disp_nixi(hour/10); RB=0x20;//6桁ON break; }//end switch } // end timer0(void) void main(void) { long int flag=0,i; io_init(); while(1){ //ここにプログラムを書きたいです }// end while() } // end main(void) void io_init(void){ setup_oscillator(OSC_16MHZ); // 内部クロックを16MHzに設定 RA=0x00; RB=0x00; RC=0x00; setup_adc_ports(NO_ANALOGS); // ポートAはデジタルI/Oに設定 //timer0の設定 setup_timer_0(RTCC_INTERNAL | RTCC_DIV_32); // 4ck 1命令 4/16M = 0.25us 0.25us*32 : 1ct = 8us タイマ0のモード設定 set_timer0(131); //256-125 =131 125* 8us = 1000us // TRIS_aの設定 A0~A7:入力 1111 1111 A2:sw2 A1:sw1 A1:sw1 set_tris_a(0x3f); // TRIS_bの設定 set_tris_b(0x00); //H-side ドライブ0~5 // TRIS_cの設定 set_tris_c(0x00); //7~4:free  C3~0:L-side ドライブ // TRIS_eの設定 set_tris_e(0xff); enable_interrupts(INT_TIMER0);//tmr0割り込み許可 enable_interrupts(GLOBAL);//グローバル割込み許可 } void disp_nixi(int v){ switch(v){ case 0: NIXI_8 =0; NIXI_9 =0; RC=0b10000000; break; case 1: NIXI_8 =0; NIXI_9 =1; RC=0b00000000; break; case 2: NIXI_8 =0; NIXI_9 =0; RC=0b00010000; break; case 3: NIXI_8 =1; NIXI_9 =0; RC=0b00000000; break; case 4: NIXI_8 =0; NIXI_9 =0; RC=0b00000010; break; case 5: NIXI_8 =0; NIXI_9 =0; RC=0b00000100; break; case 6: NIXI_8 =0; NIXI_9 =0; RC=0b00001000; break; case 7: NIXI_8 =0; NIXI_9 =0; RC=0b00000001; break; case 8: NIXI_8 =0; NIXI_9 =0; RC=0b01000000; break; case 9: NIXI_8 =0; NIXI_9 =0; RC=0b00100000; break; default : NIXI_8 =0; NIXI_9 =0; RC=0b00000000; } } ↑のプログラムのwhile文部分にプログラムを書きたいのですが、 どのようなプログラムを書いたらよいのでしょうか。 教えていただけると助かります。

  • C++でArduinoをコントロールしたいのですが

    VC++から数値データ(0-100)を送信し、Arduinoに接続されているファンを受信した数値でPWMコントロールしたいのですが、接続を確立したその後からプログラミングの仕方がわかりません。 どのようにしてデータを送信すればよいのでしょうか? 以下のようにして接続を行っています。 //COMポートハンドル HANDLE hComm; hComm = CreateFileA("\\\\.\\COM3", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); //ポートの接続確認 printf("Arduino COM") ; if (hComm == INVALID_HANDLE_VALUE) printf(":not opened\n") ; else{ DCB lpTest; GetCommState(hComm,&lpTest); lpTest.BaudRate = CBR_9600; lpTest.ByteSize = 8; lpTest.Parity = NOPARITY; lpTest.StopBits = ONESTOPBIT; SetCommState(hComm,&lpTest); printf(":OPENED\n") ; WriteFile(hComm, buf,strlen(buf),&write, NULL); } //COMポートハンドルの解放 CloseHandle(hComm); なおArduino側のプログラムは以下のものを使用しています。 //読み取り値の変数 int val=0; void setup(){ //シリアル通信開始 Serial.begin(9600); } void loop(){ //データが0個より多いときの時 if(Serial.available()>0){ //データの読み込み val=Serial.read(); //合図用データ送信(1バイト) Serial.print(65,BYTE); } //アナログ出力(11番ピン)に読み込み値を入れる analogWrite(11,val); }

このQ&Aのポイント
  • McAfeeの2年間の無償期限が切れる前に、継続手続きをしたいのですがメールアドレスが登録されてないとの表示が出ます。
  • 最近、PCの回復作業をしましたが、関係ないかもしれません。
  • McAfeeの継続手続きをするためには、まずメールアドレスの登録が必要です。登録方法について教えます。
回答を見る