秋月ファンクラブ掲示板

  1. LTSPICEのSUB回路(7)
  2. LED Cube2(5)
  3. LED Cube(99)
  4. ラズパイ STLデータ(0)
  5. LT1167でHPFを作る(2)
  6. LED駆動回路のLTspice回路図ファイル(0)
  7. IN-9応答時間測定器2(85)
  8. Excel VBAで太陽電池の電流−電圧特性を計算する方法(0)

lilly(2017/12/08 Fri 23:49) [ 編集 ] [ 返信 ]

LTSPICEのSUB回路

LTSPICEでSUB回路の作り方は分かるのですが、
SUB回路の回路構成は同じで
一部定数だけ変えて、メイン回路に2つの同じ回路ではあるが
一部定数の異なるSUBを反映したいです。
SUBは同じファイル名でよいのか?
SUBの入出力信号名を変えるのか?
よく分かりません。

教えてください。

inara1(2017/12/09 Sat 10:24) [ 編集 ] [ 返信 ]


Re: LTSPICEのSUB回路

SUB回路というのは.subcktで始まるサブサーキット(オペアンプのSPICEモデルなど)とか、.modelで始まるトランジスタのSPICEモデルのことですか。あるいはLTspiceで描いた回路自身ですか。LTspiceで描いた回路なら具体的な回路を見せてください。

lilly(2017/12/09 Sat 11:02) [ 編集 ] [ 返信 ]


Re^2: LTSPICEのSUB回路

ファイルを添付しました。
ファイルの中の係数を変えてメイン回路に登録したいです。
異なる係数になるので2種類の回路が存在することになります。

SUB回路は、添付の回路を登録しています。asyファイルも作って

lilly(2017/12/09 Sat 11:06) [ 編集 ] [ 返信 ]


Re^3: LTSPICEのSUB回路

PNG 977x974 36.0kb

> ファイルを添付しました。
> ファイルの中の係数を変えてメイン回路に登録したいです。
> 異なる係数になるので2種類の回路が存在することになります。
>
> SUB回路は、添付の回路を登録しています。asyファイル作って
添付します、

inara1(2017/12/09 Sat 14:00) [ 編集 ] [ 返信 ]


Re^4: LTSPICEのSUB回路

ascファイルをサブサーキット化できたと思いますが、この回路だけで実行するとエラーが出ます。ve1がどこにもつながっていないので電圧が定まらないというエラーです。また、Gl1の下に書かれたVALUE=はGl1のパラメータですか。Gi1のパラメータは記号右下に書かれた1だけではないのでしょうか。

ascファイルはテキスト形式で書かれているので、その中身を本文に添付してください。そうすればそれをこちらのLTspiceで直接読み込めます。

lilly(2017/12/09 Sat 21:29) [ 編集 ] [ 返信 ]


Re^5: LTSPICEのSUB回路

テキスト形式は、下記でよいでしょうか?
ascファイルをテキストに直した内容です。

Version 4
SHEET 1 880 680
WIRE -160 -416 -224 -416
WIRE 192 -416 -160 -416
WIRE -224 -400 -224 -416
WIRE -272 -384 -336 -384
WIRE -160 -368 -160 -416
WIRE -336 -304 -336 -384
WIRE -224 -256 -224 -320
WIRE -160 -256 -160 -288
WIRE -48 -128 -64 -128
WIRE 32 -128 16 -128
WIRE -336 -48 -336 -304
WIRE -272 -48 -336 -48
WIRE -160 -48 -224 -48
WIRE -64 -48 -64 -128
WIRE -64 -48 -160 -48
WIRE -48 -48 -64 -48
WIRE 32 -48 32 -128
WIRE 32 -48 16 -48
WIRE 208 -48 32 -48
WIRE -224 -16 -224 -48
WIRE -272 0 -272 -48
WIRE -160 16 -160 -48
WIRE -64 16 -64 -48
WIRE 32 16 32 -48
WIRE -272 128 -272 48
WIRE -224 128 -224 64
WIRE -160 128 -160 96
WIRE -64 128 -64 80
WIRE 32 128 32 96
FLAG 320 32 0
FLAG -224 -256 0
FLAG -160 -256 0
FLAG -272 128 0
FLAG -224 128 0
FLAG -160 -48 IERROR2
FLAG -160 128 0
FLAG -64 128 0
FLAG 32 128 0
FLAG 192 -416 p2
FLAG 208 -48 i2
FLAG -336 -304 ve2
IOPIN -336 -304 In
FLAG 320 -48 PI2
IOPIN 320 -48 Out
SYMBOL bv 320 -64 R0
SYMATTR InstName B1
SYMATTR Value V=v(p2)+v(i2)
SYMBOL res -176 -384 R0
SYMATTR InstName RP1
SYMATTR Value 1MEG
SYMBOL g -224 -32 R0
SYMATTR InstName GI1
SYMATTR Value 1
SYMBOL res -176 0 R0
SYMATTR InstName RI1
SYMATTR Value 1MEG
SYMBOL Misc\\Epoly 32 0 R0
WINDOW 3 -345 204 Left 2
SYMATTR Value VALUE={limit(VLOW2,V(IERROR2), VHIGH2)}
SYMATTR InstName E1
SYMBOL Misc\\Epoly -224 -416 R0
WINDOW 3 20 134 Left 2
SYMATTR Value VALUE={limit(VLOW2,V(ve2), VHIGH2)}*kp2
SYMATTR InstName E2
SYMBOL diode -48 -32 R270
WINDOW 0 32 32 VTop 2
WINDOW 3 0 32 VBottom 2
SYMATTR InstName D3
SYMBOL diode 16 -144 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName D4
SYMBOL cap -80 16 R0
WINDOW 3 0 55 Left 2
SYMATTR Value {t2/ki2}
SYMATTR InstName C1
TEXT 160 320 Left 2 !.param t2=1/40k
TEXT 248 400 Left 2 !.param VLOW2=-120
TEXT 248 368 Left 2 !.param VHIGH2=120
TEXT -288 -168 Left 2 ;INTEGRATED ERROR
TEXT -240 360 Left 2 !.param kp2=0.3 Ki2=2m
RECTANGLE Normal 144 -464 -304 -224
RECTANGLE Normal 144 160 -304 -192

inara1(2017/12/10 Sun 14:40) [ 編集 ] [ 返信 ]


Re^6: LTSPICEのSUB回路 new!

回路図ファイルを読み込むことができました。
適当な信号源をve2に接続するとエラーは出なくなりました。

この回路図をサブサーキット化しようとやってみましたが、まだ成功していません。

昔のバージョンでは、回路図ファイルをサブサーキット形式に変換して保存できたはずですが、バージョンアップしたときに、その選択枝がなくなってしまったようです。

少々面倒ですが、ネットリストを加工すれば原理的にはできるので、その方法でやってみます。

inara1(2017/12/10 Sun 17:46) [ 編集 ] [ 返信 ]


Re^7: LTSPICEのSUB回路 new!

PNG 720x1399 273.2kb

ネットリストを変更してサブサーキットファイルを作ることで動作するようになりました。複数のサブサーキットを回路図に置いて、それぞれのパラメータを別々にする方法は、添付図図3に書きました。

LTspiceの回路をサブサーキット化する方法

1. 記号ファイルを作る
(test.asyの中身)の文章をコピーして、ワードパッドなどのテキストエディタに貼り付けて、test.asyというファイル名で、テキスト形式で、LTspiceのlibフォルダの中のsymフォルダの中に保存する
(注意) セキュリティーエラ―のために保存できないときは、一旦、デスクトップなどに保存して、そのファイルをsymフォルダの中に移動させる
(test.asyの中身)
Version 4
SymbolType BLOCK
RECTANGLE Normal 48 39 -48 -56
WINDOW 0 3 -106 Center 2
WINDOW 3 4 -79 Center 2
SYMATTR Value circuit1
SYMATTR Prefix X
SYMATTR SpiceLine kp2={kp2} ki2={ki2} t2={t2} VLOW2={VLOW2} VHIGH2={VHIGH2}
SYMATTR ModelFile test.sub
PIN -48 16 LEFT 8
PINATTR PinName ve2
PINATTR SpiceOrder 1
PIN 48 -32 RIGHT 8
PINATTR PinName p2
PINATTR SpiceOrder 2
PIN 48 16 RIGHT 8
PINATTR PinName i2
PINATTR SpiceOrder 3
PIN -48 -32 LEFT 8
PINATTR PinName PI2
PINATTR SpiceOrder 4

2. サブサーキットファイルの作成
(1) サブサーキット化したい回路をLTspiceで開く → メニューのView→SPICE Netlist
(2) 添付図1のようなリストが出るので、この中の赤枠で囲った部分をコピーして、テキストエディタに貼り付ける
(3) 下の赤線を引いた文章を冒頭と最後尾に追加して、テキスト形式で test.subというファイル名で、subフォルダに保存する
(注意) セキュリティーエラ―のために保存できないときは、一旦、デスクトップなどに保存して、そのファイルをsubフォルダの中に移動させる。
(変更後のtest.subの中身の例)
.subckt circuit1 ve2 p2 i2 PI2
B1 PI2 0 V=v(p2)+v(i2)
RP1 p2 0 1MEG
GI1 0 IERROR2 ve2 0 1
RI1 IERROR2 0 1MEG
E1 i2 0 VALUE={limit(VLOW2,V(IERROR2), VHIGH2)}
E2 p2 0 VALUE={limit(VLOW2,V(ve2), VHIGH2)}*kp2
D3 IERROR2 i2 D
D4 i2 IERROR2 D
C1 IERROR2 0 {t2/ki2}
.model D D
.lib C:\(この部分はそちらの環境で変わります)\lib\cmp\standard.dio
.param t2=1/40k
.param VLOW2=-120
.param VHIGH2=120
* INTEGRATED ERROR
.param kp2=0.3 Ki2=2m
.ends

3. LTspiceでサブサーキットを呼び出しパラメータを変える
(1) LTspiceで新規回路を開く → メニューのEdit → Component で出たリストの中から test を選択し回路図上に置く
(2) 端子にラベルを付け、適当な信号源を接続する(添付図2)
(3) .paramコマンドでパラメータの値を設定する→シミュレーション実行(添付図2)

(補足)
(1) サブサーキット名について
回路図に部品を置いたときに出てくるサブサーキット名はcircuit1としていますが、この名前はtest.asyファイルのSYMATTR Value circuit1の部分を書き換えれば変えられます。名前を変えたときはtest.subファイルの冒頭の
.subckt circuit1 ve2 p2 i2 PI2
のcircuit1を変更後の名前にしてください。
(2) サブサーキットファイル名について
サブサーキット名はtest.subとしていますが、この名前はtest.asyファイルのSYMATTR ModelFile test.subで定義しているので、サブサーキット名を変えるときは、SYMATTR ModelFile test.subの部分も同じ名前としてください
(3) 記号ファイル名について
記号ファイル名はtest.asyとしていますが、これは自由に変えられます。この名前を変えると、メニューのEdit → Component で出たリストの中の名前がファイル名に変わります。

daruma(2017/12/01 Fri 01:01) [ 編集 ] [ 返信 ]

LED Cube2

このスレッドは『LED Cube』の続きです。

> パラメータの設定次第で数時間になることはおかしくありません。

昨日の実験では、STEPDATAを'5'でTIME100でトップスピードへの変化時間よりはるかに長く待っても抜け出せないので、時間がかかっているのではなく無限ループだと考えました。そのあとSTEPDATAが'1'でTIME1Mのものを再度走らせて朝まで7時間、やはり同じ状態になっていたのでこれもそうだと考えました。早計でしたか?

> こういう場合は、STEPDATAを52とかにして

STEPDATAを'52'でTIME100にしてやってみました。やはり、上りつめたところで変化しなくなりました。

> チカラ技第2弾の修正HEX STEP7 1mS

走らせてみました。42分で全点灯(に見える)状態になりそれが数秒続いた後減速に転じました。これが想定通りの動きですね。「チカラ技第2弾」ですから、ループ回数を4段階に分けているのですね。

> チカラ技第3弾のHEX STEP変化版 重複あり1mS

これまで固定だったSTEPDATAを途中で変化させる仕様なんでしょうか。
100分で全点灯に達しました。わずかずつの変化を見続けていたのですが、低速域ではステップを大きく、中速域では小刻みに変化させているのでしょうか。「2発点灯(に見える)横走り」「3発点灯(に見える)横走り」の状態がたっぷり続きました。

> 頭脳技版TIMER1使用の最低加減速インターバル50mS版
> 頭脳技版TIMER1使用の最低加減速インターバル250mS版
> 頭脳技版TIMER1使用の最低加減速インターバル250mS版 STEPDATA5 最低ウェイト150マイクロ秒

これらは力ずくではないスマートで美しい方法なんですね。
走らせてみました。ひとつめとふたつめはほぼ同じに見え2分で全点灯に達し、それが1秒弱続きました。みっつめは1分で全点灯に達し続いた時間はもっと短かったです。

割り込みというのはさらに難しそうですね。
「チカラ技」のほうは、読んでぼんやりとですが流れがわかります。それとて細部はよくわかりません。

> チカラ技第2弾のソースは240行〜260行の間にバグの原因があります。

難しい宿題です。今夜は各HEXを走らせて観察するだけで過ぎてしまいましたから、明日頭をひねります。

daruma(2017/12/01 Fri 14:24) [ 編集 ] [ 返信 ]


Re: LED Cube2

宿題が解けました。
249行 GOTO UPSTART → GOTO DNSTART
ではないでしょうか。これで意図どおりに動作します。

いろいろカットアンドトライして、
STEPDATA 30
TIME150
それに、ループ回数の配分を
200,120,30 から 100,20,10 に変更しました。
これで、
・1発点灯横走り
・2発点灯(に見える)横走り
・3発点灯(に見える)横走り
・3発点灯(に見える)縦走り
・全点灯(に見える)トップスピード
の見せ方で上り坂35秒全点灯10秒下り坂35秒と程よい遷移です。

頭脳技もご提示いただきましたが、今回はこれでフィックスとさせていただきたく思います。

daruma(2017/12/02 Sat 12:44) [ 編集 ] [ 返信 ]


Re^2: LED Cube2

JPG 1024x768 140.0kb

試作4号機が形になりました。
これまでと同じく両面ノンスルホール基板を使って、部品面の裏にヘッダソケットを付け、天地を裏返しにしています。柱になる足の都合でソケットをできるだけケース天板に近づけたいからです。
LED群は初期作の少々いびつな物をつけていますが、あとでもう少しましなのを作ります。

高さが取れるのでPICはソケット装着にしましたが、ICSPのピンも立てました。
これまでPICkit3と秋月のアダプタで書き込んでいますから、このICSPピンはまだ使っていません。
PICkit3をここに挿して、いつものように書き込みすればいいのでしょうか。その場合回路電源はOFFにしておくのですよね。まだやってみてはいません。

daruma(2017/12/06 Wed 17:26) [ 編集 ] [ 返信 ]


Re^3: LED Cube2

JPG 1024x768 149.8kb

ICSPで書き込むことができました。MPLAB IPEで書き込みを開始すると、PICKit3からの電源で回路が走り出したのには驚きました。なるほど便利ですね。

試作4号機もケースに収めました。基板が1階建てなのでもっと低くできたのですが、試作3号機と同じ高さに揃えました。

inara1さんにお世話になった試作3号機はすでに
http://mpga.jp/akizuki-fan/index.php?mode=article&id=3538&page=1
で報告していたとおりめでたく完成です。ありがとうございました。

なんじゃらほいさんにお世話になった試作4号機もこれにて完成です。ありがとうございました。
せっかく頭脳版プログラムで鍛えてくださろうとしていたのに区切りをつけてしまって申し訳ありません。

なんじゃらほい(2017/12/06 Wed 23:03) [ 編集 ] [ 返信 ]


Re^4: LED Cube2

>これもそうだと考えました。早計でしたか?

いやむしろ悠長で気が長いという意味です。



>> チカラ技第3弾のHEX STEP変化版 重複あり1mS

>これまで固定だったSTEPDATAを途中で変化させる仕様なんでしょうか。

重複回数を指定する部分にSTEPDATAを設定する記述を追加しました。

MOVLW D'12'
MOVWF STEPDATA
GOTO UPSTART ;どれも該当しないなら、そのまま表示へ

S1SET MOVLW D'200'
MOVWF CHOUFU
MOVLW D'1'
MOVWF STEPDATA
GOTO UPSTART

S2SET MOVLW D'120'
MOVWF CHOUFU
MOVLW D'4'
MOVWF STEPDATA
GOTO UPSTART

S3SET MOVLW D'30'
MOVWF CHOUFU
MOVLW D'8'
MOVWF STEPDATA
GOTO UPSTART

> 頭脳技版TIMER1使用の最低加減速インターバル50mS版
> 頭脳技版TIMER1使用の最低加減速インターバル250mS版
> 頭脳技版TIMER1使用の最低加減速インターバル250mS版 STEPDATA5 最低ウェイト150マイクロ秒

>これらは力ずくではないスマートで美しい方法なんですね。

一定のインターバルで何かを処理する場合は、クロックを基準に自動的に一定間隔で処理するタイマー割り込みを使うのが正当な手法ですが、タイミングがシビアでなければ必然ではありません。

タイマー割り込みを使った方が、チカラ技版よりもリニアに変化させることが出来るので、美しくできる可能性がありますが、自由度という意味ではチカラ技版を極めた方が幅が取れます。

今回使った割り込みプログラムの大部分は、前回バスケットボールの24秒タイマーとかを作ったときに、7セグパターンのスキャンで処理速度がばらつき、あまりにも精度がメチャメチャだったので、その時に書いたものの抜き取り加工品です。



割り込み版はインターバル250mS版ではざっと計算したらDPCNTが70を割らないと、ほぼ意味がなかったようで、

>走らせてみました。ひとつめとふたつめはほぼ同じに見え2分で全点灯に達し、それが1秒弱続きました。
>みっつめは1分で全点灯に達し続いた時間はもっと短かったです。

よって、この様な結果だったと言うことですね。

>割り込みというのはさらに難しそうですね。

レジスタの設定が増え、お約束処理も増え、面倒が増えるだけですね。

解れば何てこと無いですが、初心者〜初級の人には結構敷居が高いはずです。



フィックス宣言が出る前にアセンブルしてあった物です。

気が向いたらどうぞ。10分掛からないと思います。

最低ウェイト150マイクロ秒、速度変化インターバル1秒版
:020000040000FA
:020000001528C1
:08000800AB00030EAA00AC0AD4
:1000100014302C02031D0E28AC01291458200C109A
:100020002A0E8300AB0E2B0E0900831660308F0062
:1000300000308600F03085008117831207309C0065
:100040000030900083160C1483120B178B17850158
:100050008601851405158515FF30A6000130A8001E
:10006000AC01A90133285D2061206D2065206D2041
:1000700069206D2065206D20291C34281010280867
:10008000A602031833280130A6005D2061206D20F0
:1000900065206D2069206D2065206D20291C462873
:1000A00010102808A607031C4528FF30A600332897
:1000B000C9308E003C308F000800AC01582010146D
:1000C000080085100515851508008514051185158E
:1000D0000800851405158511080005108601061411
:1000E0008A20860186148A20860106158A208601C8
:1000F00086158A20860106168A20860186168A20A1
:10010000860106178A20860186178A208601051433
:100110008A2008002608A7009D20A70803190800C8
:10012000A70B8C2808001330A1000000000000007D
:10013000A10B95280000000008001D30A100000060
:100140000000A10B9F280000000008006430A300FD
:100150000000000000000000000000000000A30BF1
:10016000A82808003230A4009320A40BB42808006B
:100170006430A4009320A40BBA2808002830A500FE
:10018000B220A50BC02808006430A500B220A50B42
:10019000C6280800C930A500B220A50BCC2808004D
:02400E00503F21
:02401000FD3F72
:00000001FF



>宿題が解けました。
>249行 GOTO UPSTART → GOTO DNSTART
>ではないでしょうか。これで意図どおりに動作します。

>いろいろカットアンドトライして、
>STEPDATA 30
>TIME150
>それに、ループ回数の配分を
>200,120,30 から 100,20,10 に変更しました。
>これで、
>・1発点灯横走り
>・2発点灯(に見える)横走り
>・3発点灯(に見える)横走り
>・3発点灯(に見える)縦走り
>・全点灯(に見える)トップスピード
>の見せ方で上り坂35秒全点灯10秒下り坂35秒と程よい遷移です。

これで、今回の勉強は十分でしょう。

>ICSPで書き込むことができました。MPLAB IPEで書き込みを開始すると、PICKit3からの電源で回路が走り出したのには驚きました。なるほど便利ですね。

>なんじゃらほいさんにお世話になった試作4号機もこれにて完成です。ありがとうございました。

ようやく完成ですね。不適切なパラメータの試験レポートご苦労様でした。



>せっかく頭脳版プログラムで鍛えてくださろうとしていたのに区切りをつけてしまって申し訳ありません。

レベルの飛びすぎたプログラムに手を出して混乱するよりも、現状レベルで少しずつステップアップする方が勉強になります。

daruma(2017/12/07 Thu 17:06) [ 編集 ] [ 返信 ]


Re^5: LED Cube2

> いやむしろ悠長で気が長いという意味です。

先述したとおり
>> STEPDATAを'5'でTIME100でトップスピードへの変化時間よりはるかに長く待っても抜け出せないので、時間がかかっているのではなく無限ループだと
判断するのは短時間でできたのですが、もしや私の方でSTEPDATAとTIMEを変更したことが原因かもと、いただいたままの状態でも試してみたわけです。「長時間かかる」とのことだったものですから、

> 一定のインターバルで何かを処理する場合は、クロックを基準に自動的に一定間隔で処理するタイマー割り込みを使うのが正当な手法

はるか昔、BASICでプログラムを書いていた頃に、マウスの処理は割り込みでした。割り込みというもののイメージはわかるのですが、それをPICで書くのは
> レジスタの設定が増え、お約束処理も増え、面倒が増える
ことの想像もつきます。そんなわけで、チカラ技版で所期の動作が実現しましたので「これでできあがりに」とさせていただきました。どこをどう増減すると速さや回数が変わるのかを自分で試すことができてありがたかったです。

> 最低ウェイト150マイクロ秒、速度変化インターバル1秒版
走らせてみました。3分でトップスピードに達します。

> これで、今回の勉強は十分でしょう。
ありがとうございます。
今日はひさしぶりに机の上をかたづけました。

daruma(2017/08/14 Mon 12:09) [ 編集 ] [ 返信 ]

LED Cube

「ネオン管を使ったオーディオレベルメーター」スレに脱線で書いた「LED Cube」、私も作ろうと思っていたら、inara1さん、OKWaveの回答続きで見直した回路を提示なさいましたね。
それで、スレッドを立てさせてもらうことにしました。
私が貼るのもなんなので、回路図をここへお出しいただけますか。

> タイマIC(NE555)はLMC555に替えて、
とのことですが、私はどっちも同じものなんだと思っておりました。なにか違う点があるのですか?

inara1(2017/08/15 Tue 04:55) [ 編集 ] [ 返信 ]


Re: LED Cube

JPG 2457x1512 308.1kb

修正した回路図を提示します。

LMC555のほうが消費電流が小さく、最低動作電圧も低いのですが、LED Cubeのような用途ではどちらでもいいです。

NE555の内部はバイポーラトランジスタ、LMC555はMOS-FET(CMOS)で作られています。555はいろいろなメーカから互換品が出ています。
http://toragi.cqpub.co.jp/Portals/0/backnumber/2011/01/furoku/p002.pdf

バイポーラかCMOSかは型番で区別できますが、回路初心者には難しいかもしれません。

今はなきナショナルセミコンダクタ社の型番の付け方は分かりやすいです。LMならバイポーラ、LMCならCMOSです。よく使うLM358はバイポーラトランジスタを使ったオペアンプ、LMC6482はCMOSオペアンプです。

オーディオマニアの間で有名なハイブリッドオペアンプの型番はLH0032ですが、Hがハイブリッドの意味です。冒頭のLはリニアIC(デジタルでないアナログIC)の意味です。LMのMはモノリシック(チップ部品を並べたハイブリッド構成でなく、1つのシリコン基板に集積した)という意味です。

inara1(2017/08/15 Tue 08:15) [ 編集 ] [ 返信 ]


Re^2: LED Cube

JPG 1344x1008 321.9kb

以前、motomuraさんの織機用の回路でも使いましたが、4017を複数使うと、10以上の周期のリングカウンタが作れます。

添付図は周期25の例ですが、2段目の部分を繰り返せば、さらに大きな周期のカウンタも作れます。周期25というのは、5×5のLED Cubeに相当しますが、縦が5段だと合計125個のLEDが必要となるので作るのが大変そうです。

inara1(2017/08/15 Tue 09:09) [ 編集 ] [ 返信 ]


Re^3: LED Cube

JPG 1344x1008 273.8kb

上の回路では4017のCout(Carry Out)端子は使っていませんが、Carry Out端子には、15pinのクロック信号の1/10の周波数の信号が出てきます。この信号を次段の4017のクロックに入力すると、次段の出力は10クロックおきに出力が変わるようになるので、添付図のように結線すると4017を2個使うだけで60進カウンタを作れます(上の回路のように、クロック信号が入るたびに出力が右に1つずつ進むようなカウンタだと、60進カウンタを作るには7個の4017が必要です)。1段目のq0〜q9の出力を数字の0〜9を割り当てて、2段目のq00〜q50に0〜5の数字を割り当てると、00〜59の表示(59の次は00)ができます。

ニキシー管の数字表示器は、10本の信号線に対して0〜9の数字が対応しているので、この回路を使えばニキシー管時計が作れます。秒も分も60進数なので、4017を4個使えば00分00秒〜59分59秒の表示が可能になります。4017というICは相当古いですが、当初はニキシー管のように、セグメントごとに数字を表示させるもののために開発されたのかもしれません。

daruma(2017/08/15 Tue 09:59) [ 編集 ] [ 返信 ]


Re^4: LED Cube

555各種はメーカーが違うだけで同じものと思っていました。どれでもいい場合のほかにこれでなければならないという場合もあるのですね。部品箱を見たらLMCばかりでした。NEも買っておこうと思います。

4017を複数使うのは、OUT_10を次の4017に入れれば11〜・・・というように連続させたり、n進で桁上がりをつくったりできるというわけですね。

ニキシー管時計はいつかはと思いながらなかなか着手できません。

daruma(2017/09/03 Sun 15:04) [ 編集 ] [ 返信 ]


Re^5: LED Cube

JPG 960x720 115.9kb

配線図が描けました。なかなかぎっしりです。ジャンパがたくさんありますが、空中配線は無しにできました。

4017は、TC4017BPが1個だけしかないので発注しようと思いますが、現在秋月にはCD74HC4017しか無いようです。これでもいいですか。 TC4017BPをよそで探したほうがいいですか。

A,B,Cの2SC1815のエミッタに入れる抵抗は150〜2.2kΩとなっていますが、これはどのように決めたらいいですか。その範囲ならいいということでしょうか。

※ この図には誤りがあるので、
http://mpga.jp/akizuki-fan/index.php?mode=article&id=3353&page=1
に添付の図を修正してあります。

inara1(2017/09/03 Sun 15:36) [ 編集 ] [ 返信 ]


Re^6: LED Cube

>配線図が描けました
合宿の成果ですね。

>ジャンパがたくさんあります
4017のピン配置は順番になっていないのでジャンパ線だらけになります。なぜ順番になっていないのでしょうか。Siチップ内部の配線でどうにでもできるはずですが。

>秋月にはCD74HC4017しか無いようです。これでもいいですか
CD74HC4017だと、電源電圧の上限は6Vになります。TC4017(HCがついていないとき)なら電源電圧の上限は18Vです。
74HC4017 http://akizukidenshi.com/catalog/g/gI-09416/
TC4017 http://www.kansai-event.com/kinomayoi/PDF/4017B.pdf

> A,B,Cの2SC1815のエミッタに入れる抵抗
このLED Cubeは同時に1個のLEDしか光らないので、どのLEDが光っていてもその抵抗に電流が流れます。したがってその抵抗値によって全てのLEDの明るさが変わります。その部分を150Ω+2kΩVRなどにすれば、明るさを調節できます。パネル取り付け型のVRにして外部から調整できるようにすれば、部屋の明るさに応じて調整できて便利かもしれません。

そのLED Cubeは、発光部の配線をいかに見えないようにするかが肝だと思います。針金などで枠を作るのではなく、アクリル樹脂などの透明なもので梁や床面を作って、配線もできるだけ目立たないように(できれば透明)するとLEDが浮いて見えるので幻想的になりそうです。

daruma(2017/09/03 Sun 17:02) [ 編集 ] [ 返信 ]


Re^7: LED Cube

ピンの並びがゴチャゴチャでなければいいのにとぶつぶつ言いながら描きました。内部配線の都合なんだろなと思いましたが、そこはどうにでもなるものなんですか。

TC4017を探します。地元ショップにあるかもしれません。無ければ千石ででも。

> > A,B,Cの2SC1815のエミッタに入れる抵抗
150Ω+2kΩVRにします。

> そのLED Cubeは、発光部の配線をいかに見えないようにするかが肝だ
そのことも考えていました。レジンに封入するというのはどうでしょう。配線はごく細い単線にして。発熱はさほどでもないですよね。
逆にステンレス線などで整然と美しい格子を組むとか。

今日はVRを使うところまで配線図を固めて、それから応答時間測定器のほうに戻ります。

daruma(2017/09/03 Sun 17:15) [ 編集 ] [ 返信 ]


Re^8: LED Cube

JPG 960x720 117.8kb

電源スイッチとVRを付けました。

※配線図にあやまりがあったので、2017/09/17に差し替えました。
※VRにいくヘッダピンの位置向きを変更しました。

inara1(2017/09/03 Sun 17:53) [ 編集 ] [ 返信 ]


Re^8: LED Cube

>そこはどうにでもなるものなんですか
仕事でICチップの配線も描いています。仕事でも家でも配線作業です。仕事の配線は0.01μmから1μm幅です。

汎用ロジックICは幅10μmくらいのアルミ配線でトランジスタをつないで、最終的にチップ外周の電極パッドから、金線(Gold Wire)でパッケージの端子と接続しています。

よく使う74HC00の内部はこんな感じです。
https://zeptobars.com/en/read/NXP-74AHC00

チップ外周近くにある8角形や四角形が電極パッドです(直径は100μmくらい)。IC外部の端子配列は、このパッドの配列に近くなります(金線を放射状に出して接続するので)。パッドに出す信号線はチップ内部の配線次第でどうにでもなります。基板の配線と同じです。

>レジンに封入するというのはどうでしょう。配線はごく細い単線にして。発熱はさほどでもないですよね。
配線の発熱は気にしなくていいです。直径0.1mmくらいの単線が現実的ですかね。

>逆にステンレス線などで整然と美しい格子を組むとか
いろいろ工夫の余地がありそうです。

inara1(2017/09/03 Sun 18:26) [ 編集 ] [ 返信 ]


Re^9: LED Cube

JPG 1040x720 205.5kb

上で紹介した74AHCのチップとIC端子配列の関係は添付図のようになります。Vdd(14pin)が電源、Vss(7pin)がGNDですが、電極パッドの配列と端子配列が似ていることが分かります。VddとVssの配線が太くなっているのは配線インピーダンスを下げるためです。

daruma(2017/09/03 Sun 18:33) [ 編集 ] [ 返信 ]


Re^9: LED Cube

> 仕事でも家でも配線作業です

お家では肉眼手仕事の世界ですね。

>(金線を放射状に出して接続するので)

放射状に引き出すので交差できないと思っていました。それ以前のところで「どうにでもなる」のですね。

> いろいろ工夫の余地がありそうです。

そうですね。回路が動いてからの道のりが長そうです。

daruma(2017/09/04 Mon 13:13) [ 編集 ] [ 返信 ]


Re^10: LED Cube

TC4017BP、地元ショップ梅澤無線にありました。棚に8個、買い占めてきました。
私みたいな人が店のおじさんに「ほかの店は・・」と訊いて、「○○はパーツ扱わなくなったし、○○は無くなったし、西島無線もご主人亡くなって閉めたし・・」と話していました。ここも売り場の配置が変わって品数が減ったような気がします。

sealockman(2017/09/06 Wed 16:38) [ 編集 ] [ 返信 ]


Re^11: LED Cube

> TC4017BP、地元ショップ梅澤無線にありました。棚に8個、買い占めてきました。
>

秋月と比較すると少々高いですが、かなりの在庫がマルツにありますよ。
https://www.marutsu.co.jp/pc/i/35914/

以前、バスケ用の24秒カウンタの製作に使いました。
この時もかなり捜しましたが秋月にも千石にも在庫がありませんでした。
私の手元にも20個ほどあります。

それともしキット化のためなどでSMD無しで2層までの基板を起こすようなら、業者用のアートワーク図を描くくらいならEagleで簡単にできるので言ってください。

daruma(2017/09/06 Wed 18:30) [ 編集 ] [ 返信 ]


Re^12: LED Cube

sealockmanさんお久しぶりです。

TC4017BP、探せばあるようですね。マルツは130円ですか。やや高めですね。私が買ったのは118円でした。

基板の件、ありがとうございます。とりあえずプロトタイプはユニバーサル基板で作りますが、もしいくつも作るとなってもアイロン転写で自家製がせいぜいかなと思います。多くても5〜6枚でしょうし。基板外注も安くなったとは聞きますがある程度の枚数をつくらないと単価が下がらないですよね。

LEDマジックアイのときは、Pcbeで描いたものをレーザプリンタで出力してアイロンで転写してエッチングという家内工業でやりました。
Eagleはとっつきやすいですか?

sealockman(2017/09/06 Wed 19:44) [ 編集 ] [ 返信 ]


Re^13: LED Cube

PNG 286x350 28.3kb

> Eagleはとっつきやすいですか?

「慣れ」だと思います。

以前ご説明した記憶がありますが、機能的にはDesignSparkPCBとほぼ同等ですが、LTSpiceとの連携や、部品ライブラリの豊富さからEagleの方が人気があるようです。

 重宝なのは基板上の部品の配置が決まれば、配線は自動配線機能「AUTO ROUTER」がやってくれることです。
基板の材質や放熱、絶縁距離などから配線の太さや間隔、PADの大きさ、多層基板でのVIAの大きさなどをデザインルールで指定するだけでアートワーク図まで仕上げてくれます。(サンプル図参照)

GND付きのネジ固定用穴がドリル径0.1mmごとに用意されていることや
入手可能な殆どのメーカーのデバイスやコネクタなどが網羅されていて
申し分ないですね。

daruma(2017/09/07 Thu 05:04) [ 編集 ] [ 返信 ]


Re^14: LED Cube

本格活用にはEagleは優れものなんですね。こんど勉強してみようと思います。

inara1(2017/09/09 Sat 08:51) [ 編集 ] [ 返信 ]


Re^15: LED Cube

配線の見えないLED Cubeというのは見当たりません(全部見たわけではありません)。
https://www.google.co.jp/search?q=%22LED+cube%22&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwil576o4pbWAhWIfbwKHUMPBwcQsAQIJQ&biw=1346&bih=615#imgrc=_&spf=1504914214879

レジンに入れても配線は見えますし、レジンに入れるとメンテナンスできなくなります。

daruma(2017/09/17 Sun 09:24) [ 編集 ] [ 返信 ]


Re^16: LED Cube

JPG 1024x768 73.5kb

製作にとりかかったら、配線図に不都合な部分があったので、
http://mpga.jp/akizuki-fan/index.php?mode=article&id=3353&page=1
の図を差し替えました。
トランジスタのコレクタから出すジャンパ線が足と同じ穴に入るようになっていました。

LEDの造形を考えているのですが、結局はリードを直線的に整えてきれいにハンダ付けし立方体のフォルムを正確に出すのが現実的だと思います。これが乱れていると作り方の工夫以前に美しくないですから。

若松のホームページにこんなLEDがあるので、使うかどうかは別として取り寄せてみました。こんなふうに足が出ていると直交の交点にLEDが来る形を作るのに向いているかなと思って。

古い製品のようで、30mAくらい流さないと明るく光りません。
赤とオレンジと緑があります。

ところで、回路基板の高さを低く抑えたいので、三端子レギュレータを78M05Fにしようかと思うのですが、LEDは同時には光らないから500mAあれば足りますよね。78L05Sにまでしなくても高さは同じくらいですし。

inara1(2017/09/17 Sun 14:19) [ 編集 ] [ 返信 ]


Re^17: LED Cube

こちらも更新されていたのに気づきませんでした。

>結局はリードを直線的に整えてきれいにハンダ付けし立方体のフォルムを正確に出すのが現実的
そうですね。透明配線は誰も実現していません。

>古い製品のようで、30mAくらい流さないと明るく光りません
LEDは高輝度とそうでないものの2種類あります。発光材料が違います。古い売れ残りを高値で売っていませんか。

>LEDは同時には光らないから500mAあれば足りますよね
最大消費電流が50mAとしても、電源電圧が15Vのときの発熱量は0.5Wですが、TA78M05Fの最大発熱量(絶対最大定格)は1Wなので問題ないです。78L05の最大発熱量は0.5Wなので78L05は使わないほうがいいです。以前、何かの作製でLEDを追加したとき、78L05が発熱したことがありましたね。

daruma(2017/09/17 Sun 14:40) [ 編集 ] [ 返信 ]


Re^18: LED Cube

> そうですね。透明配線は誰も実現していません。
極細い線で繋いでレジンにという案は、封入する前の状態で立方体のフォルムを保てないのでボツです。

> 古い売れ残りを高値で売っていませんか。

高くはないです。50個500円ほどです。若松のサイトに何年も前から出ていて、気になってはいました。かつてはこうした変わった形のLEDが見られたように思いますが、いまは片側に足が出たタイプ(なんというのでしょう)のものばかりになってこうした形のものは他で見かけません。

> 何かの作製でLEDを追加したとき、78L05が発熱したことがありましたね。

ありましたね。78M05Fで行きます。

inara1(2017/09/17 Sun 14:56) [ 編集 ] [ 返信 ]


Re^19: LED Cube

>50個500円ほどです。
高いです。1個1円もしないはずです。そういう特殊なリード形状のものは汎用性がないので相当安く仕入れているはずです。昔のLEDは発光材料が今のとは違っていて、光度が数十ミリカンデラしかなく、20年くらい前から生産されていないので20年モノの在庫品でしょう。LEDチカチカブームに便乗していると思います。

daruma(2017/09/17 Sun 15:21) [ 編集 ] [ 返信 ]


Re^20: LED Cube

> >50個500円ほどです。
あ、間違えました。100個500円です。
http://www.wakamatsu-net.com/cgibin/biz/pageshousai.cgi?code=19090311&CATE=1909
それでも高いですか。
> 20年モノの在庫品でしょう。
きっとそうですね。以前は見かけたのにこのごろ見ないような形のものが他にもあるようです。

inara1(2017/09/17 Sun 16:37) [ 編集 ] [ 返信 ]


Re^21: LED Cube

単価5円なら許せる範囲です。在庫数が29680個もあるのですか。でも全部買い占めても14万8400円ですね。

まぶしいほど光らせる必要がないけど大量に使う場合はこういう格安LEDでも需要はあるのかもしれません

1個5円というのは我々の世代では駄菓子屋の世界です。グッピーラムネが確か5円、パッケージがサイコロになったキャラメルが10円、ベビーラーメン(ベビースターではない)が20円くらいだった記憶があります。ポンカン飴、都コンブ、のしいか、麩菓子、粉ジュースというのがありましたが今でもあるのでしょうか。

20年くらい前まで、勤務先で半導体レーザやLEDの開発をやっていました。残念ながら製品にはなりませんでしたが。

daruma(2017/09/18 Mon 09:51) [ 編集 ] [ 返信 ]


Re^22: LED Cube

三角形のニッキ、ビニールでくるんだ丸い棒マンボーったかな?、喉が詰まりそうなおっきな飴、口の中が赤や緑に染まる味付きの紙・・・、どれも5円だったような。ベビーラーメンはまだ登場していなかったのが世代の差ですね。

> 20年くらい前まで、勤務先で半導体レーザやLEDの開発をやっていました。
以前おっしゃっていた、ノーベル賞の中村さんと学会発表競い合ってた頃ですね。

半固定VR2個が銘柄そろわずちぐはぐで、休み明けまで完成できません。そういうとここだわってしまいます。

inara1(2017/09/18 Mon 14:16) [ 編集 ] [ 返信 ]


Re^23: LED Cube

ちょうど今頃、台風の中心が札幌付近にありますが大丈夫ですか。
こちらは台風一過の猛暑で、海老名アメダスの最高温度は34℃でした。

daruma(2017/09/18 Mon 16:04) [ 編集 ] [ 返信 ]


Re^24: LED Cube

JPG 1024x768 127.4kb

テレビはずうっと台風情報をやっていますが、我が家のあたりは雨こそ一時降っていましたがいつのまにか地図の上では通り過ぎたことになっていました。そちらは暑いんですね。北海道は台風が来ても来なくてももう秋です。

ここまでできました。あとは半固定VR待ちです。
高さを抑えるのに、電解コンは低背のものを使いました。無駄にオーディオ用の金ピカですが。ヘッダピンも横出しです。
上に載るのはキューブだから、基板の狭い側にピンを出して全体が正方形に収まるように考えています。その関係で、VRに行くピンの位置向きを変えました。(サンハヤトの基板は品番記載のためこの列一部ランドが無いんです)
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3353.jpg

回路試運転のLED群をブレッドボードに組むのもたいへんそうです。いっそキューブ試作版をいきなり作ろうかとも・・・。

daruma(2017/09/20 Wed 21:03) [ 編集 ] [ 返信 ]


Re^25: LED Cube

JPG 960x720 104.9kb

ネタ並走であっちこっちやっています。
LED群のブレッドボード配線を描いてみました。こんな感じでどうでしょう。

daruma(2017/10/08 Sun 07:44) [ 編集 ] [ 返信 ]


Re^26: LED Cube

すったもんだがありましたが、うまく動きました。
写真を軽くするPCを持ってきていないので、写真は帰宅してから載せます。
すったもんだというのは、
ヘッダピンからブレッドボードに繋ぐのに、できあいの片側オス片側メスのケーブルを使ったのですが、これが12本中3本導通不良でした。散々悩んだあげく判明しました。それが解決したら、1本だけ点かず、これはハンダ不良でした。毎度ながらのお粗末。

daruma(2017/10/08 Sun 09:36) [ 編集 ] [ 返信 ]


Re^27: LED Cube

動画を揚げる方法をあとで勉強しようと思いますが、順調に動いています。ネットでいろいろ見た中には点灯パタンが変わって行くものもありましたが、あれはPICで作ったものなんですかね。
半固定VRの調整で微妙なずれで変わって行くようにできるかなと思ったのですが、そうはいかないようです。

そこで、VRを外出しにしてユーザが調整による変化を楽しめるようにと考えたんですが、それよりもセンサで周囲の変化に応じるようにするのはどうでしょう。半固定VRをそのままCdSに置き換えるのが安直ですが、CdSというのも今ふうじゃないので、以前「暗くなったらパッと点く」で使った照度センサはどうでしょう。
温度では変化が無さすぎるし、音だと目まぐるしく変化してパタン変化に見えないでしょうし、明るさだと室内の変化に対応するほか手をかざしたりして変化させることもできて楽しいと思います。

daruma(2017/10/10 Tue 16:58) [ 編集 ] [ 返信 ]


Re^28: LED Cube

JPG 1024x768 153.2kb

LED Cube試作1号機はこんな姿です。LED群はテスト用なのでブレッドボードに平面配置です。一本ごとのケーブルを使っていますが、できあがり時には5ピンソケットを1ピンおきにして使います。
テンポ調整を外出しVRにしてもセンサにしても、ヘッダピンを外周部に立てる必要があるので、配線図を若干変えようと思います。

daruma(2017/10/10 Tue 18:29) [ 編集 ] [ 返信 ]


Re^29: LED Cube

JPG 960x720 118.5kb

試作2号機はこのようにしようと思います。
以前使った可視光センサNJL7502LはCdSと置き換えて使えるとのことでしたから、単純に「固定抵抗+VR」を「固定抵抗+NJL7502L」に置き換えて固定抵抗の値をカットアンドトライすることでどうでしょう。安直すぎますか?

daruma(2017/10/18 Wed 16:10) [ 編集 ] [ 返信 ]


Re^30: LED Cube

JPG 960x720 101.2kb

3×3×3個のLEDを並べるのに、いつもの基板が入る正方形の敷地では広すぎます。LED間があまり離れていると群として光るように見えないと思いますから。

そこで、ぎゅうぎゅう詰め虫が騒いで、こんなふうにしてみました。
秋月の45mm角正方形基板は穴数が足りなくて無理でした。50mm角に切った基板です。

※ 下の試作2号機のあと少し修正を加えたので、図を差し替えました。

daruma(2017/10/18 Wed 16:25) [ 編集 ] [ 返信 ]


Re^31: LED Cube

JPG 1024x768 188.1kb

製作は一発完動でした。
※上の図を差し替える前の製作ですから、上図とは少し違います。

テンポ変化は、[固定抵抗−VR−照度センサ]を直列にして実験してみます。固定抵抗の適切値を見つけてからと、基板上はゼロΩ抵抗がわりのジャンパ線にしてあります。

図で右側の方は1kΩ+1MΩVRになっていますから、CdS(最大1MΩ程度)と置き換えられるNJL7502Lなら行けるのではと予想していますが、左側のVは10kΩ+50kΩVRですから、NJL7502Lの抵抗値相当では大きすぎるかもしれません。VRと並列に入れてはどうかなと思ったりしています。

札幌も山寄りの郊外では雪が降ったとTVで行っています。我が家のあたりはまだですが、そう遠いことではないでしょう。

daruma(2017/10/18 Wed 17:12) [ 編集 ] [ 返信 ]


Re^32: LED Cube

NJL7502Lを1MΩVRに付け加えても、VRを外して置き換えても、ダメです。点灯が移動しない状態のままで、明るくしても暗くしても変わりません。NJL7502Lの極性はどうなんでしょう、向きを変えても同じです。

最大1MΩのCdSにしてみました。こちらは明るさで変化します。変化幅はあまり大きくありません。

daruma(2017/10/19 Thu 11:55) [ 編集 ] [ 返信 ]


Re^33: LED Cube

NJL7502Lに流れる電流が微小過ぎて繋がっていないと同然ということでしょうか。
それで、VRと直列にするとOFFのまま、VRと並列に入れても変化に影響しないと。

そうであれば、トランジスタで増幅すればよいでしょうか。
同サイズ基板を2階建てに重ねて、そこにVRとLEDへの土台を設ける格好にする計画です。その基板上に小さな回路なら置けるスペースがあると思いますが。

inara1(2017/10/19 Thu 18:05) [ 編集 ] [ 返信 ]


Re^34: LED Cube

JPG 720x1134 144.9kb

北海道は山間部では雪だそうですね。こちらも今週日曜からずっと10数℃の気温です。エアコンは暖房にしています。コタツを出したいくらいです。1984年に自転車で北海道を回ったときは、9月末に音威子府あたりでミゾレが降りました。その日は豊富温泉の民宿に泊まりましたが、温泉が石油臭かったです。

> NJL7502Lに流れる電流が微小過ぎて繋がっていないと同然ということでしょうか
フォトトランジスタは一方向にしか電流が流れないので、VRの代わりにはなりません。

CdSは明るさによって抵抗値が変わる素子(双方向に電流が流れる)なのでVRの代わりになります。添付図は、CdSの抵抗値が50kΩから150kΩまで変わったときのLMC555の出力波形をLTspiceで見た結果です。明るくなって抵抗値が下がるとLEDは速く進み、暗くなるとLEDの進行が遅くなります。

どうしてもNJL7502を使いたい場合は、NJL7502の出力電流に応じて、LMC555の5pin電圧を変えるという方法もあります。5pin電圧を下げるとLEDは速く進むようになります。

daruma(2017/10/19 Thu 19:00) [ 編集 ] [ 返信 ]


Re^35: LED Cube

関東も北海道並みに寒い昨日今日だそうですね。
豊富温泉に泊まりましたか。私も十年余り前に行ったことがあります。石油臭いので有名な温泉で、それを目当てに来る人も多いようです。アトピーに効くと湯治滞在する人たちもいるそうです。

> フォトトランジスタは一方向にしか電流が流れないので、VRの代わりにはなりません。
CdSと置き換えられるというので単純に期待したんですが、「CdSはVRに置き換えられる→NJL7502LはCdSに置き換えられる→∴VRをCdSと置き換えられる」とはいかないんですね。甘かった。

ここはCdSで行くのが無難でしょうか。明日、最大抵抗値2M/1M/500kのCdS3種が秋月から届きます。いろいろ実験してみます。いかにも昔の素子で今日的でないのと、樹脂封入でなくて5mmφの表面がむき出しなのでケース入れがスマートに行かなそうなのとで、NJL7502Lでできるならと思ったんですが。

> LMC555の5pin電圧を変えるという方法もあります。
今の回路では5pin使っていないですね。大幅に手を入れることになりそうですか。1階基板からピンで2階基板に持って行って2階でなんとかできるといいんですが・・・。

やっぱりCdSかな・・・。

inara1(2017/10/20 Fri 05:40) [ 編集 ] [ 返信 ]


Re^36: LED Cube

> 関東も北海道並みに寒い昨日今日だそうですね
北海道並なんて言ったら怒られます。

豊富温泉は石油目当てで掘ったら温泉が出てきたという経緯だそうなので石油臭いのは当然ですね。あのときは札幌から宗谷岬まで4日かかりました。宿泊したのは、北大(恵迪寮)→滝川(たまねぎ畑で野宿)→塩狩YH→豊富温泉→宗谷岬(バス停)です。日本最北端で野宿というのは痛快でした。

>今の回路では5pin使っていないですね。大幅に手を入れることになりそうですか。
抵抗とトランジスタとNJL7502を追加しますがスペースはなさそうですね。ちょっと実験してみますが、うまくいっても2号機以降ですね。

CdSはいろいろ持っています。Cd(カドミウム)が入っているのに販売しているのが不思議ですが、趣味の部品だとRoHS規制など関係ないのでしょう。

inara1(2017/10/20 Fri 08:48) [ 編集 ] [ 返信 ]


Re^37: LED Cube

JPG 720x1040 113.6kb

NJL7502を使った速度可変回路です。波形は回路シミュレータの結果です。明るくなるとLEDのスピードが落ちます。

daruma(2017/10/20 Fri 10:01) [ 編集 ] [ 返信 ]


Re^38: LED Cube

この時間に、今日はお休みですか? ありがとうございます。

LMC555まわりをこれに置き換えて、outを4017の14pinに入れればよいのですね。

daruma(2017/10/20 Fri 12:03) [ 編集 ] [ 返信 ]


Re^39: LED Cube

JPG 454x124 39.6kb

荷物が届いたので最寄りヤマト営業所に取りに行ってきました。不在再配達も悪いしいつ来るかと待っているのもいやなので、配達予定メールが来たらネットで営業所留めにしてこのようにしています。

CdSの抵抗値をざっと調べてみました。変化がけっこうゆっくりですし、バラツキも大きいと思われますから、たまたま手に取った品の1回きりの試行結果です。
「室内明」は机上の照明下、「室内暗」は手をかざして陰に、「暗」は太い熱収縮チューブをすっぽり被せ、「明」はスマホのLEDライトを直近2cm程からあてました。

特に暗側はスペックからはかなり離れています。おおざっぱに、明るいときは似たり寄ったりで暗くなったときの抵抗値の上がり方に違いがあるといったところのようです。

daruma(2017/10/20 Fri 14:32) [ 編集 ] [ 返信 ]


Re^40: LED Cube

いろいろやってみました。
基板左側のLMC555には暗抵抗0.5MΩのCdS、最小抵抗値が結構あるので下駄ばきの固定抵抗は入れず、これでそこそこ変化するのですが調整余地を持たせるために1kΩVR、基板右側のLMC555には暗抵抗2MΩのCdS、下駄ばきの固定抵抗は元のまま10kΩ、調整余地を持たせるために100kΩVR、これがカットアンドトライの落ち着きどころとなりました。
特に左側回路でですが抵抗値最小でさらに早くなるようシフトしたいところですが、このあたり決めているのは6pin(2pin)の10μFでしょうか。

inara1(2017/10/20 Fri 15:19) [ 編集 ] [ 返信 ]


Re^41: LED Cube

今日はお休みです。平日の日中は職場なので気づきませんでしたが、選挙カーがウルサイです。

CdSはいろいろ実験して調整してください。

抵抗値最小でさらに早くなるようシフトさせるのなら10μFの容量を小さくしてください。1μFにすると10倍速くなります。

こちらはNJL7502と2SC1815を使った回路
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3489.jpg
の実験をしてみましたが、R3は22kΩでなく100kΩくらいが良さそうです。この回路では明るくなると遅くなりますが、明るくなると速くなるようにするには、NJL7502とR3を入れ替えればいいです。

inara1(2017/10/20 Fri 15:45) [ 編集 ] [ 返信 ]


Re^42: LED Cube

>LMC555まわりをこれに置き換えて、outを4017の14pinに入れればよいのですね
darumaさんの回路のLMC555
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3290.jpg
はそのままで、LMC555の5pinに新たに回路(抵抗2本と2SC1815とNJL7502)を付け足すだけです。

今日は15時くらいからSTVラジオ(1440kHz)が良好に入感します。

daruma(2017/10/20 Fri 17:04) [ 編集 ] [ 返信 ]


Re^43: LED Cube

10μFを小さくするんですね。あとで4.7μFに取り替えてみます。今は弐階の基板を描いています。

> 明るくなると速くなるようにするには、NJL7502とR3を入れ替えればいいです。

なるほど、中点がVRの真ん中端子でその両側端子に相当するわけですね。

> LMC555の5pinに新たに回路(抵抗2本と2SC1815とNJL7502)を付け足すだけです。

3pinと6pinをピンで取り出すのに加えて5pinも2階に持って行って、そこに追加部分を置くんですね。CdSバージョンが終わったら、試作3号機の配線図を描いてみます。

> 今日は15時くらいからSTVラジオ(1440kHz)が良好に入感します。

私は、穴蔵のPCでradiko.jpからSTVを聞いています。机の上が狭いので便利です。radiko.jpでよそのエリアの局を聴くには有料の登録をしなきゃならないので、電波が入感すればそれに越したことはありませんね。

daruma(2017/10/20 Fri 19:02) [ 編集 ] [ 返信 ]


Re^44: LED Cube

JPG 960x720 84.0kb

2階基板の配線図が描けました。
ノンスルーホールの両面基板を使い、1階の連結ピンに対応する丸ピンソケットを裏側に付けます。したがって、ピンからの配線は表側に張ります。VR等の部品は表側に付け裏で配線します。
LED群からの足は丸ピンを付けて丸ピンソケットで受けます。

基板に組んだものをケース背面から差し入れてVRのナットで取り付けます。

工作がうまくいくかどうか、これでやってみます。

daruma(2017/10/21 Sat 17:01) [ 編集 ] [ 返信 ]


Re^45: LED Cube

JPG 1024x768 155.7kb

2階基板ができて試作2号機の完成です。DCジャックと隣の丸ピンソケットはわずかにスペースが足りなかったので、ジャック側面をサンドペーパーで削りました。

daruma(2017/10/21 Sat 17:07) [ 編集 ] [ 返信 ]


Re^46: LED Cube

JPG 1024x768 184.4kb

連結するとこのようになります。背の低いパーツを使ったのでこの高さにおさまりました。

LMC555のコンデンサは、左回路だけ4.7μFにしました。右回路は10μFのままとしました。
左回路は早くなったぶん下駄ばきの1kΩを復活しましたが、もう少し小さいほうがいいかもしれません。
※ 結局470Ωにしました。

動作テストも合格しました。

さて、いよいよCube部分の製作です。

daruma(2017/10/22 Sun 10:50) [ 編集 ] [ 返信 ]


Re^47: LED Cube

JPG 1647x720 633.6kb

Cube部分よりも先にこっちに手をつけました。
基板の固定用に四隅を空けてあったのですが、リアパネルの固定に右下隅だけ使うことにして、このように描いてみました。

CdS版とそろえて「暗くなると遅くなる」にするため、NJL7502Lと抵抗とをチェンジしましたが、これでいいでしょうか。NJL7502Lの極性はこれでいいですか。
抵抗は100kΩにしていますが、これはスピードを見てカットアンドトライでしょうか。VRは2個とも50kΩに変更ですか。
VRと直列の抵抗はメイン基板にあるので、前作のまま470Ωと10kΩにしてありますが、これらは1kΩにしたほうがいいですか。

前バージョンでVRが基板から突出していたので1列下げました。

inara1(2017/10/22 Sun 13:04) [ 編集 ] [ 返信 ]


Re^48: LED Cube

NJL7502を使った回路
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3489.jpg
では、R2は22kΩのままで、R3を100kΩに変更しました。R2を100kΩにすると明るくなったときのスピードが遅くなりますが、スピードはVRで広範囲に変えられるのでカットアンドトライで決めてください。

daruma(2017/10/31 Tue 13:36) [ 編集 ] [ 返信 ]


Re^49: LED Cube

JPG 1024x768 146.2kb

1週間余りのご無沙汰でした。

NJL7502L版はスイッチの調達に手間取ったりで一時停止しています。
LED群を作りました。

まず板に穴を開けて治具(冶具?)を作りました。これで水平ラインは作業が楽になりました。9本のカソードを「山」の字型に繋げば事足りるところ、構造強度を持たせるのに「田」の字形に配線しようと考えたのですが、手間を少し省いて「日」の字形にしました。カソードのリードを隣へ隣へと繋いで行って最後に中央の1個に1本だけ付け足してできあがりです。
垂直ラインはアノードを縦に注ぎ足して最下層の足が基板への差し込みピンとなります。

なんとか形になりましたが、「頑張ってハンダ付けしました」程度のできで仕上げ品質としてはいまひとつです。

「田」の字形の枠組みをハンダ以外で整然と作っておいてそこに各カソードを留め付けるようにできれば工作精度はもっと上がると思うのですが、なにか方法はないかと考えています。ステンレス線をスポット溶接するとか、金網のように交点をねじって固定するとか。

垂直ラインを整然とするのはもっと大変そうです。ステンレス線に各アノードを留め付ければ直線性は保てると思うのですが、LEDを上向きに付ける場合、柱を樹脂外周の外にしなければならないのでやっかいです。

例のリードが左右に出た異形のLEDを使えばなにかいい形が作れるかもしれません。

daruma(2017/10/31 Tue 14:10) [ 編集 ] [ 返信 ]


Re^50: LED Cube

JPG 1024x768 164.3kb

試作2号機(CdS版)に取り付けて試運転しました。

うまく動きはしましたが、改善課題が。

LEDを上向きに付けているので、直下のLEDに照らされて真上のLEDも点灯しているように見えます。在庫の都合でクリア樹脂のLEDを使ったのですが、乳白樹脂のものにすれば抑えることができるかもしれません。また、明るさをやや控えればいくらか軽減できます。
LEDを真上ではなく少し斜め外側向きに付けるようにすればこの問題は起こらないわけですが、せっかく作ったひとつだけの実験機を曲げたりねじったりするのもためらわれて手を出していません。
例の異形LEDを使って作ることを考えてみます。

ところで、そもそも動機となった
https://www.youtube.com/watch?v=AUAEgxfq36A
を改めて見てみたのですが、点灯パタンが周期的に変わっています。この回路では、VRの調整で決めたパタンに固定されるんですよねえ。で、明るさに反応するようにと考えたわけですが・・・。

daruma(2017/11/03 Fri 11:29) [ 編集 ] [ 返信 ]


Re^51: LED Cube

JPG 1024x768 147.1kb

試作3号機(NJL7502L版)ができました。
明るさ調整は半固定にして1階基板に置きました。ここのピンが無くなったのでDCジャックと電源スイッチを無理なく置くことができました。

スピードにかかわる定数は、とっかえひっかえの末、電解コンは両方とも4.7μF、抵抗は左回路は1.5kΩ+100kΩVR、右回路は10kΩ+100kΩVRに落ち着きました。

明るさによる変化があまり大きくありません。少し変わる程度です。R2(エミッタからGND)は22kΩ、R3(コレクタベース間)は100kΩにしています。
> R2を100kΩにすると明るくなったときのスピードが遅くなりますが、
これは全体に遅い方へシフトするのですか。
変化幅を大きくすることはできないでしょうか。

inara1(2017/11/04 Sat 14:52) [ 編集 ] [ 返信 ]


Re^52: LED Cube

JPG 1040x720 51.6kb

> 明るさによる変化があまり大きくありません
LMC555の5pin電圧が4V〜5Vのときに発振周期が大きく変わります。普通の明るさのときに5pin電圧が4Vくらい、明るく(暗く)なったときに4.8Vくらいになるようにうまく調整すれば変化幅が大きくなります。

daruma(2017/11/04 Sat 15:12) [ 編集 ] [ 返信 ]


Re^53: LED Cube

5pin電圧がそのようになる点をVRでうまく見つければいいのでしょうか。5pin電圧を見ながらVRを動かしてみようと思います。
今は、ステンレス線でキューブを形よく作ろうと苦心しているところです。

inara1(2017/11/04 Sat 16:32) [ 編集 ] [ 返信 ]


Re^54: LED Cube

周囲の明るさが変わったときに5pin電圧が4V〜5Vの範囲になるようにしてください。周囲の明るさによっては4Vを下回ってしまうかもしれませんが、全ての明るさに対してその範囲に収めることは難しいです。電源電圧が5Vなので、上側が5Vを超えることはないです。

daruma(2017/11/04 Sat 16:46) [ 編集 ] [ 返信 ]


Re^55: LED Cube

まだやってみていないのですが、その範囲にできるだけ収まるように抵抗値を調整して、その設定でのスピードについては電解コンのほうで調整すればいいのですか。

ステンレス線用の冶具がなんとかできました。

daruma(2017/11/05 Sun 10:23) [ 編集 ] [ 返信 ]


Re^56: LED Cube

ふたつの555とも照明下の明るい状態で0.9V程度、手をかざして陰になると4.05V程度になります。スピードは目に見えてはっきり変化します。(暗くなると遅くなる形にNJL7502Lを入れてあります)
以前の実験で抵抗値を固めるのに大きいVRを付けていたので、変化の裾野あたりで変化幅が小さかったのですね。いい具合です。

inara1(2017/11/06 Mon 17:20) [ 編集 ] [ 返信 ]


Re^57: LED Cube

うまくいきましたか。屋内でも屋外でも周囲の明るさは速く変化するものではないので、実環境でのスピードは急には変わらないですね。暗くなると遅くなるのは感覚的に合っていると思います。

光センサをLEDに近づけるとどうなりますかね。速くなったまま安定してしまうのでしょうか。

以前、darumaさんは、光を渡せるキャンドルという、LEDでろうそくのようなものを作ろうとしていましたが、1/fゆらぎのように、ランダムに、ゆっくりと明るさやスピードが変わるようにできると面白いかもしれません。

秋月に三端子LEDキャンドルIC
http://akizukidenshi.com/catalog/g/gI-08752/
というのがあります(手元にあります)。これにLEDをつなぐと明るさがランダムに変わるのですが、ゆっくりと明滅するのでなく、発光と消灯の2パターンだけで、しかも、10秒周期くらいで同じ明滅パターンの繰り返しなので、全然ローソクっぽくないです。

LEDの光をやわらげるには拡散キャップ
http://akizukidenshi.com/catalog/g/gI-01120/
というのを被せればいいです(これも手元にあります)。お坊さんの頭が光っているような感じになりますが、集光性はなくなるので、上側のLEDが照らされるようなことはなくなるはずです。

daruma(2017/11/06 Mon 18:14) [ 編集 ] [ 返信 ]


Re^58: LED Cube

ステンレス線作戦はうまく行かず苦労していました。ステンレス用フラックスとヤニ無しハンダのセットがホームセンターに有ったので買ってきましたが、大き目のコテで大胆に付けることはできるものの、LEDの足をちまちまと付けようとすると流れてくれず悪戦苦闘、そのうちにフラックスの残渣のような黒いこびりつきが生じてなおさらダメという状態です。ある程度大きな接合面をエイッとつけるのに適しているようです。
なんとかいちばん下の層だけ作りましたが、労多くして仕上がりは大したことなく、これならばと当初のリードを曲げて注ぎ足していく作戦に戻ろうと思います。縦のライン用の冶具も作ろうと思います。くぼみのある枕を等間隔に置くイメージです。

> 光センサをLEDに近づけるとどうなりますかね。速くなったまま安定してしまうのでしょうか。

LEDの光を拾ってはいけないと、センサは正面パネルに前向きで付けるつもりで、とりあえず今は首を曲げて外向きにしています。「どうなるか」はやってみるべきですね。さっそくやってみました。個々のLEDが一瞬光るだけなので影響は受けないようです。スピードを速くして盛大に点いているように見える状態にもしてみましたが、知らん顔しています。手で暗がりにしてやるくらいの変化でないと関知しないようです。
これなら、天面に付けてもいいのかもしれません。そのほうが工作はしやすいのです。でも、まあ計画どおり正面向きにします。

> 以前、darumaさんは、光を渡せるキャンドルという、LEDでろうそくのようなものを

はい、具体化はしませんでしたが。
そうなんです。ゆっくり変化していくようにしたいんです。試作してみて、調整したスピードでずっと一定なんだとわかったのですが、先日も書いたように、
> ところで、そもそも動機となった
> https://www.youtube.com/watch?v=AUAEgxfq36A
> を改めて見てみたのですが、点灯パタンが周期的に変わっています。
なので、どうやっているんだろうと不思議です。まさか、外出しのケーブルの先にVRが付いていて手動で変えているなんてことはないと思いますが。
あちらの回路には、A,B,Cトランジスタのコレクタに電解コンが入ってますよね。これはどういう働きなんでしょう。

拡散キャップも考えたんですが、ぼんやりしてしまうかなと思ったり・・・。LEDの底面に不透明な塗料をチョンと付けてみようかなと思いつつまだやっていません。

今週は仕事がたてこんで、平日取りかかれないのが痛いです。

daruma(2017/11/08 Wed 11:32) [ 編集 ] [ 返信 ]


Re^59: LED Cube

>> あちらの回路には、A,B,Cトランジスタのコレクタに電解コンが入ってますよね。これはどういう働きなんでしょう。

OKWAVEでinara1さんから質問者さんへの回答では不要とのことですが、無意味無用なのですか?元回路の作者さんはどんな意図で入れたんでしょうね。

点灯パタンが移り変わっていくようには、PICを使えば自由自在なんでしょうが、555+4017回路では無理なんでしょうか。明るさ感応型で変化を持たせるのが正解ですかね。

inara1(2017/11/09 Thu 02:56) [ 編集 ] [ 返信 ]


Re^60: LED Cube

>あちらの回路には、A,B,Cトランジスタのコレクタに電解コンが入ってますよね。これはどういう働きなんでしょう。
LED Cubeの上中下が切り替わったときに、残像を残すためでしょうが、10μFくらいではほとんど効果はないと思います。上中下の切り替わりを非常に速くすれば効果が見えてくるかもしれません。実験してみてはいかがでしょうか。

点灯パタンが移り変わっていく関連動画がありますがPICを使ったものでしょう。USBケーブルなどで外部からコントロールしていなくて、ICが1個だけという構成だとPICでしょう。

555+4017回路では、いろいろな発光パターンをDIPスイッチなどで作って、そのパターンを切り替える方法も可能ですが、回路が複雑になります。以前、motomuraさんの要望で作った織機のパターンはその方法です。

なんじゃらほい(2017/11/09 Thu 20:06) [ 編集 ] [ 返信 ]


Re^61: LED Cube

変速にしたいなら、クロックだけマイコンで生成すればよいのでは?

まあ、マイコンを使うんなら、PIC16F87が1個あれば、4017やドライバーTRが無くても似たようなものが作れます。

面倒な初期設定はこのあたりでしょうか。
;LED CUBE駆動(ソース動作) PIC16F87
;
;
; PORTA-1(18) A COMON
; PORTA-0(17) 9
; PORTA-7 OSC(16) Input Only(使用しない場合プルアップ)
; PORTA-6 OSC(15) (使用しない場合プルアップ)
; 電源+(14)
; PORTB-7(13) 8
; PORTB-6(12) 7
; PORTB-5(11) 6
; PORTB-4(10) 5

; PORTB-3(9) 4
; PORTB-2(8) 3
; PORTB-1(7) 2
; PORTB-0(6) 1
; VSS(-)(5)
; PORTA-5(4) MCLR(要プルアップ)
; PORTA-4(3) (オープンドレイン 要プルアップ)
; PORTA-3(2) C COMON
; PORTA-2(1) B COMON

;
list p=16f87
#include <p16f87.inc>

ERRORLEVEL -207,-302,-306
;PDF132P
__CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_ON

;******************************
; 変数レジスタ割付定義
;******************************

DPDT EQU 20H ;LCD output data ←16F87のRAM先頭アドレス
CNT1 EQU 21H ;タイマ用カウンタ
CNT2 EQU 22H
CNT3 EQU 23H
CNT4 EQU 24H
CNT5 EQU 25H
DPCNT EQU 26H
FASE EQU 27H
DPCNTW EQU 28H
MDCNT EQU 29H
TEMP EQU 2AH

ORG 00H

;************************************
; 入出力ピンモード初期化
;************************************

PORT_INI

;OSCON
;
;bit7 NO USE
;bit6-4 INTRC CLOCK 000=31.25KHz 001=125KHz 以降1ビット増加毎に周波数が倍になる
;bit3 OSCT オシレータ・スタートアップ・タイムアウト状態に、
;1=優先クロックを使う 0=T1OSC or INTRC を使う
;bit2 IOFS INTOSC Frequency Stable bit
;1 = 安定
;0 = 不安定
;
;bit1-0 Oscillator Mode Select bits
;
;00 = Oscillator mode defined by FOSC(2:0) FOSCレジスタ(2-0ビット)によってdefine(定義)する
;01 = T1OSC is used for system clock タイマー1を使う
;10 = Internal RC is used for system clock 内蔵RCを使う
;11 = Reserved 予約済み

BSF STATUS,RP0 ;Set page 1

MOVLW B'01100000' ;下位2ビット注意 00じゃないとCONFIGのINTRC_IOが無効になる
MOVWF OSCCON ;BANK1

MOVLW B'00000000' ; 0-7 OUTPUT
MOVWF TRISB ;PortB set
MOVLW B'11110000' ;RA0〜3以外IN
MOVWF TRISA ;PortA set

BSF OPTION_REG,7 ;BANK1 0でプルアップ有効
BCF STATUS,RP0 ;Set Page 0

MOVLW 07H ;07Hを設定 16F87/88をPORTAをデジタルI/Oに
MOVWF CMCON ; コンパレータOFF
CLRF PORTA
CLRF PORTB ;all clear

BSF PORTA,1 ;桁コントロール クリア済み
BSF PORTA,2 ;桁コントロール クリア済み
BSF PORTA,3 ;桁コントロール クリア済み




単にクロックだけをマイコンで生成するなら12F609が1個で、555の2個分のクロックを生成できます。

一応7段階変速になっていますが、動作確認をしていないので動くかどうかは判りません。

時間変化型12F609用可変クロック出力
:020000000528D1
:08000800090083169F010A3074
:10001000850000309500811383129A131A139A12E7
:100020001A169A111A159A101A1099171913991667
:10003000191299151915991019100B1783168C118F
:1000400083128C118B1385010B108B11CD01CD14F4
:10005000F030C900CD1C0515952005110930C700E9
:10006000CD1C0514CD1095200510D320C70B3228C8
:10007000C90B2B287830C9000515952005110930CA
:10008000C700051495200510D920C70B4128C90BBE
:100090003C283C30C9000515952005110930C700E2
:1000A000051495200510DF20C70B5028C90B4B28DD
:1000B0002830C9000515952005110930C700051421
:1000C00095200510E520C70B5F28C90B5A2814306E
:1000D000C9000515952005110930C70005149520A4
:1000E0000510EB20C70B6E28C90B69280C30C9001E
:1000F0000515952005110930C70005149520051038
:10010000F120C70B7D28C90B78280830C9000515D8
:10011000952005110930C700051495200510F7201A
:10012000C70B8C28C90B8728282800000000000076
:1001300000000000000000000000000000000000BF
:1001400000000000000000000000000000000000AF
:10015000000000000000000000000000000000009F
:100160000000000008000930C0000000000000008E
:10017000000000000000000000000000C00BB528D7
:100180000800B320B320B320B320B32008000A3006
:10019000C300B320C30BC92808003230C300B3200A
:1001A000C30BCF2808000530C400CD20C40BD528D0
:1001B00008000A30C400CD20C40BDB2808006430DE
:1001C000C400C720C40BE1280800FA30C400C720CF
:1001D000C40BE72808006430C400CD20C40BED2810
:1001E00008009630C400CD20C40BF3280800C830A6
:0A01F000C400CD20C40BF92808005C
:02400E00443F2D
:00000001FF

回数変化型12F609用可変クロック出力
:020000040000FA
:020000000528D1
:08000800090083169F010A3074
:10001000850000309500811383129A131A139A12E7
:100020001A169A111A159A101A1099171913991667
:10003000191299151915991019100B1783168C118F
:1000400083128C118B1385010B108B11CD01CD14F4
:100050000430C900CD1C0515952005110930C700D5
:10006000CD1C0514CD1095200510D320C70B3228C8
:10007000C90B2B280430C90005159520051109303E
:10008000C700051495200510D920C70B4128C90BBE
:100090003C280430C9000515952005110930C7001A
:1000A000051495200510DF20C70B5028C90B4B28DD
:1000B0000430C9000515952005110930C700051445
:1000C00095200510E520C70B5F28C90B5A2804307E
:1000D000C9000515952005110930C70005149520A4
:1000E0000510EB20C70B6E28C90B69280430C90026
:1000F0000515952005110930C70005149520051038
:10010000F120C70B7D28C90B78280430C9000515DC
:10011000952005110930C700051495200510F7201A
:10012000C70B8C28C90B8728282800000000000076
:1001300000000000000000000000000000000000BF
:1001400000000000000000000000000000000000AF
:10015000000000000000000000000000000000009F
:100160000000000008000930C0000000000000008E
:10017000000000000000000000000000C00BB528D7
:100180000800B320B320B320B320B32008000A3006
:10019000C300B320C30BC92808003230C300B3200A
:1001A000C30BCF2808000530C400CD20C40BD528D0
:1001B00008000A30C400CD20C40BDB2808006430DE
:1001C000C400C720C40BE1280800FA30C400C720CF
:1001D000C40BE72808006430C400CD20C40BED2810
:1001E00008009630C400CD20C40BF3280800C830A6
:0A01F000C400CD20C40BF92808005C
:02400E00443F2D
:00000001FF

7ピンの9クロックに対して5ピンが1クロック出力されます。

初期設定はこれで
;変速クロック発生モジュール PIC12F609/615
; 電源−(8)
; GPIO-0/CIN+ (7) セグメント切り換えクロック出力
; GPIO-1/CIN0-(6) 判定入力
; GPIO-2/COUT (5) コモン切り換えクロック出力
; GPIO-3/MCLR (4) (入力ビット)
; GPIO-4/CIN1-(3) OSC用予備
; GPIO-5/OSC (2) OSC用予備
; 電源+(1)

list P=PIC12F609
include "P12F609.INC"
;PDF96P CONFIG
__CONFIG _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTOSCIO & _IOSCFS_4MHZ

;メモリー設定
CNT1 EQU 40H
CNT2 EQU 41h
CNT3 EQU 42h
CNT4 EQU 43h
CNT5 EQU 44h
CNT6 EQU 45h
CNT7 EQU 46h
U1CNT EQU 47h
U2CNT EQU 48h
STGCNT EQU 49H
PCN EQU 4AH
ZEROCNT EQU 4BH
PCNT EQU 4CH
MODE EQU 4DH

ORG 00H
GOTO INIT

ORG 04H
RETFIE

;初期設定
INIT BSF STATUS,RP0 ;SET BANK1

CLRF ANSEL ;DIGITAL I/O INPUT SET at BANK1(12F609/615) PDF35P
; BSF ANSEL,1 ;ANALOG I/O INPUT GPIO,1 SET at BANK1(12F609/615) PDF35P

MOVLW B'001010' ;bit6-7は使用されていない GPIO-0,2,4-5を出力
MOVWF TRISIO ;I/Oピンの入出力方向を決める(BANK1)

MOVLW B'000000' ; プルアップするピンを選択(GP3は指定しても無効)
MOVWF WPU ; プルアップするピンを個別に設定(BANK1)
BCF OPTION_REG,7 ;(BANK1); 入力ピンのプルアップ全体の設定(最上位のbit7を0で有効)

BCF STATUS,RP0 ;SET BANK0

;CMCON0(BANK0)の設定 58P
BCF CMCON0,7 ;コンパレータ無効
BCF CMCON0,6 ;判定状態内部出力
BCF CMCON0,5 ;判定をI/Oピン出力 0=しない
BSF CMCON0,4 ;反転ビット 1=反転 Vref<CIN- 時にBIT6がHIGHに
BCF CMCON0,3 ;未定義
BSF CMCON0,2 ;非反転入力の接続設定 1=内部基準電圧を使う
BCF CMCON0,1 ;未定義
BCF CMCON0,0 ;コンパレータチャンネルセレクトビット 0=CIN0-を使用 1=CIN1-を使用

;VRCONの設定(BANK0) TTL入力 VDD2〜4.5V時 HIGH判定電圧=0.25×VDD+0.8V LOW判定電圧0.15×VDD
BSF VRCON,7 ;0 固定基準電圧  1 電源電圧基準による基準電圧
BCF VRCON,6 ;未定義
BSF VRCON,5 ;基準電圧レンジ選択 1=LOWレンジ (VR(0:3)/24)×電源電圧
BCF VRCON,4 ;0.6V固定基準電圧有効ビット 0=無効 1=有効

BSF VRCON,3 ;基準電圧指定 HIGHレンジ VDD/4+(VR(0:3)/32)×VDD
BSF VRCON,2 ;(1111=15)/24×VDD LOWレンジ最高値
BCF VRCON,1 ;15/24=0.625 VDD(2)×0,625=1.25V
BCF VRCON,0 ;14/24=0.59  12/24=0.5 電源電圧の50%をしきい値に=1100

BSF INTCON,PEIE ;(BANK0)周辺機器割り込み有効

BSF STATUS,RP0 ;SELECT BANK1
BCF PIE1,CMIE ;(BANK1)コンパレータ割り込み無効
BCF STATUS,RP0 ;SELECT BANK0

BCF PIR1,CMIF ;(BANK0)コンパレータ割り込みフラグクリア

BCF INTCON,GIE ;BANK0 全割り込み禁止
CLRF GPIO ;GPIO をクリアする

BCF INTCON,GPIF ;IO割り込みフラグクリア
BCF INTCON,GPIE ;IO割り込み無効

daruma(2017/11/10 Fri 14:45) [ 編集 ] [ 返信 ]


Re^62: LED Cube

JPG 1024x768 160.9kb

コンデンサは残像のためですか。それなら納得できます。なにかスピードに遅れを生み出してそれが累積することでスピードが変わるようなことなのかと考えたのですが、555が送り出すクロックに影響はしませんものね。この回路では点灯パタンが移り変わることはないのですね。
してみると、
https://www.youtube.com/watch?v=AUAEgxfq36A
の動画は、提示されている回路のとおりではないということになりましょうか。あるいは、外出しケーブルは電源ではなくVRが付いていて撮影中に変化させているとか・・・。動画に繋ぎ合わせた様子は見られないし。
555と4017でという作例の中でこれはパタン変化するのかと思ったのですが、・・。
明るさで変化でするようにというのはひと味加えるという意味では正解でしたね。

Cubeその2を作りました。リード線を折り曲げる細工を少なくすれば歪みも少なくできるだろうと、配列を変えました。アノードの柱を外側にして、カソードを内側で格子にしてみました。四隅の内側にLEDを置くので小さくなってしまいますが、工作はしやすく仕上がりも比較的よくなりました。でも、完成度高いものではありません。難しいです。
乳白樹脂のLEDを使って、あの「直下から照らされる」問題は解決しました。LED間が近くなったので3mmφのほうがよさそうですが、手もちに3mmφ乳白のものがなかったので、こんな感じです。
大きさ的には、前作のカソード格子を外に出すほうがよいかもしれません。

さて、なんじゃらほいさんお久しぶりです。またお世話になります。

クロックだけPICで作るということは、4017と併用するということですよね、せっかくPICを使うなら併用無しでいきたいと思います。12F609は、以前買っておくならと紹介された中に有ったので持っているのですが。

PIC16F87を調達すればPIC版がなんとかなるでしょうか。3x3x3を越える例えば5x5x5などになるとカウンタICでは現実的でないので、せっかくPIC版を作るなら5x5x5をと思うのは私にはハードル高すぎでしょうか。ポートをたくさん持っているPICを使って、そのぶんプログラムはたいへんになりますか?

・PIC版をブレッドボードで作る。
・プログラムを作っ(ていただい)て、変化パタンのよいパラメータを加減する
・変化の面白いパタンをいくつか循環させるプログラムにする。
・かたまったら、基板で実作する。
と、こんな段取りでいいでしょうか。

なんじゃらほい(2017/11/10 Fri 21:00) [ 編集 ] [ 返信 ]


Re^63: LED Cube

>せっかくPIC版を作るなら5x5x5をと思うのは私にはハードル高すぎでしょうか。
>ポートをたくさん持っているPICを使って、そのぶんプログラムはたいへんになりますか?

所詮はLEDチカチカの延長なので、単純なものだけならそうでもないでしょうが、複雑な点灯パターンを作ろうとすると、厄介になります。

結局はどのようなもの(複雑さの)を作るか次第でしょうね。

混乱を最小限に125個を制御するのには25×5でやる必要があるので最低でも40ピンクラスのデバイスが必要です。
http://akizukidenshi.com/catalog/g/gI-02241/

手間を掛けて極限的ポート節約にチャレンジする気なら5×5×5のマトリックスで20ピン1個という可能性もなきにしもあらずですが、相当の事前検討が必要です。



>・PIC版をブレッドボードで作る。

ICソケットを使いたくないなら、この流れでしょうか。

ICSP用の配線をつけていきなり実作でも良いと思います。
https://synapse.kyoto/glossary/glossary.php?word=ICSP

http://www.picfun.com/icsp02.html

daruma(2017/11/12 Sun 09:03) [ 編集 ] [ 返信 ]


Re^64: LED Cube

前作のスピード加減を何パタンか書き込んでそれを循環させる発想でいましたが、確かにスピード調整にとらわれずさまざまなパタンを作ることができるのですね。でも、おもしろいパタンを作り出すのがたいへんそうです。

3x3x3は555+4017回路ですでにできたので、PIC版はもう少し大きいものでと考えたのですが、3x3x3で変化パタン多様版のほうがとっつきやすいようです。それでいこうかなと思い始めました。キューブ工作もLED数が多くなるときれいに仕上げるのがますますたいへんになりそうですし。

基板が現在の延長だと2階建てなので、ICSPのピンを設けて抜き差しするように配置するのがきついかなと思うのですが、それがいけるならそのほうがいいです。

なんじゃらほい(2017/11/12 Sun 15:17) [ 編集 ] [ 返信 ]


Re^65: LED Cube

JPG 452x341 25.2kb

> 3x3x3は555+4017回路ですでにできたので、PIC版はもう少し大きいものでと考えたのですが、

28ピンで4X4X4というのもあるかと思いますが、最初は3X3で行く方がいいでしょうね。



とりあえず、18ピン用の参考回路図をあげますが、ICソケットを使うことをためらわなければ、点線で書かれたICSP用の配線すら不要です。

> 基板が現在の延長だと2階建てなので、

マイコン版なら、むしろ無理矢理2階建てにするの?・・・という感じですね。
4017版と同様+速度可変程度の機能で良ければ上記回路で十分のはずです。

複数のLEDを同時点灯させて、より複雑なパターンを作りたい場合で、上記のようにABCのトランジスタを省略する場合は、ダイナミック点灯にして実際には同時点灯させないか、セグメント電流を2.5mA(ポート許容値の25mA÷同時点灯個数)以下に抑えるという条件付きになります。

daruma(2017/11/12 Sun 18:14) [ 編集 ] [ 返信 ]


Re^66: LED Cube

16F84Aと16F84A-201Pはもっていますが16F87はありません。16F87を買います。PIC16F87-I/Pでいいんですよね。

これだけの回路なら、これまで同様19穴19列の1枚にLED用のピンソケットも含めいれることができそうですね。配線図を描いてみます。ICSPのピンも入れて。

LED1個を2.5mA以下に抑えるのはちょっと苦しいと思います。トランジスタを入れて1枚基板になんとかなればいいんですが。
ダイナミック点灯にできればうれしいです。電流制限抵抗も1個でそれを半固定VRにできますし。

なんじゃらほい(2017/11/16 Thu 20:08) [ 編集 ] [ 返信 ]


Re^67: LED Cube

とりあえず、参考回路図でのサンプルファイルをあげます。

HEXファイル
:020000040000FA
:10000000831660308F0000308600F0308500811745
:10001000831207309C00850186018514051585151E
:100020001128AD01AD0A01302D02031D1B288510DA
:1000300005158515332802302D02031D232885144C
:1000400005118515332803302D02031D2B28851437
:1000500005158511332804302D02031D54288514FD
:100060000511851533280510860106147D208601AB
:1000700086147D20860106157D20860186157D204B
:10008000860106167D20860186167D2086010617CC
:100090007D20860186177D20860105147D20043091
:1000A0002D020319AD01122886010514851089203F
:1000B0000510892054281330A10000000000000022
:1000C000A10B5D280000000008006430A3000000C0
:1000D000000000000000000000000000A30B6728E3
:1000E00008003230A4005B20A40B732808006430A1
:1000F000A4005B20A40B792808002830A5007120FB
:10010000A50B7F2808006430A5007120A50B852869
:0E0110000800C930A5007120A50B8B2808003F
:02400E00503F21
:02401000FD3F72
:00000001FF

ソースはこれ
;LED CUBE SAMPLE(ソース動作) PIC16F87
;
;
; PORTA-1(18) A COMON
; PORTA-0(17) 9
; PORTA-7 OSC(16) Input Only
; PORTA-6 OSC(15)
; 電源+(14)
; PORTB-7(13) 8
; PORTB-6(12) 7
; PORTB-5(11) 6
; PORTB-4(10) 5

; PORTB-3(9) 4
; PORTB-2(8) 3
; PORTB-1(7) 2
; PORTB-0(6) 1
; VSS(-)(5)
; PORTA-5(4)
; PORTA-4(3)
; PORTA-3(2) C COMON
; PORTA-2(1) B COMON

;
list p=16f87
#include <p16f87.inc>

ERRORLEVEL -207,-302,-306
;PDF132P
__CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_ON

;******************************
; 変数レジスタ割付定義
;******************************

DPDT EQU 20H ;LCD output data ←16F87のRAM先頭アドレス
CNT1 EQU 21H ;タイマ用カウンタ
CNT2 EQU 22H
CNT3 EQU 23H
CNT4 EQU 24H
CNT5 EQU 25H

STAGECNT EQU 2DH

ORG 00H

;************************************
; 入出力ピンモード初期化
;************************************

PORT_INI

;OSCON
;
;bit7 NO USE
;bit6-4 INTRC CLOCK 000=31.25KHz 001=125KHz 以降1ビット増加毎に周波数が倍になる
;bit3 OSCT オシレータ・スタートアップ・タイムアウト状態に、
;1=優先クロックを使う 0=T1OSC or INTRC を使う
;bit2 IOFS INTOSC Frequency Stable bit
;1 = 安定
;0 = 不安定
;
;bit1-0 Oscillator Mode Select bits
;
;00 = Oscillator mode defined by FOSC(2:0) FOSCレジスタ(2-0ビット)によってdefine(定義)する
;01 = T1OSC is used for system clock タイマー1を使う
;10 = Internal RC is used for system clock 内蔵RCを使う
;11 = Reserved 予約済み

BSF STATUS,RP0 ;Set page 1

MOVLW B'01100000' ;下位2ビット注意 00じゃないとCONFIGのINTRC_IOが無効になる
MOVWF OSCCON ;BANK1

MOVLW B'00000000' ; 0-7 OUTPUT
MOVWF TRISB ;PortB set
MOVLW B'11110000' ;RA0〜3以外IN
MOVWF TRISA ;PortA set

BSF OPTION_REG,7 ;BANK1 0でプルアップ有効
BCF STATUS,RP0 ;Set Page 0

MOVLW 07H ;07Hを設定 16F87/88をPORTAをデジタルI/Oに
MOVWF CMCON ; コンパレータOFF
CLRF PORTA
CLRF PORTB ;all clear

BSF PORTA,1 ;桁コントロール クリア済み
BSF PORTA,2 ;桁コントロール クリア済み
BSF PORTA,3 ;桁コントロール クリア済み

GOTO MAIN

;...............................
MAIN
CLRF STAGECNT

STAGE_T INCF STAGECNT,F

S1CHK MOVLW D'1'
SUBWF STAGECNT,W ;F-W
BTFSS STATUS,Z
GOTO S2CHK

TOP BCF PORTA,1
BSF PORTA,2
BSF PORTA,3
GOTO DOWN_S

S2CHK MOVLW D'2'
SUBWF STAGECNT,W ;F-W
BTFSS STATUS,Z
GOTO S3CHK

MID BSF PORTA,1
BCF PORTA,2
BSF PORTA,3
GOTO DOWN_S

S3CHK MOVLW D'3'
SUBWF STAGECNT,W ;F-W
BTFSS STATUS,Z
GOTO S4CHK

LOWER BSF PORTA,1
BSF PORTA,2
BCF PORTA,3
GOTO DOWN_S

S4CHK MOVLW D'4'
SUBWF STAGECNT,W ;F-W
BTFSS STATUS,Z
GOTO ERR

MID2 BSF PORTA,1
BCF PORTA,2
BSF PORTA,3
GOTO DOWN_S

DOWN_S BCF PORTA,0
CLRF PORTB
BSF PORTB,0
CALL TIME2HM

CLRF PORTB
BSF PORTB,1
CALL TIME2HM

CLRF PORTB
BSF PORTB,2
CALL TIME2HM

CLRF PORTB
BSF PORTB,3
CALL TIME2HM

CLRF PORTB
BSF PORTB,4
CALL TIME2HM

CLRF PORTB
BSF PORTB,5
CALL TIME2HM

CLRF PORTB
BSF PORTB,6
CALL TIME2HM

CLRF PORTB
BSF PORTB,7
CALL TIME2HM

CLRF PORTB
BSF PORTA,0
CALL TIME2HM

MOVLW D'4'
SUBWF STAGECNT,W
BTFSC STATUS,Z
CLRF STAGECNT
GOTO STAGE_T

ERR CLRF PORTB
BSF PORTA,0
BCF PORTA,1
CALL TIME1S
BCF PORTA,0
CALL TIME1S
GOTO ERR

;*********************************
; タイマーサブルーチン 4MHZ
;; TIME100 :100MicroSec
; TIME1M :1msec
; TIME5M :5msec
;*********************************

TIME100 MOVLW D'19' ;2+(5*19)-1+2+3=100 1×100=100MicroSec
MOVWF CNT1
T_LP1 NOP
NOP
NOP
DECFSZ CNT1,F
GOTO T_LP1
NOP
NOP
RETURN ;99Micro sec(about)

TIME1M MOVLW D'100' ;SET
MOVWF CNT3
T_LP3 NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ CNT3,F
GOTO T_LP3
RETURN ;2cycle

TIME5M MOVLW D'50' ;50 SET
MOVWF CNT4
T_LP4 CALL TIME100
DECFSZ CNT4,F
GOTO T_LP4
RETURN ; 20*250=5000STEP =5000MICRO SEC(+3Microsec)

TIME10M MOVLW D'100' ;50 SET
MOVWF CNT4
T_LP4A CALL TIME100
DECFSZ CNT4,F
GOTO T_LP4A
RETURN ; 20*250=5000STEP =5000MICRO SEC(+3Microsec)

TIME2HM ;
MOVLW D'40' ;20SET (4980*40)
MOVWF CNT5
T_LP5A CALL TIME5M ;2+(4980+3)*20-1=?
DECFSZ CNT5,F
GOTO T_LP5A
RETURN ; STEP ?ICRO SEC.

TIME5HM ;1SEC(about)
MOVLW D'100' ;201SET (4980*101)
MOVWF CNT5
T_LP50 CALL TIME5M ;2+(4980+3)*20-1=?
DECFSZ CNT5,F
GOTO T_LP50
RETURN ; STEP ?ICRO SEC.

TIME1S ;1SEC(about)
MOVLW D'201' ;201SET (4980*201)
MOVWF CNT5
T_LP5 CALL TIME5M ;2+(4980+3)*20-1=?
DECFSZ CNT5,F
GOTO T_LP5
RETURN ; STEP ?ICRO SEC.

END

改造しやすいように、簡単な記述で書いてあります。

この STAGE_T から

GOTO  STAGE_T

までの間に、同様のループを入れれば、プログラムサイズ限界までいくらでもパターンを増やせます。

トランジスタを入れて論理を反転するなら、コモンはPORTA 1-3
セグメントも反転するならPORTBの0−7とPORTAの0を反転して下さい。

daruma(2017/11/16 Thu 23:08) [ 編集 ] [ 返信 ]


Re^68: LED Cube

ありがとうございます。
仕事で今週平日は取りかかれずにいます。
今度の土日に作って動かしてみます。

あの回路は、複数同時点灯なのでLED電流を小さく抑えなければならないのですね。
ダイナミック点灯にするには、回路をかなり変更することになりますか?

なんじゃらほい(2017/11/18 Sat 08:23) [ 編集 ] [ 返信 ]


Re^69: LED Cube

> あの回路は、複数同時点灯なのでLED電流を小さく抑えなければならないのですね。

いいえ。
ポートの許容範囲以内で複数同時点灯<可能>回路です。

20mAなら1個、10mAなら2個、5mAなら4個、同時点灯が可能だという事です。

サンプルプログラム内では同時点灯させていないので、20mAも設定可能です。



> ダイナミック点灯にするには、回路をかなり変更することになりますか?

同じ回路でダイナミック点灯も可能です。



2スピード版サンプル
アセンブル時のエラーのみのチェックです。
:020000040000FA
:10000000831660308F0000308600F0308500811745
:10001000831207309C00850186018514051585151E
:1000200011288510051585153220851405118515B3
:10003000322085140515851132208514051185158A
:1000400032208510051585154F208514051185155D
:100050004F208514051585114F2085140511851530
:100060004F2011280510860106148E208601861463
:100070008E20860106158E20860186158E2086012B
:1000800006168E20860186168E20860106178E2083
:10009000860186178E20860105148E200800051023
:1000A0008601061494208601861494208601061584
:1000B00094208601861594208601061694208601D8
:1000C00086169420860106179420860186179420B0
:1000D00086010514942008001330A10000000000E0
:1000E0000000A10B6E280000000008006430A3008F
:1000F0000000000000000000000000000000A30B52
:10010000782808003230A4006C20A40B8428080052
:100110006430A4006C20A40B8A2808002830A500B5
:100120008220A50B902808006430A5008220A50B32
:1001300096280800C930A5008220A50B9C2808003D
:02400E00503F21
:02401000FD3F72
:00000001FF

ソース
;LED CUBE SAMPLE(ソース動作) PIC16F87
;
;
; PORTA-1(18) A COMON
; PORTA-0(17) 9
; PORTA-7 OSC(16) Input Only
; PORTA-6 OSC(15)
; 電源+(14)
; PORTB-7(13) 8
; PORTB-6(12) 7
; PORTB-5(11) 6
; PORTB-4(10) 5

; PORTB-3(9) 4
; PORTB-2(8) 3
; PORTB-1(7) 2
; PORTB-0(6) 1
; VSS(-)(5)
; PORTA-5(4)
; PORTA-4(3)
; PORTA-3(2) C COMON
; PORTA-2(1) B COMON

;
list p=16f87
#include <p16f87.inc>

ERRORLEVEL -207,-302,-306
;PDF132P
__CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_ON

;******************************
; 変数レジスタ割付定義
;******************************

DPDT EQU 20H ;LCD output data ←16F87のRAM先頭アドレス
CNT1 EQU 21H ;タイマ用カウンタ
CNT2 EQU 22H
CNT3 EQU 23H
CNT4 EQU 24H
CNT5 EQU 25H

STAGECNT EQU 2DH

ORG 00H

;************************************
; 入出力ピンモード初期化
;************************************

PORT_INI

;OSCON
;
;bit7 NO USE
;bit6-4 INTRC CLOCK 000=31.25KHz 001=125KHz 以降1ビット増加毎に周波数が倍になる
;bit3 OSCT オシレータ・スタートアップ・タイムアウト状態に、
;1=優先クロックを使う 0=T1OSC or INTRC を使う
;bit2 IOFS INTOSC Frequency Stable bit
;1 = 安定
;0 = 不安定
;
;bit1-0 Oscillator Mode Select bits
;
;00 = Oscillator mode defined by FOSC(2:0) FOSCレジスタ(2-0ビット)によってdefine(定義)する
;01 = T1OSC is used for system clock タイマー1を使う
;10 = Internal RC is used for system clock 内蔵RCを使う
;11 = Reserved 予約済み

BSF STATUS,RP0 ;Set page 1

MOVLW B'01100000' ;下位2ビット注意 00じゃないとCONFIGのINTRC_IOが無効になる
MOVWF OSCCON ;BANK1

MOVLW B'00000000' ; 0-7 OUTPUT
MOVWF TRISB ;PortB set
MOVLW B'11110000' ;RA0〜3以外IN
MOVWF TRISA ;PortA set

BSF OPTION_REG,7 ;BANK1 0でプルアップ有効
BCF STATUS,RP0 ;Set Page 0

MOVLW 07H ;07Hを設定 16F87/88をPORTAをデジタルI/Oに
MOVWF CMCON ; コンパレータOFF
CLRF PORTA
CLRF PORTB ;all clear

BSF PORTA,1 ;桁コントロール クリア済み
BSF PORTA,2 ;桁コントロール クリア済み
BSF PORTA,3 ;桁コントロール クリア済み

GOTO MAIN

;...............................
MAIN
TOP BCF PORTA,1
BSF PORTA,2
BSF PORTA,3
CALL DOWN_S

MID BSF PORTA,1
BCF PORTA,2
BSF PORTA,3
CALL DOWN_S

LOWER BSF PORTA,1
BSF PORTA,2
BCF PORTA,3
CALL DOWN_S

MID2 BSF PORTA,1
BCF PORTA,2
BSF PORTA,3
CALL DOWN_S

TOPM BCF PORTA,1
BSF PORTA,2
BSF PORTA,3
CALL DOWN_M

MIDM BSF PORTA,1
BCF PORTA,2
BSF PORTA,3
CALL DOWN_M

LOWERM BSF PORTA,1
BSF PORTA,2
BCF PORTA,3
CALL DOWN_M

MID2M BSF PORTA,1
BCF PORTA,2
BSF PORTA,3
CALL DOWN_M

GOTO MAIN

DOWN_S BCF PORTA,0
CLRF PORTB
BSF PORTB,0
CALL TIME2HM

CLRF PORTB
BSF PORTB,1
CALL TIME2HM

CLRF PORTB
BSF PORTB,2
CALL TIME2HM

CLRF PORTB
BSF PORTB,3
CALL TIME2HM

CLRF PORTB
BSF PORTB,4
CALL TIME2HM

CLRF PORTB
BSF PORTB,5
CALL TIME2HM

CLRF PORTB
BSF PORTB,6
CALL TIME2HM

CLRF PORTB
BSF PORTB,7
CALL TIME2HM

CLRF PORTB
BSF PORTA,0
CALL TIME2HM
RETURN

DOWN_M BCF PORTA,0
CLRF PORTB
BSF PORTB,0
CALL TIME5HM

CLRF PORTB
BSF PORTB,1
CALL TIME5HM

CLRF PORTB
BSF PORTB,2
CALL TIME5HM

CLRF PORTB
BSF PORTB,3
CALL TIME5HM

CLRF PORTB
BSF PORTB,4
CALL TIME5HM

CLRF PORTB
BSF PORTB,5
CALL TIME5HM

CLRF PORTB
BSF PORTB,6
CALL TIME5HM

CLRF PORTB
BSF PORTB,7
CALL TIME5HM

CLRF PORTB
BSF PORTA,0
CALL TIME5HM
RETURN

;*********************************
; タイマーサブルーチン 4MHZ
;; TIME100 :100MicroSec
; TIME1M :1msec
; TIME5M :5msec
;*********************************

TIME100 MOVLW D'19' ;2+(5*19)-1+2+3=100 1×100=100MicroSec
MOVWF CNT1
T_LP1 NOP
NOP
NOP
DECFSZ CNT1,F
GOTO T_LP1
NOP
NOP
RETURN ;99Micro sec(about)

TIME1M MOVLW D'100' ;SET
MOVWF CNT3
T_LP3 NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ CNT3,F
GOTO T_LP3
RETURN ;2cycle

TIME5M MOVLW D'50' ;50 SET
MOVWF CNT4
T_LP4 CALL TIME100
DECFSZ CNT4,F
GOTO T_LP4
RETURN ; 20*250=5000STEP =5000MICRO SEC(+3Microsec)

TIME10M MOVLW D'100' ;50 SET
MOVWF CNT4
T_LP4A CALL TIME100
DECFSZ CNT4,F
GOTO T_LP4A
RETURN ; 20*250=5000STEP =5000MICRO SEC(+3Microsec)

TIME2HM ;
MOVLW D'40' ;20SET (4980*40)
MOVWF CNT5
T_LP5A CALL TIME5M ;2+(4980+3)*20-1=?
DECFSZ CNT5,F
GOTO T_LP5A
RETURN ; STEP ?ICRO SEC.

TIME5HM ;1SEC(about)
MOVLW D'100' ;201SET (4980*101)
MOVWF CNT5
T_LP50 CALL TIME5M ;2+(4980+3)*20-1=?
DECFSZ CNT5,F
GOTO T_LP50
RETURN ; STEP ?ICRO SEC.

TIME1S ;1SEC(about)
MOVLW D'201' ;201SET (4980*201)
MOVWF CNT5
T_LP5 CALL TIME5M ;2+(4980+3)*20-1=?
DECFSZ CNT5,F
GOTO T_LP5
RETURN ; STEP ?ICRO SEC.

END

daruma(2017/11/19 Sun 08:11) [ 編集 ] [ 返信 ]


Re^70: LED Cube

なんと!! パソコンが動かなくなってしまいました。悪戦苦闘しています。これが復活しないと仕事になりません。OSが立ち上がるところまでは行くんですが。
いまこれはiPadで書いています。
せっかくプログラムを書いていただいたのに。なんとか今日中に解決すればと焦っています。

daruma(2017/11/20 Mon 18:13) [ 編集 ] [ 返信 ]


Re^71: LED Cube

JPG 1024x768 153.5kb

昨夜ようやくパソコンが復旧し、今日仕事から帰ってPICにHEXを書き込んでみました。
回路はPICまわりだけ組み、電源は安定化電源から5Vを直接供給しています。

> 2017/11/16 Thu 20:08
> とりあえず、参考回路図でのサンプルファイルをあげます。
を走らせるとうまく走りました。順繰りにLEDが点灯します。
次に、
> 2017/11/18 Sat 08:23
> 2スピード版サンプル
を書き込んでみたのですが、先のと動作が変わらないのです。HEXを眺めてみたのですが、もしや後のも同じものじゃないでしょうか。
ソースからbuildしてみようとしたのですが、MPLAB X IDEの使い方の記憶が薄れているためかうまくいきません。ソースの部分を別ファイルにして.asmで保存しNewProjectを作ってソースを読みこませ・・・とやったのですが。
pickit3の電源の設定はしています。あと2バイトスペースを1バイトスペースに置換することはやったのですが、2バイト文字はコメント以外にはありませんでした。

なんじゃらほい(2017/11/20 Mon 18:48) [ 編集 ] [ 返信 ]


Re^72: LED Cube

> > 2017/11/16 Thu 20:08
> > とりあえず、参考回路図でのサンプルファイルをあげます。
> を走らせるとうまく走りました。順繰りにLEDが点灯します。

安心しました。

> 次に、
> > 2017/11/18 Sat 08:23
> > 2スピード版サンプル
> を書き込んでみたのですが、先のと動作が変わらないのです。HEXを眺めてみたのですが、もしや後のも同じものじゃないでしょうか。

両方の文字列を並べエディッターで検索したら一致・・・なので同じでしたね。

で上のものは修正しました



> ソースからbuildしてみようとしたのですが、MPLAB X IDEの使い方の記憶が薄れているためかうまくいきません。ソースの部分を別ファイルにして.asmで保存しNewProjectを作ってソースを読みこませ・・・とやったのですが。

ASMの拡張子でテキストファイルをつくり、mpasmx(mpasmx.exe)を直接起動して、アセンブルしエラーがなければ、MPLAB_IDEではなくMPLAB_IPEで書き込むという方法もあります。

インクルードされるp16f87.incのバージョンが違うと正確にコピーされていてもエラーが出ることがあります。

半角スペースをTABに変換するといいかも知れません。

daruma(2017/11/20 Mon 19:03) [ 編集 ] [ 返信 ]


Re^73: LED Cube

> 両方の文字列を並べエディッターで検索したら一致・・・なので同じでしたね。
やっぱりそうでしたか。さっそく差し替え版を書き込んでみました。ばっちりです。最初早い目で往復、そのあと遅い目・・の繰り返しですね。

buildは方法をじっくりおさらいします。HEXをいただいて楽させていただいてすみません。

さて、変化パタンのバリエーションをどう作っていくかですねえ。

なんじゃらほい(2017/11/20 Mon 20:34) [ 編集 ] [ 返信 ]


Re^74: LED Cube

> さて、変化パタンのバリエーションをどう作っていくかですねえ。

とりあえず、2段階verのソースをこちらにアップしました
https://yahoo.jp/box/nXo-jn

恐らくバグがある上に、30回ぐらいで動かなくなるサンプル版
:020000040000FA
:10000000831660308F0000308600F0308500811745
:10001000831207309C00850186018514051585151E
:10002000FF30A6000030AD00DA222E08AC00AC088C
:10003000031928281F302C02031C28280130AC0289
:100040000319D4292C08AE000030AD00B9222E28A7
:100050001E30AE000030AD00B9222E28E121E9218A
:10006000F121F9210122092211221922212229221A
:100070003122392241224922512259226122692208
:10008000712279228122892291229922A122A922F8
:10009000B122B122A922A122992291228922812270
:1000A0007922712269226122592251224922412258
:1000B0003922312229222122192211220922012248
:1000C000F921F121E921E121E12129227122E9210E
:1000D00081223922F121E921312219226122A9222A
:1000E000B12281224122F9212122692211225922A1
:1000F000A122992291224922012209225122312250
:10010000E921F12139228122E92171222922E121EB
:1001100069222122F92141228122B122A9226122D0
:100120001922512209220122492291229922A12237
:1001300059221122E12129227122A922A122592228
:10014000112219226122E92131227922B122992238
:100150005122092221226922F12139228122892278
:10016000912249220122F9214122E12129227122F1
:10017000E92131227922F12139228122F9214122FA
:1001800089220122492291220922512299221122F7
:100190005922A12219226122A92221226922B122F7
:1001A000B12269222122A92261221922A1225922E7
:1001B00011229922512209229122492201228922C7
:1001C0004122F92181223922F12179223122E921AA
:1001D00071222922E121E1213122812241220122C1
:1001E0005122A1226122E121292279223922F921F9
:1001F0004922992259221922692271223122F121A0
:1002000041229122512211226122B122E921392277
:100210008922492209225922A9226922E121312277
:100220008122412201225122A1226122212229225E
:1002300079223922F9214922992259221922692247
:100240007122712269221922592299224922F92107
:1002500039227922292221226122A122512201223E
:10026000412281223122E1216922A9225922092237
:10027000492289223922E921B12261221122512207
:1002800091224122F121312271226922192259221F
:1002900099224922F921392279222922E121612258
:1002A000A12251220122412281223122E121A708EB
:1002B000031977290130270203197F290230270209
:1002C000031987290330270203198F2904302702D5
:1002D000031997290530270203199F2906302702A1
:1002E0000319A729073027020319AF29A7011030E6
:1002F000A6020318CB291030A600A70ACB2910307C
:10030000A607031CCB29FF30A600A70ACB2918306B
:10031000A6020318CB291030A600A70ACB29183053
:10032000A607031CCB29FF30A600A70ACB29203043
:10033000A6020318CB291030A600A70ACB2920302B
:10034000A607031CCB29FF30A600A70ACB292D3016
:10035000A6020318CB291030A600A70ACB292D30FE
:10036000A60780302607031CCB298030A600A70AE9
:10037000CB290A30A6020318CB291030A600A70A01
:10038000CB290A30A60780302607031CCB29FF3073
:10039000A600A70ACB290A3027020319A7012E2895
:1003A000FD22A80BD02908008601851005140F2313
:1003B0008601051105140F238601851105140F23ED
:1003C000D4292608A800013086000C308500D021F1
:1003D00008002608A800023086000C308500D021D5
:1003E00008002608A800043086000C308500D021C3
:1003F00008002608A800083086000C308500D021AF
:1004000008002608A800103086000C308500D02196
:1004100008002608A800203086000C308500D02176
:1004200008002608A800403086000C308500D02146
:1004300008002608A800803086000C308500D021F6
:1004400008002608A800003086000D308500D02165
:1004500008002608A800013086000A308500D02157
:1004600008002608A800023086000A308500D02146
:1004700008002608A800043086000A308500D02134
:1004800008002608A800083086000A308500D02120
:1004900008002608A800103086000A308500D02108
:1004A00008002608A800203086000A308500D021E8
:1004B00008002608A800403086000A308500D021B8
:1004C00008002608A800803086000A308500D02168
:1004D00008002608A800003086000B308500D021D7
:1004E00008002608A8000130860006308500D021CB
:1004F00008002608A8000230860006308500D021BA
:1005000008002608A8000430860006308500D021A7
:1005100008002608A8000830860006308500D02193
:1005200008002608A8001030860006308500D0217B
:1005300008002608A8002030860006308500D0215B
:1005400008002608A8004030860006308500D0212B
:1005500008002608A8008030860006308500D021DB
:1005600008002608A8000030860007308500D0214A
:100570000800831603170C158B13831203132D0821
:1005800003178D00831203132E0803178C008316A4
:10059000031755308D00AA308D008C148B178312F1
:1005A00003130D1ED12A831603170C118312031394
:1005B0000D1208002D08831203178D0083160317F0
:1005C0000C1483120C0883120313AE0008001330BE
:1005D000A100000000000000A10BE92A00000000BB
:1005E00008006430A30000000000000000000000CC
:1005F00000000000A30BF32A08003230A400E72219
:10060000A40BFF2A08006430A400E722A40B052BEA
:1006100008002830A500FD22A50B0B2B0800643034
:10062000A500FD22A50B112B0800C930A500FD2255
:06063000A50B172B0800CA
:02400E00503F21
:02401000FD3F72
:00000001FF

daruma(2017/11/21 Tue 12:55) [ 編集 ] [ 返信 ]


Re^75: LED Cube

> とりあえず、2段階verのソースをこちらにアップしました
> https://yahoo.jp/box/nXo-jn

ありがとうございます。これがちゃんとbuildできるようにMPLAB X IDEのおさらいをします。

> 恐らくバグがある上に、30回ぐらいで動かなくなるサンプル版

ここまで作っていただいて感激です。パラメータをいろいろ変えて苦労するのを覚悟していました。
変化パタンは
・1〜9が変わってA〜Cが変わる
・A〜Cが変わって1〜9が変わる
・たすき掛けに変わる
の3パタンでしょうか
スピードは、序盤のたいへんゆっくりから走り回るまでの5段階でしょうか。6段階かな。
このパタン変化で速い方3段階で完成形でいかがでしょう。さらに速い複数同時点灯しているように見えるスピードがあってもいいかもしれません。
「動かなくなる」とのことで、パタン変化を追っていたのですが一向に止まらず、少なくとも50分眺めていますが止まりません。「動かなくならない」のではないでしょうか。

※追記 2時間たっても止まっていません。

ブレッドボードに平面配置のLED群ではパタンを実感できないと思うので、基板に組んでキューブを載せて試作4号機に取りかかります。
それと、試作3号機をケース入れして完成した姿にします。

今週は仕事があまり入っていないので、工作三昧できそうです。

ところで、常に1個だけしか点灯させないプログラムを前提とすれば電流制限抵抗を1個だけの半固定VRにして明るさ調整可にできるかと思うのですが、回路自体は複数点灯もアリなのでそうしないで抵抗を並べておいたほうがいいでしょうか。現在ブレッドボードの実験では総消費電流13mAで十分な明るさです。トランジスタをかませる必要はありませんね。

daruma(2017/11/22 Wed 12:06) [ 編集 ] [ 返信 ]


Re^76: LED Cube

1個だけ点灯を前提に、電流制限抵抗を1個だけの半固定VRにして明るさ調整可にと考えてみたのですが、

http://mpga.jp/akizuki-fan/index.php?mode=image&file=3521.jpg
の図で、1〜9に抵抗を入れずA〜Cに入れても同じことだとは思います。これで3個にはなりますが、inara1さんの回路
http://mpga.jp/akizuki-fan/data/img/3290.jpg
のように全てここを通るというところが無いので1個にはできないのでしょうか。
抵抗8個を3個にしてもスペースが若干浮くだけですから、それなら現状通り8本並べておこうかなと思いますが。

いずれにしても、複数点灯の可能性としては、一系列内で2個点灯させるとそれに対して1個の抵抗しか入っていないことになりますか。

daruma(2017/11/22 Wed 12:48) [ 編集 ] [ 返信 ]


Re^77: LED Cube

あれ?
昨日からずっと動かしっぱなしにしているのですが、ふと見ると、昨日実験開始時の「たいへんゆっくり」になってそこから抜け出ないのです。1点灯2秒の超スローです。昨日の開始時は、10分(不確か)ほど後にやや速い1点灯1秒のスピードに移行し「走る回る」まで何段階かスピードアップした後はこの超スローは起きずに繰り返していました。今朝この状況に気づいてから1時間たっても、超スローのままです。

あれあれ?
一度電源を切って再スタートしたのですが、1点灯2秒の超スローを十数分のあと1点灯1秒になったあとしばらくするとまた超スローに戻り、それより速い段階になってくれません。なぜでしょう。一度書き込んだプログラムですから、再起動したら同じ動作になると思うのですが。

なんじゃらほい(2017/11/22 Wed 20:32) [ 編集 ] [ 返信 ]


Re^78: LED Cube

>「動かなくなる」とのことで、パタン変化を追っていたのですが一向に止まらず、少なくとも50分眺めていますが止まりません。「動かなくならない」のではないでしょうか。

30回というのはマイコンのリセット回数です。電源を入れっぱなしなら1年でも動き続けてもおかしくはないです。



>ここまで作っていただいて感激です。パラメータをいろいろ変えて苦労するのを覚悟していました。

そもそも、このプログラムは「クロックだけでもマイコンでやってみたら?」という話をする前から、「マイコンでやるならどのようなパターンが、どの程度の難易度で実現出来るのか」の確認用に書いてあったもので、公開用に書いたものではありません。

なので「こんなのもできるかな?」的な参考サンプルです。そもそも仕様自体が十分に検討されたではなく、完成品には程遠いものです。



今回のものはサンプル2のコピペで出来るレベルのものです。なので、これを参考に面白いものを作り上げて下さい。

折角、マイコンを使うためにそれ相応の投資をしたのですから、これを機会にロジックICや簡単なIC(555とか)の置き換えぐらいは出来るようになってください。



>変化パタンは
>・1〜9が変わってA〜Cが変わる
>・A〜Cが変わって1〜9が変わる
>・たすき掛けに変わる
>の3パタンでしょうか

プログラムを確認するとそんな感じですが

>・1〜9が変わってA〜Cが変わる、  も

実際には1→2→3→4→5→6→7→8→9で上〜中〜下とステージが動いたあと下〜中〜上へ9→8・・・・・→1へと逆転しています。
その他も後半は逆転していますからパターン的には6通り以上です。

これでも最初のアイディアがずいぶんすっ飛んでます。



>スピードは、序盤のたいへんゆっくりから走り回るまでの5段階でしょうか。6段階かな。

いいえ、バグがあってきちんと動いていなかったとはいえ、本来はもっともっと複雑です。

フェイズ0で35段階で減速
フェイズ1で34段階で加速
フェイズ2で25段階で減速
フェイズ3で24段階で加速
フェイズ4で19段階で減速
フェイズ5で18段階で加速
フェイズ6で15段階で減速
フェイズ7で14段階で加速

こんな感じです。



>電流制限抵抗を1個だけの半固定VRにして明るさ調整可にできるかと思うのですが、
>1個だけ点灯を前提に、電流制限抵抗を1個だけの半固定VRにして明るさ調整可にと考えてみたのですが、

通常の半固定抵抗で5mA以上流すのは信頼性の低下を招くと思いますが、それでもその方法に行きますか?



>のように全てここを通るというところが無いので1個にはできないのでしょうか。

はい。できません。

>抵抗8個を3個にしてもスペースが若干浮くだけですから、それなら現状通り8本並べておこうかなと思いますが。

そもそも、LEDは同色だけの想定ですか?

3色×3でとか、9色とか考えないのですか?そういう想定も当然あるのだと思っていました。



>今朝この状況に気づいてから1時間たっても、超スローのままです。

フェイズ5以降が動かなかった状態で、ウェイト時間は演算で出しているのでどこかでエラーになった可能性はありますが、本来は時間が掛かっても必ず停滞からは抜け、リセットされるはずですが、さて。。



>一度電源を切って再スタートしたのですが、1点灯2秒の超スローを十数分のあと1点灯1秒になったあとしばらくするとまた超スローに戻り、それより速い段階になってくれません。

さて??

>一度書き込んだプログラムですから、再起動したら同じ動作になると思うのですが。

プログラムの書き方が悪いとそうなる事はありますし、実行中にプログラム自体を書き換える場合もあります。

とりあえず、上のHEXを、速度2倍にし、本来通りフェイズ7まで動くように修正したものと差し替えましたが、これも多分リセット30回で止まります。

daruma(2017/11/23 Thu 12:32) [ 編集 ] [ 返信 ]


Re^79: LED Cube

> とりあえず、上のHEXを、速度2倍にし、本来通りフェイズ7まで動くように修正したものと差し替えました

2秒刻みが1秒刻み始まりになりましたが、そのスピードのままです。40分見ていましたが速くなっていきません。パタンは変わります。

昨日1秒刻みまでしか早くならなくなった11/20バージョンを改めて書き込んでみました。0.3秒くらい刻みのスピードまではなるのですが、走り回るスピードにはなりません。
今回の11/22バージョンも再書き込みしてみましたが、開始時から1秒刻みのままです。

> フェイズ0で35段階で減速
> フェイズ1で34段階で加速
> フェイズ2で25段階で減速
> フェイズ3で24段階で加速
> フェイズ4で19段階で減速
> フェイズ5で18段階で加速
> フェイズ6で15段階で減速
> フェイズ7で14段階で加速

40分ほどは眺めていたのですが、もっと長時間かかって変わっていくのでしょうか。

一度動いたものが次からそのようにならないというのはどうにも不思議です。

> 実行中にプログラム自体を書き換える場合もあります。

走っているプログラム自身が自分を書き変えてその状態のまま残るということですか。不思議です。

> 30回というのはマイコンのリセット回数です。

ループ全体を30回ループするとという意味ではないのですね。リセット30回ということは、31回目の起動からは走らなくなってしまうということですか?

> ロジックICや簡単なIC(555とか)の置き換えぐらいは出来るように

そうですね。そのためにはまず555の機能をきちんと理解しなければなりません。「回路図のとおりに作ったら動いた」から脱却しなければなりません。

電流制限抵抗については了解しました。8本並べでいきます。

色ごとに抵抗値を変えてバランスを取るのには都合よいわけですね。
色違いLEDにとは考えていません。赤青黄色のネオンの街みたいになるのもどうかなと思って、単色使いのシック路線でいこうと思っています。

なんじゃらほい(2017/11/23 Thu 16:12) [ 編集 ] [ 返信 ]


Re^80: LED Cube

そもそもが何も考えずにプログラムされたものなので、非常に速度変化が遅いのです。

一通りパターンが終わるまでを1ターンとすると、1ターン6分強で速くなる速度は2.5%なので10秒程度の短縮です。

1フェイズ36段階(36ターン)あって、10ターン回って、1時間経過しても1ターンが5分程度あるのでしょう。

>2秒刻みが1秒刻み始まりになりましたが、そのスピードのままです。40分見ていましたが速くなっていきません。パタンは変わります。

少しずつ速くなっているはずです。

>昨日1秒刻みまでしか早くならなくなった11/20バージョンを改めて書き込んでみました。0.3秒くらい刻みのスピードまではなるのですが、走り回るスピードにはなりません。
>今回の11/22バージョンも再書き込みしてみましたが、開始時から1秒刻みのままです。

>40分ほどは眺めていたのですが、もっと長時間かかって変わっていくのでしょうか。

多分、数時間かかりますね。

数時間待ちはあまりにも酷いので「これじゃ駄目じゃん」程度には直しました。

リセット直後のみ、フェイズ2から開始

> フェイズ0で1.275秒間隔〜15段階で加速
> フェイズ1で14段階で減速
> フェイズ2で1.275秒間隔〜10段階で加速
> フェイズ3で9段階で減速
> フェイズ4で1.275秒間隔〜7段階で加速
> フェイズ5で6段階で減速
> フェイズ6で1.275秒間隔〜5段階で加速
> フェイズ7で5段階で減速
> フェイズ8で他のフェイズの2倍の速度から10段階で加速
> フェイズ9で他のフェイズの2倍の速度から10段階で減速

差し替え済みですが、アセンブルのエラーチェックのみなので動くかは判りません、

daruma(2017/11/23 Thu 20:21) [ 編集 ] [ 返信 ]


Re^81: LED Cube

少しずつ速くなってたいへんな時間を要するのですね。
起動時1秒強刻みだったのが30分で1秒ちようどくらい、さらに20分後1秒弱刻みになりました。
1時間10分程経過したところでパラパラという動き、0.5秒刻みくらいでしょうか。さらに10分程たつと若干遅くなりだしていました。この間目を離したうちにトップスピードを通り過ぎてしまったのか、そこまで行かずに遅くなり始めたのかわかりません。※後述※先日初めて走ったときの最速状態にはお目にかかっていません。
回数で進んでいるのでしょうから、遅い段階では所要時間が長く速い段階は短時間に過ぎるのでしょう。2時間半ほど経過した現在は最も遅い1秒強刻みの段階です。

遅い段階を取り除いて速い後半だけにしていただくわけにはいきませんか。実用範囲は、感覚的な表現ですが「パラパラパラ〜」→「ピュンピュン」→「複数同時点灯に見える」あたりを期待しています。

※※
その後、トップスピードを現認できました。0.5秒刻み(1秒に2発)になったあたりから目を離さずに見ていると、0.3秒刻み(1秒に3発)になり、0.2秒刻み(1秒に5発)の「パラパラパラ〜」になり、次いで「ピュンピュン」と走り回る速さになった後減速に転じました。測定値ではなく見た目の速さ表記です。

daruma(2017/11/24 Fri 16:46) [ 編集 ] [ 返信 ]


Re^82: LED Cube

JPG 768x1024 121.5kb

試作3号機をケースに収めました。
3mm厚のシナベニヤをカッターで切って木工ボンドで貼りました。この写真ではよく見えませんが、天面には1mm幅のスリットを3本彫って、キューブを装着した基板を後方から差し入れています。当初はヘッダソケットの位置に穴を開けて足を外から差し込む構想でしたが、足が軟らかくて挿し難くてこのようにしました。
塗装は水性ウレタンニスを刷毛塗りしてみたのですが、きれいにいかなくて意図せぬアンティーク調になってしまいました。素人塗装はやはりスプレーがいいです。
キューブ部作りは4個めで多少熟達しましたがこの程度です。足が少々長すぎて背が高くなってしまいました。これでは立方体じゃありませんね。

なんじゃらほい(2017/11/24 Fri 20:52) [ 編集 ] [ 返信 ]


Re^83: LED Cube

>遅い段階を取り除いて速い後半だけにしていただくわけにはいきませんか。

やるのは簡単ですが、それをやったらdarumaさんのやること(工夫すること)が無くなってしまいます。

>実用範囲は、感覚的な表現ですが「パラパラパラ〜」→「ピュンピュン」→「複数同時点灯に見える」あたりを期待しています。

それだと、0.2秒〜0,001秒あたりでしょうね。

基本パターンのみの「それっぽいもの」をつくりましたので、色々なパターンはがんばって作って下さい。

3-3_16F87SAMPLE3.HEX
:020000040000FA
:10000000831660308F0000308600F0308500811745
:10001000831207309C00850186018514051585151E
:10002000FF30A6000130A800152832203E203620DF
:100030003E203A203E2036203E202808A602031803
:1000400015280130A60032203E2036203E203A20DE
:100050003E2036203E202808A607031C2328FF3018
:10006000A6001528851005158515080085140511AD
:1000700085150800851405158511080005108601F1
:1000800006145B20860186145B20860106155B2022
:10009000860186155B20860106165B208601861682
:1000A0005B20860106175B20860186175B20860190
:1000B00005145B2008002608A7006E20A708031976
:1000C0000800A70B5D2808001330A1000000000005
:1000D0000000A10B66280000000008006430A300A7
:1000E0000000000000000000000000000000A30B62
:1000F000702808003230A4006420A40B7C2808007B
:100100006430A4006420A40B822808002830A500D5
:100110007A20A50B882808006430A5007A20A50B5A
:100120008E280800C930A5007A20A50B9428080065
:02400E00503F21
:02401000FD3F72
:00000001FF

ソースはこちら
https://yahoo.jp/box/7ZY1_x

101行 MOVLW D'1'
102行 MOVWF STEPDATA

101行の数値を大きくすると加減速の変化速度が速くなります。

あ、減速に転換する前の初期値の再設定が抜けているので、段階的な減速がされない模様、なので修正 更新日時 2017/11/25(土)10:15

DPCNTが0でWAITXがコールされた場合に桁割れを防止するための処理を追加
更新日時 2017/11/25(土)10:29

daruma(2017/11/24 Fri 23:42) [ 編集 ] [ 返信 ]


Re^84: LED Cube

基本パターンありがとうございます。
ソースをじっくり読んで実験しながら牛歩で行きます。
> 101行 MOVLW D'1'
> 102行 MOVWF STEPDATA
で速さをセットして、GOTO MAIN
MAINの中で無限ループしているのをカウントして脱出し速さ変更と、そんな感じでしょうか。
MAINの中に速さの違うループをいくつも書き並べるというスタイルが、冗長になっても単純でしょうか。
MAINを格下げしてサブルーチンにし、速さをセットしてはそれを呼ぶという筋書きを新MAINとするのがすっきりするでしょうか。

あ、走らせているうちに速くなりました。定速だけではないんですね。この値は速さ(点灯時間)ではなくて「加減速の変化速度」ですか。速さはすでに何段階か並んでいるんですね。早合点せずいろいろやってみます。

daruma(2017/11/25 Sat 18:46) [ 編集 ] [ 返信 ]


Re^85: LED Cube

おさらいして、MPLAB X IDE でbuildして書き込むことができるようになりました。

昨日のソースを書き込んで走らせてみました。トップスピードに達してスローに戻るまで10分でした。

> 101行 MOVLW D'1'
を'2'にしても目に見えて変化はなかったので、、'9'にすると2分になりました。さらに'32'にすると1分弱でした。

この値は変化の刻みなんですね。値を大きくすると大股で変化すると。

初期スピードとトップスピードをもっと速くすることと、所要時間が短くなるぶんループ回数を多くすることを試みたいと思います。「どこかとどこか」の値を変えるんでしょうね。ソースを睨んで探ります。

なんじゃらほい(2017/11/25 Sat 22:59) [ 編集 ] [ 返信 ]


Re^86: LED Cube

>
> 昨日のソースを書き込んで走らせてみました。トップスピードに達してスローに戻るまで10分でした。

ん?

あ、減速に転換する前の初期値の再設定が抜けているので、段階的な減速がされない模様、なので修正 更新日時 2017/11/25(土)10:15

DPCNTが0でWAITXがコールされた場合に桁割れを防止するための処理を追加
更新日時 2017/11/25(土)10:29

これ気がついてないですか?

昨日のものにはバグがあって、半分しか機能していないので最新のソースを使って下さい。

>
> > 101行 MOVLW D'1'
> を'2'にしても目に見えて変化はなかったので、、'9'にすると2分になりました。さらに'32'にすると1分弱でした。
>
> この値は変化の刻みなんですね。値を大きくすると大股で変化すると。

1だと256(変化幅1mS刻み)段階、2だと128段階(変化幅2mS刻み)、10だと25〜26段階(変化幅10mS刻み)です。

>
> 初期スピードとトップスピードをもっと速くすることと、

WAITXでコールしている1mSの値が変化の最小単位で、ウエイト時間の基準になります。

WAITXでコールされているウェイト時間が、DPCNTの回数だけ繰り返され、ひとつのLEDの点灯持続時間になります。

よってTIME1MをTIME100にすれば、速度の初期値も最高速も約10倍になります。

>所要時間が短くなるぶんループ回数を多くすることを試みたいと思います。
>「どこかとどこか」の値を変えるんでしょうね。ソースを睨んで探ります。

ループ回数は101行が1の時が最高です。それ以上にする場合は、ある程度の書き足しが必要です。

daruma(2017/11/26 Sun 10:11) [ 編集 ] [ 返信 ]


Re^87: LED Cube

新規投稿は追っているのですが、遡って過去の投稿に追記や変更があったのを見落としていました、

> 更新日時 2017/11/25(土)10:29
YAHOOボックスに行って、更新日時 2017/11/25(土)10:32となっているのをダウンロードしました。

走らせると、20分でトップスピードに達し減速に転じます。昨日の実験ではガクンと初速に戻っていましたが下り坂です。

D'2'に変更すると。10分でトップスピードです。

さらに、D'2'でTIME100に変更すると、1分でトップスピードです。

D'1'に戻してTIME100では、3分でトップスピードです。

TIME1Mのときは1〜9のLEDが1発ずつ順次点灯しA〜Cに移っていく様子が見えたのですが、TIME100では横並び3灯が同時点灯しているように見えこれがA〜Cと移ります。トップでは全点灯に見えます。別パタンにしなくてもスピードだけでパタンが違って見えるのがいいですね。

「1発点灯横移動」から始まるようにするには、TIME500を作ってそれをコールすればよさそうですが、TIME100のDの値を2+(5*99)-1+2+3で'99'にすればよいでしょうか。それとも、TIME5MにならってTIME100をコールする形にするのがよいでしょうか。

高速ではループがあっというまに過ぎてしまうのですが、D'1'のときが最高なのでしたら、短時間の変化が波のように繰り返されるのがいいかもしれませんね。

なんじゃらほい(2017/11/26 Sun 11:53) [ 編集 ] [ 返信 ]


Re^88: LED Cube

>TIME500を作ってそれをコールすればよさそうですが、
>TIME100のDの値を2+(5*99)-1+2+3で'99'にすればよいでしょうか。
>それとも、TIME5MにならってTIME100をコールする形にするのがよいでしょうか。

サブルーチンの多重コールは出来るだけ避けた方がいいので、大幅に可読性が落ちる場合を除いて、TIME100のDの値を増やす方がいいですが、現状では500マイクロ秒のウェイトが何箇所も必要な状況ではないので、WAITXのループ内でCALL TIME100を複数回(5回)繰り返すほうが、プログラムが短くて微調整もしやすいです。

難点は美しくないというだけですね。

daruma(2017/11/27 Mon 15:17) [ 編集 ] [ 返信 ]


Re^89: LED Cube

TIME100のサブルーチンはそのままにしてコピペで同様のサブルーチンを作り、T_LP1のラベルが重複するのでT_LP1bとしました。いろいろ試してみた結果、101行MOVLW D'5'にして、TIME150 MOVLW D'29'のサブルーチンを呼ぶことにしました。
これで、
・1発点灯横走り
・2発点灯(に見える)横走り
・3発点灯(に見える)横走り
・3発点灯(に見える)縦走り
・全点灯(に見える)トップスピード
の変化を上り坂1分下り坂1分で繰り返します。
TIME150(D'29')より速いと1発点灯から始まらず、それより遅いと1発点灯フェイズが長すぎます。
MAIN内のSTEPDATAが小さいと所要時間が長くかかって、大きいと高速フェイズがあっというまに通り過ぎ、D'5'が落ち着きどころです。
低速フェイズがあまり長くならず高速フェイズがもうすこしたっぷり見られるとよりいいのですが、回数で回しているのでそうは行きませんよね。

これまでブレッドボードで実験していましたので、これから基板図を描きます。

ところで、「30リセットで動かなくなる」問題はこのバージョンももっているでしょうか。

なんじゃらほい(2017/11/27 Mon 19:59) [ 編集 ] [ 返信 ]


Re^90: LED Cube

> これで、
> ・1発点灯横走り
> ・2発点灯(に見える)横走り
> ・3発点灯(に見える)横走り
> ・3発点灯(に見える)縦走り
> ・全点灯(に見える)トップスピード
> の変化を上り坂1分下り坂1分で繰り返します。

ずいぶん頑張りましたね。

> 低速フェイズがあまり長くならず高速フェイズがもうすこしたっぷり見られるとよりいいのですが、回数で回しているのでそうは行きませんよね。

現状レベルの延長線で高速フェイズの場合だけカウントダウンを遅くする方法があります。

例えば
変数レジスタ割付定義
CHOUFU EQU 29H

にレジスタのラベルを追加し
MOVLW D'5'
MOVWF STEPDATA

のあとに

CLRF CHOUFU

を追加

MAIN
BTFSC CHOUFU,0 ;重複フラグをチェック
GOTO S1START ;フラグ1ならS1STARTへ

MOVLW D'200' ;L SET W
SUBWF DPCNT,W ;F-W
BTFSS STATUS,C ;200以下だとS2STARTへ
GOTO S2START

S1START CLRF CHOUFU
GOTO UPSTART

S2START BSF CHOUFU,0 ;重複フラグをセット

UPSTART

;TOP
CALL SET_A
CALL DOWN_S

このようにDPCNTの値をチェックして、基準値以下の場合のみフラグを立てて、

カウントダウンの直前に

BTFSC CHOUFU,0
GOTO S1START

CLRF CHOUFU

;DPCNTのカウントダウン処理(通常の減算処理)
MOVF STEPDATA,W
SUBWF DPCNT,F ;F-W
BTFSC STATUS,C ;UNDER 0 THEN 0
GOTO MAIN

重複フラグをチェックし、フラグが立っている場合のみカウントダウンを行わずに、表示ルーチントップへジャンプさせれば、この値の場合ではDPCNTで200以下になると2回ずつ同じスピードでループするようになります。

同様に減速ループにもラベルを変更して組み込めば、こちらも速度が速いときのみ2回ループになるので、高速時の表示時間が長くなります。
2回では「焼け石に水」感が強いですが。

まあ、これは初級レベルの力業プログラムで、中級レベルのプログラムなら割り込みを使って、一定時間ごとにカウントダウンさせるという方法も可能です。

というか、まともなプログラマなら割り込み提案しますね。
ただ、割り込みを使うとなると、インターバル時間を数値で出さなければなりません。しかもレジスタの設定が結構面倒です。

参考
http://ktsite.ddo.jp/PIC/16f88/TMR0.html

4MHZなら65mS位までタイマー0でインターバルが作れます。
タイマー1を使えばもっと長いインターバルも作れます。

> ところで、「30リセットで動かなくなる」問題はこのバージョンももっているでしょうか。

ありません。多分darumaさんが頑張って組み込まないとそうなりません(笑)

daruma(2017/11/28 Tue 10:50) [ 編集 ] [ 返信 ]


Re^91: LED Cube

; 変数レジスタ割付定義 に
CHOUFU EQU 29H
を加えました。

; 入出力ピンモード初期化 の下の方を
MOVLW D'5'
MOVWF STEPDATA
CLRF CHOUFU  ;←追加
としました。

MAIN の冒頭に

BTFSC CHOUFU,0 ;重複フラグをチェック
GOTO S1START ;フラグ1ならS1STARTへ

CLRF CHOUFU

MOVLW D'200' ;L SET W
SUBWF DPCNT,W ;F-W
BTFSS STATUS,C ;200以下だとS2STARTへ
GOTO S2START

S1START CLRF CHOUFU
GOTO UPSTART

S2START BSF CHOUFU,0 ;重複フラグをセット

UPSTART
を加えました。

これでひとまず走りました。

次に減速ループです。
MAIN2 が減速ループですよね。
冒頭に
BTFSC CHOUFU,0 ;重複フラグをチェック
GOTO S3START ;フラグ1ならS3STARTへ

CLRF CHOUFU

MOVLW D'200' ;L SET W
SUBWF DPCNT,W ;F-W
BTFSS STATUS,C ;200以下だとS4STARTへ
GOTO S4START

S3START CLRF CHOUFU
GOTO DNSTART

S4START BSF CHOUFU,0 ;重複フラグをセット

DNSTART

を加えました。
S1STARTをS3STARTに、S2STARTをS4STARTに変更してあります。
UPSTARTをDNSTARTに変更しました。

これも走りました。

やったことを振り返りながら以上書きましたが、あと何かしたかなぁ・・・。

さてこのバージョンも走ったわけですが、これで正しいでしょうか。体感的に、「う〜ん、いくらか最高速フェイズが長くなったかなあ」くらいです。「一瞬」が「二瞬」になったと言いましょうか・・・。

> > ところで、「30リセットで動かなくなる」問題はこのバージョンももっているでしょうか。
> ありません。多分darumaさんが頑張って組み込まないとそうなりません(笑)

安心しました。そんな頑張りはしません。

※ 短い周期で繰り返すように、スピード変化刻みをD'5'からD'10'に増やしました。上りつめるまで25秒位です。

なんじゃらほい(2017/11/28 Tue 19:35) [ 編集 ] [ 返信 ]


Re^92: LED Cube

> さてこのバージョンも走ったわけですが、これで正しいでしょうか。

良さそうですが、真偽は計測器で測らないと不明でしょうね。



>体感的に、「う〜ん、いくらか最高速フェイズが長くなったかなあ」くらいです。「一瞬」が「二瞬」になったと言いましょうか・・・。

そんなものでしょう。

では.チカラ技の第2弾(笑)

> MAIN



> UPSTART

の間のものを

MOVF CHOUFU,F
BTFSS STATUS,Z
GOTO UPSTART ;0以外なら重複回数設定済みとして表示を実行

NOWCNTCK ;重複カウンタが0の場合のみ現在のDPCNT値をチェック、重複回数を設定
;「以下になる状態」を求めるため、チェックする値の小さいものから処理する
;条件分岐はもっと増やせるが1項目ごとに1ターン(一巡)で10マイクロ秒位の遅れ(点灯インターバル)が増加する

MOVLW D'32' ;L SET W
SUBWF DPCNT,W ;F-W
BTFSS STATUS,C ;32以下だとS1SETへ
GOTO S1SET

MOVLW D'64' ;L SET W
SUBWF DPCNT,W ;F-W
BTFSS STATUS,C ;64以下だとS2SETへ
GOTO S2SET

MOVLW D'128' ;L SET W
SUBWF DPCNT,W ;F-W
BTFSS STATUS,C ;128以下だとS3SETへ
GOTO S3SET

GOTO UPSTART ;どれも該当しないなら、そのまま表示へ

S1SET MOVLW D'200'
MOVWF CHOUFU
GOTO UPSTART

S2SET MOVLW D'120'
MOVWF CHOUFU
GOTO UPSTART

S3SET MOVLW D'30'
MOVWF CHOUFU
GOTO UPSTART

に、入れ替え、


;MID2
CALL SET_B
CALL DOWN_S

の表示終わり後を

MOVF CHOUFU,F ;重複カウンタが0にならそのままCD_GOへ(初回・重複範囲外)
BTFSC STATUS,Z
GOTO CD_GO

DECFSZ CHOUFU,F ;重複カウンタをカウントダウンし、0になるまでUPSTARTへ
GOTO UPSTART
GOTO CD_GO ;0になったらDPCNTのカウントダウンへ

に入れ替え、



カウントダウン部分にCD_GOのラベルを追加で

CD_GO MOVF STEPDATA,W
SUBWF DPCNT,F ;F-W
BTFSC STATUS,C ;UNDER 0 THEN 0
GOTO MAIN ;F-W

4段階の重複ループ回数の設定が出来るようになります。

しきい値や重複回数をカスタマイズすれば、見せたい部分を長く見せられるようになります。

更新済みソースはこちら
https://yahoo.jp/box/7ZY1_x

daruma(2017/11/28 Tue 20:51) [ 編集 ] [ 返信 ]


Re^93: LED Cube

どうも難しいです。

> 表示終わり後を
これはどこでしょう。

> CD_GOのラベルを追加
ラベルを付けるのは、
;MID2
CALL SET_B
CALL DOWN_S
の下の
MOVF STEPDATA,W
のところでしょうか。

daruma(2017/11/29 Wed 15:06) [ 編集 ] [ 返信 ]


Re^94: LED Cube

昨夜の「チカラ技の第2弾」はさておき、

フラグを立てるバージョンで、WAITXでフラグを見て立っていたらTIMEをたくさん呼ぶ作戦を試みました。

WAITX MOVF DPCNT,W
MOVWF DPCNTW ;
TLXR CALL TIME150

BTFSS CHOUFU,0 ;重複フラグをチェック
GOTO WAITX2 ;フラグ0ならWAITX2へ
CLRF CHOUFU
CALL TIME150
CALL TIME150
CALL TIME150
CALL TIME150
CALL TIME150

WAITX2 MOVF DPCNTW,F
BTFSC STATUS,Z
RETURN
DECFSZ DPCNTW,F
GOTO TLXR
RETURN

上記がよいかどうか以前に、フラグが立った状態でここへ来ないのです。BTFSSとBTFSCとで試して、判断分岐が動作すること自体は確かめたのですが、CHOUFUはいつも0のようです。

もしや、
http://mpga.jp/akizuki-fan/index.php?mode=article&id=3547&page=1
のバージョンでフラグが機能していないのではと不安になりました。
そこで、フラグバージョンとその前のバージョンとを10周期回して計時し比較しました。どちらも、STEPDATAは'5'、TIME150です。
結果、10回目のトップスピードに達する所要時間はどちらも14分00秒でした。「一瞬が二瞬に」もなっていなかったようです。
1秒が2秒にとなっても10回で10秒遅くなるはずですよね。
私が書き変えた部分、どこかまずいでしょうか。
以下、長いですが貼ります。

;******************************
; 変数レジスタ割付定義
;******************************

DPDT EQU 20H ;LCD output data ←16F87のRAM先頭アドレス
CNT1 EQU 21H ;タイマ用カウンタ
CNT2 EQU 22H
CNT3 EQU 23H
CNT4 EQU 24H
CNT5 EQU 25H
DPCNT EQU 26H
DPCNTW EQU 27H
STEPDATA EQU 28H
STAGECNT EQU 2DH

CHOUFU EQU 29H

ORG 00H

;************************************
; 入出力ピンモード初期化
;************************************

PORT_INI
;中略

BSF STATUS,RP0 ;Set page 1

MOVLW B'01100000' ;下位2ビット注意 00じゃないとCONFIGのINTRC_IOが無効になる
MOVWF OSCCON ;BANK1

MOVLW B'00000000' ; 0-7 OUTPUT
MOVWF TRISB ;PortB set
MOVLW B'11110000' ;RA0〜3以外IN
MOVWF TRISA ;PortA set

BSF OPTION_REG,7 ;BANK1 0でプルアップ有効
BCF STATUS,RP0 ;Set Page 0

MOVLW 07H ;07Hを設定 16F87/88をPORTAをデジタルI/Oに
MOVWF CMCON ; コンパレータOFF
CLRF PORTA
CLRF PORTB ;all clear

BSF PORTA,1 ;ABCコントロール クリア済み
BSF PORTA,2 ;ABCコントロール クリア済み
BSF PORTA,3 ;ABCコントロール クリア済み

MOVLW D'255'
MOVWF DPCNT

MOVLW D'5'
MOVWF STEPDATA

CLRF CHOUFU

GOTO MAIN

;...............................
MAIN

BTFSC CHOUFU,0 ;重複フラグをチェック
GOTO S1START ;フラグ1ならS1STARTへ

CLRF CHOUFU

MOVLW D'200' ;L SET W
SUBWF DPCNT,W ;F-W
BTFSS STATUS,C ;200以下だとS2STARTへ
GOTO S2START

S1START CLRF CHOUFU
GOTO UPSTART

S2START BSF CHOUFU,0 ;重複フラグをセット

UPSTART

;TOP
CALL SET_A
CALL DOWN_S

;MID
CALL SET_B
CALL DOWN_S

;LOWER
CALL SET_C
CALL DOWN_S

;MID2
CALL SET_B
CALL DOWN_S

MOVF STEPDATA,W
SUBWF DPCNT,F ;F-W
BTFSC STATUS,C ;UNDER 0 THEN 0
GOTO MAIN

MOVLW D'1'
MOVWF DPCNT

MAIN2

BTFSC CHOUFU,0 ;重複フラグをチェック
GOTO S3START ;フラグ1ならS3STARTへ

CLRF CHOUFU

MOVLW D'200' ;L SET W
SUBWF DPCNT,W ;F-W
BTFSS STATUS,C ;200以下だとS4STARTへ
GOTO S4START

S3START CLRF CHOUFU
GOTO DNSTART

S4START BSF CHOUFU,0 ;重複フラグをセット

DNSTART

;*********************************
; タイマーサブルーチン 4MHZ
;*********************************

TIME100 MOVLW D'19' ;2+(5*19)-1+2+3=100 1×100=100MicroSec
MOVWF CNT1
T_LP1 NOP
NOP
NOP
DECFSZ CNT1,F
GOTO T_LP1
NOP
NOP
RETURN ;99Micro sec(about)

TIME150 MOVLW D'29' ;2+(5*29)-1+2+3=150 1×150=150MicroSec
MOVWF CNT1
T_LP1b NOP
NOP
NOP
DECFSZ CNT1,F
GOTO T_LP1b
NOP
NOP
RETURN ;150Micro sec(about)

ご面倒をおかけします。

なんじゃらほい(2017/11/29 Wed 19:27) [ 編集 ] [ 返信 ]


Re^95: LED Cube

> そこで、フラグバージョンとその前のバージョンとを10周期回して計時し比較しました。どちらも、STEPDATAは'5'、TIME150です。
> 結果、10回目のトップスピードに達する所要時間はどちらも14分00秒でした。「一瞬が二瞬に」もなっていなかったようです。
> 1秒が2秒にとなっても10回で10秒遅くなるはずですよね。
> 私が書き変えた部分、どこかまずいでしょうか。

>
> ;MID2
> CALL SET_B
> CALL DOWN_S
>
> MOVF STEPDATA,W
> SUBWF DPCNT,F ;F-W
> BTFSC STATUS,C ;UNDER 0 THEN 0
> GOTO MAIN
>
> MOVLW D'1'
> MOVWF DPCNT

これでは、フラグが立とうが立つまいがループ回数は増えませんから、時間に大差がなくても不思議ではありません。

http://mpga.jp/akizuki-fan/index.php?mode=article&id=3546&page=1
>このようにDPCNTの値をチェックして、基準値以下の場合のみフラグを立てて、

>カウントダウンの直前に

>BTFSC CHOUFU,0
>GOTO S1START

>CLRF CHOUFU

>;DPCNTのカウントダウン処理(通常の減算処理)
>MOVF STEPDATA,W
>SUBWF DPCNT,F ;F-W
>BTFSC STATUS,C ;UNDER 0 THEN 0
>GOTO MAIN

>重複フラグをチェックし、フラグが立っている場合のみカウント
>ダウンを行わずに、表示ルーチントップへジャンプさせれば、
>この値の場合ではDPCNTで200以下になると2回ずつ同じ
>スピードでループするようになります。

それから,WAITXは点灯時間であり=実質移動速度ですから、これを増やしても移動速度が遅くなるだけです。

あと、フラグはDPCNTが199以下の時にしか立ちません。
フラグ立てのしきい値はもっと小さくないと中速域がかったるくなる可能性があります。

>昨夜の「チカラ技の第2弾」はさておき、

昨夜の時点で修正ソースがアップロードされています。
判らなかったら、そちらを実行してみて下さい。

daruma(2017/11/29 Wed 23:54) [ 編集 ] [ 返信 ]


Re^96: LED Cube

> それから,WAITXは点灯時間であり=実質移動速度ですから、これを増やしても移動速度が遅くなるだけです。

とんだ考え違いをしてしまいました。「点灯時間が延びる→そのフェイズの時間が長くなる」と思いついたのですが、延びたら低速になるんですよね。
回数を増やすことでしかそのフェイズの時間を長くすることはできないんですね。

で、先日のバージョンでループを増やしたつもりが
>重複フラグをチェックし、フラグが立っている場合のみカウント
> >ダウンを行わずに、表示ルーチントップへジャンプさせれば、
ができていなかったのですね。「一瞬が二瞬に」なっていなかったんですね。未熟でした。

> 昨夜の時点で修正ソースがアップロードされています。
またしても遡っての追記に気づきませんでした。すみません。
ダウンロードしてまずそのまま走らせました。
STEPDATAが'1'でTIME1Mですから、長時間かかる動作ですね。1時間10分までは見ていました。
そのあと、STEPDATAを'5'でTIME100にしたところ、順調にスピードアップしていったのですが、全点灯(に見える)まで上りついたところでそのままの状態になってしまいました。減速に転じません。どうしたことでしょう。カウンタが通り越してしまってチェックにあてはまらなくなったのでしょうか。STEPDATAが'1'でTIME1Mのままでも、辛抱強く見ていたらそうなったのかな。

※ STEPDATAが'1'でTIME1Mのものを寝る前に再度走らせておきました。朝になったら、全点灯(に見える)状態から抜けない状態になっていました。

なんじゃらほい(2017/11/30 Thu 18:41) [ 編集 ] [ 返信 ]


Re^97: LED Cube

>どうしたことでしょう。カウンタが通り越してしまってチェックにあてはまらなくなったのでしょうか。
>STEPDATAが'1'でTIME1Mのままでも、辛抱強く見ていたらそうなったのかな。
>※ STEPDATAが'1'でTIME1Mのものを寝る前に再度走らせておきました。
>朝になったら、全点灯(に見える)状態から抜けない状態になっていました。

STEPDATA×ウェイトXの基本時間×重複設定回数なので、パラメータの設定次第で数時間になることはおかしくありません。

こういう場合は、STEPDATAを52とかにして、無限ループか、実行時間が想定以上に長いのかの切り分けをして下さい。



チカラ技第2弾のソースは240行〜260行の間にバグの原因があります。

理解すれば簡単だし、勉強になるので自分で直して下さい

チカラ技第2弾の修正HEX STEP7 1mS
:020000040000FA
:10000000831660308F0000308600F0308500811745
:10001000831207309C00850186018514051585151E
:10002000FF30A6000730A800A9011628A908031D63
:100030002F2820302602031C262840302602031CCD
:10004000292880302602031C2C282F28C830A9001C
:100050002F287830A9002F281E30A9002F287120C2
:100060007D2075207D2079207D2075207D20A908A8
:1000700003193D28A90B2F283D282808A60203189C
:1000800016280130A600A908031D5C28203026028E
:10009000031C532840302602031C562880302602B9
:1000A000031C59285C28C830A9005C287830A900B6
:1000B0005C281E30A9005C2871207D2075207D20E1
:1000C00079207D2075207D20A90803196A28A90BB5
:1000D0005C286A282808A607031C4328FF30A600CE
:1000E0001628851005158515080085140511851538
:1000F00008008514051585110800051086010614F1
:100100009A20860186149A20860106159A20860177
:1001100086159A20860106169A20860186169A2050
:10012000860106179A20860186179A2086010514F3
:100130009A2008002608A700AD20A7080319080088
:10014000A70B9C2808001330A1000000000000004D
:10015000A10BA5280000000008006430A3000000E7
:10016000000000000000000000000000A30BAF280A
:1001700008003230A400A320A40BBB280800643080
:10018000A400A320A40BC12808002830A500B92092
:10019000A50BC72808006430A500B920A50BCD2801
:0E01A0000800C930A500B920A50BD32808001F
:02400E00503F21
:02401000FD3F72
:00000001FF

;

チカラ技第3弾のHEX STEP変化版 重複あり1mS
:020000040000FA
:10000000831660308F0000308600F0308500811745
:10001000831207309C00850186018514051585151E
:10002000FF30A6000C30A800A9011628A908031D5E
:10003000372820302602031C282840302602031CC3
:100040002D2880302602031C32280C30A8003728C7
:10005000C830A9000130A80037287830A900043042
:10006000A80037281E30A9000830A80037288120B2
:100070008D2085208D2089208D2085208D20A90828
:1000800003194528A90B372845282808A602031874
:1000900016280130A600A908031D6C28203026026E
:1000A000031C5D2840302602031C62288030260293
:1000B000031C67280C30A8006C28C830A900013048
:1000C000A8006C287830A9000430A8006C281E30E5
:1000D000A9000830A8006C2881208D2085208D2063
:1000E00089208D2085208D20A90803197A28A90B45
:1000F0006C287A282808A607031C4B28FF30A60086
:100100001628851005158515080085140511851517
:1001100008008514051585110800051086010614D0
:10012000AA2086018614AA2086010615AA20860127
:100130008615AA2086010616AA2086018616AA2000
:1001400086010617AA2086018617AA2086010514B3
:10015000AA2008002608A700BD20A7080319080048
:10016000A70BAC2808001330A1000000000000001D
:10017000A10BB5280000000008006430A3000000B7
:10018000000000000000000000000000A30BBF28DA
:1001900008003230A400B320A40BCB280800643040
:1001A000A400B320A40BD12808002830A500C92042
:1001B000A50BD72808006430A500C920A50BDD28B1
:0E01C0000800C930A500C920A50BE3280800DF
:02400E00503F21
:02401000FD3F72
:00000001FF



頭脳技版TIMER1使用の最低加減速インターバル50mS版
:020000040000FA
:020000001828BE
:08000800AB00030EAA00AC0AD4
:1000100001302C02031D0E28AC0129145B200C10AA
:1000200083160C1483122A0E8300AB0E2B0E0900CC
:10003000831660308F0000308600F0308500811715
:10004000831207309C000030900083160C1483123A
:100050000B178B1785018601851405158515FF3053
:10006000A6000130A800AC01A90136286020642058
:100070007020682070206C20702068207020291C5F
:10008000372810102808A602031836280130A600C9
:10009000602064207020682070206C207020682010
:1000A0007020291C492810102808A607031C48287E
:1000B000FF30A6003628C9308E003C308F00080083
:1000C000AC015B201014080085100515851508008B
:1000D000851405118515080085140515851108007E
:1000E0000510860106148D20860186148D20860158
:1000F00006158D20860186158D20860106168D2019
:10010000860186168D20860106178D2086018617AA
:100110008D20860105148D2008002608A700962052
:10012000A70803190800A70B8F2808001330A100A7
:10013000000000000000A10B98280000000008004B
:100140006430A30000000000000000000000000078
:100150000000A30BA22808003230A4009620A40BB4
:10016000AE2808006430A4009620A40BB428080030
:100170002830A500AC20A50BBA2808006430A500E3
:10018000AC20A50BC0280800C930A500AC20A50BE9
:04019000C628080075
:02400E00503F21
:02401000FD3F72
:00000001FF



頭脳技版TIMER1使用の最低加減速インターバル250mS版
:020000040000FA
:020000001528C1
:08000800AB00030EAA00AC0AD4
:1000100005302C02031D0E28AC01291458200C10A9
:100020002A0E8300AB0E2B0E0900831660308F0062
:1000300000308600F03085008117831207309C0065
:100040000030900083160C1483120B178B17850158
:100050008601851405158515FF30A6000130A8001E
:10006000AC01A90133285D2061206D2065206D2041
:1000700069206D2065206D20291C34281010280867
:10008000A602031833280130A6005D2061206D20F0
:1000900065206D2069206D2065206D20291C462873
:1000A00010102808A607031C4528FF30A600332897
:1000B000C9308E003C308F000800AC01582010146D
:1000C000080085100515851508008514051185158E
:1000D0000800851405158511080005108601061411
:1000E0008A20860186148A20860106158A208601C8
:1000F00086158A20860106168A20860186168A20A1
:10010000860106178A20860186178A208601051433
:100110008A2008002608A7009320A70803190800D2
:10012000A70B8C2808001330A1000000000000007D
:10013000A10B95280000000008006430A300000017
:10014000000000000000000000000000A30B9F283A
:1001500008003230A4009320A40BAB2808006430C0
:10016000A4009320A40BB12808002830A500A920E2
:10017000A50BB72808006430A500A920A50BBD2851
:0E0180000800C930A500A920A50BC32808005F
:02400E00503F21
:02401000FD3F72
:00000001FF

頭脳技版TIMER1使用の最低加減速インターバル250mS版 STEPDATA5 最低ウェイト150マイクロ秒
:020000040000FA
:020000001528C1
:08000800AB00030EAA00AC0AD4
:1000100005302C02031D0E28AC01291458200C10A9
:100020002A0E8300AB0E2B0E0900831660308F0062
:1000300000308600F03085008117831207309C0065
:100040000030900083160C1483120B178B17850158
:100050008601851405158515FF30A6000530A8001A
:10006000AC01A90133285D2061206D2065206D2041
:1000700069206D2065206D20291C34281010280867
:10008000A602031833280130A6005D2061206D20F0
:1000900065206D2069206D2065206D20291C462873
:1000A00010102808A607031C4528FF30A600332897
:1000B000C9308E003C308F000800AC01582010146D
:1000C000080085100515851508008514051185158E
:1000D0000800851405158511080005108601061411
:1000E0008A20860186148A20860106158A208601C8
:1000F00086158A20860106168A20860186168A20A1
:10010000860106178A20860186178A208601051433
:100110008A2008002608A7009D20A70803190800C8
:10012000A70B8C2808001330A1000000000000007D
:10013000A10B95280000000008001D30A100000060
:1001400000000000A10B9F280000000008006430A0
:10015000A3000000000000000000000000000000FC
:10016000A30BA92808003230A4009320A40BB528C3
:1001700008006430A4009320A40BBB28080028309A
:10018000A500B320A50BC12808006430A500B3204A
:10019000A50BC7280800C930A500B320A50BCD28A2
:0201A000080055
:02400E00503F21
:02401000FD3F72
:00000001FF

TIMER1使用した頭脳技版のメインルーチン
チカラ技2弾よりも大幅に短いです。
MAIN
CALL TM_SET
UPSTART
;TOP
CALL SET_A
CALL DOWN_S
;MID
CALL SET_B
CALL DOWN_S
;LOWER
CALL SET_C
CALL DOWN_S
;MID2
CALL SET_B
CALL DOWN_S

BTFSS CHOUFU,0 ;重複ビットチェックし、1になるまでDNSTARTへ
GOTO UPSTART

BCF T1CON,TMR1ON ;TMR1のTMR1ONビットをクリア カウント停止

CD_GO MOVF STEPDATA,W
SUBWF DPCNT,F ;F-W
BTFSC STATUS,C ;DPCNT < 0 THEN C=0
GOTO MAIN

MOVLW D'1'
MOVWF DPCNT
MAIN2
CALL TM_SET
DNSTART
;TOP
CALL SET_A
CALL DOWN_S
;MID
CALL SET_B
CALL DOWN_S
;LOWER
CALL SET_C
CALL DOWN_S
;MID2
CALL SET_B
CALL DOWN_S

BTFSS CHOUFU,0 ;重複ビットチェックし、1になるまでUPSTARTへ
GOTO DNSTART
BCF T1CON,TMR1ON ;TMR1のTMR1ONビットをクリア カウント停止

CD_GO2 MOVF STEPDATA,W
ADDWF DPCNT,F
BTFSS STATUS,C ;OVER 255 THEN 1
GOTO MAIN2

MOVLW D'255'
MOVWF DPCNT
GOTO MAIN



;割り込みルーチン インターバルを50mSよりも長く出来るようにするために行数が増えてますが、50mS以下のみならもっと短くすることも可能。

ORG 04H
INTR MOVWF irq_wback ;save Wreg
SWAPF STATUS,W ;save status reg
MOVWF irq_sback

INCF INT5CNT,F

MOVLW D'1' ;割り込み周期でフラグを立てる値を決める 割り込み50ms×D'X'倍の設定
SUBWF INT5CNT,W ;F-W
BTFSS STATUS,Z
GOTO CNCHKEND

CLRF INT5CNT
BSF CHOUFU,0

CNCHKEND
CALL CN_SET ;TIMER1カウントプリセット
BCF PIR1,TMR1IF ;TIMER1 オーバーフローフラグのクリア

RETBAT SWAPF irq_sback,W ;load status
MOVWF STATUS
SWAPF irq_wback,F ;load wk
SWAPF irq_wback,W
RETFIE ;割り込みを許可してリターン

通りすがり(2017/11/09 Thu 11:29) [ 編集 ] [ 返信 ]

ラズパイ STLデータ

https://grabcad.com/library/raspberry-pi-case-model-b-2-3-1

やはりケースは考え物だな

inara1(2017/11/01 Wed 18:23) [ 編集 ] [ 返信 ]

LT1167でHPFを作る

PNG 720x1040 226.9kb

Yahoo知恵袋の回答の補足にここを使わせてください。
最近、Yahoo知恵袋の回答数が2つに制限されたようで、3つ目の回答ができなくなりました。

最初の回答を取り消して1から回答すれば投稿できますが、そうすると回答の流れが分からなくなるので、この掲示板に最初の2つの回答を書いておくことにしました(そうすればYahoo知恵袋からこのサイトを見れば最初の2つの回答を見ることができます)。

まずは最初の回答です。

回路シミュレータ(LTspice)で見てみるとHPFになるようです。

しかし、LT1167の同相電圧除去比(CMRR)は数十Hz以上から下がってくるので、HPFとして使うと、低周波でのCMRRの高さを生かせなくなるのでもったいないです。数Hz以下をカットするような使い方なら問題ないと思います。

inara1(2017/11/01 Wed 18:25) [ 編集 ] [ 返信 ]


Re: LT1167でHPFを作る

PNG 720x756 64.1kb

次の回答です。

1pin-8pin間にRとCを直列に入れたときの伝達関数は下図のようになります。グラフはその式で計算した利得の周波数依存です。

数10kHz以下では回路シミュレーションの結果と一致しています。回路シミュレーションで数10kHzを超える周波数で利得が下がってくるのは、LT1167のオープンループ利得が周波数とともに小さくなってくるからです。

inara1(2017/11/01 Wed 18:29) [ 編集 ] [ 返信 ]


Re^2: LT1167でHPFを作る

PNG 720x1040 334.1kb

3回目の回答です。その前質問者さんから返信が来ましたが、その返信を開けないので、それに対する回答だけを添付します。

jは虚数単位、ωは角周波数[rad/s]なので
Voltage Gain = { 1 + j*2*π*f*C*(R+R0) }/{ 1 + j*2*π*f*C*R } --- (1)
= { 1 + j*2*π*f*C*(R+R0) }*{ 1 - j*2*π*f*C*R }/{ 1 + (2*π*f*C*R)^2 }
={ (2*π*f*C)^2*(R+R0)*R + j*2*π*f*C*R0 }/{ 1 + (2*π*f*C*R)^2 }
ですが、グラフの縦軸はVoltage Gainの絶対値で

Voltage Gainの絶対値 = √{(2*π*f*C)^2*(R+R0)*R}^2 + (2*π*f*C*R0)^2 }/{ 1 + (2*π*f*C*R)^2 }
となります。

この計算は面倒なので、実際には、式(1)をExcelの複素数関数を使って、例えばC列8行のセルは、以下のような式で計算しています。

=IMABS(IMDIV(COMPLEX(1,2*PI()*$B8*C$3*(C$2+C$4)),COMPLEX(1,2*PI()*$B8*C$3*C$4)))

$B8はf [Hz]
C$3はC [F]
C$2はR0 [Ω]
C$4はR [Ω]

IMABS(A)は複素数Aの絶対値を計算する関数、IMDIV(A,B)は複素数AとBの割り算A/Bを計算する関数です。COMPLEX(A,B) は A+j*B という意味です。

inara1(2017/10/13 Fri 17:59) [ 編集 ] [ 返信 ]

LED駆動回路のLTspice回路図ファイル

Yahoo知恵袋の回答の補足にここを使わせてください。

回路シミュレータのLTspiceで描いた回路図ファイル(拡張子がasc)はテキスト形式で書かれているので、その中身をメモ帳やWordPadなどのテキスト編集ソフトに貼り付けて、拡張子をascとして保存すれば、そのファイルをLTspiceで読み込むことができます。

こちらの回路図ファイルの中身を末尾に添付します。この全文をコピーした後、テキスト編集ソフトのテキストウィンドウに貼り付けて、RedLED.ascなどというというファイル名で、テキスト形式でデスクトップなどに保存し、そのファイルをWクリックすれば、LTspiceが起動して回路図が出てきます。その回路図でシミュレーションしてみてください。27通りのパラメータの組み合わせをシミュレーションしているので開始してから5秒くらい待たないとシミュレーションが終了しません。

ここから↓
Version 4
SHEET 1 1488 1004
WIRE -192 -608 -320 -608
WIRE 160 -608 -192 -608
WIRE 288 -608 160 -608
WIRE 432 -608 288 -608
WIRE -320 -544 -320 -608
WIRE -192 -544 -192 -608
WIRE 160 -544 160 -608
WIRE 288 -544 288 -608
WIRE -192 -432 -192 -464
WIRE 160 -432 160 -480
WIRE 432 -416 432 -608
WIRE -528 -384 -560 -384
WIRE -464 -384 -528 -384
WIRE -320 -384 -320 -464
WIRE -320 -384 -384 -384
WIRE -256 -384 -320 -384
WIRE 288 -384 288 -464
WIRE 288 -384 224 -384
WIRE -192 -304 -192 -336
WIRE -16 -304 -192 -304
WIRE 160 -304 160 -336
WIRE 160 -304 -16 -304
WIRE 288 -304 288 -384
WIRE -528 -288 -528 -384
WIRE -16 -256 -16 -304
WIRE -528 -128 -528 -208
WIRE -16 -128 -16 -176
WIRE -16 -128 -528 -128
WIRE 288 -128 288 -224
WIRE 288 -128 -16 -128
WIRE 432 -128 432 -336
WIRE 432 -128 288 -128
WIRE 432 -80 432 -128
FLAG 432 -80 0
FLAG -560 -384 in
IOPIN -560 -384 In
SYMBOL npn -256 -432 R0
WINDOW 0 70 14 Left 2
WINDOW 3 75 66 Left 2
SYMATTR InstName Q1
SYMATTR Value 2SC1815
SYMBOL Misc\\battery 432 -432 R0
WINDOW 0 49 37 Left 2
WINDOW 3 48 86 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V2
SYMATTR Value 5V
SYMBOL voltage -528 -304 R0
WINDOW 3 -126 218 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR Value PULSE(0 2 0 1n 1n 50n 100n)
SYMATTR InstName V1
SYMBOL res -368 -400 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R1
SYMATTR Value 220
SYMBOL res -208 -560 R0
WINDOW 0 41 28 Left 2
SYMATTR InstName R2
SYMATTR Value 43
SYMBOL res -32 -160 M180
WINDOW 0 40 85 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R3
SYMATTR Value 43
SYMBOL res -336 -448 M180
WINDOW 0 40 85 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R4
SYMATTR Value 1k
SYMBOL npn 224 -432 M0
WINDOW 0 70 14 Left 2
WINDOW 3 75 66 Left 2
SYMATTR InstName Q2
SYMATTR Value 2SC1815
SYMBOL res 272 -448 M180
WINDOW 0 40 85 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R6
SYMATTR Value 1k
SYMBOL res 272 -208 M180
WINDOW 0 40 85 Left 2
WINDOW 3 36 40 Left 2
SYMATTR InstName R7
SYMATTR Value 510
SYMBOL LED 176 -544 M0
WINDOW 0 142 15 Left 2
WINDOW 3 94 64 Left 2
SYMATTR InstName D1
SYMATTR Value RedLED
SYMATTR Description Diode
SYMATTR Type diode
TEXT -664 -16 Left 2 !.model RedLED D(Is={IF/(exp((VF-Rs*IF)*25.8)-1)} Rs={Rs} N=1.5 type=LED)
TEXT -664 48 Left 2 !.param Rs=10 VF=2V IF=20mA
TEXT -664 112 Left 2 !.step param VF list 1.8 2 2.2
TEXT -664 176 Left 2 !.step param Rs list 5 10 15
TEXT -664 304 Left 2 !;dc V1 0 2
TEXT -664 240 Left 2 !.step temp list 0 25 50
TEXT -192 296 Left 2 !.tran 200n
ここまで↑

daruma(2017/08/28 Mon 21:22) [ 編集 ] [ 返信 ]

IN-9応答時間測定器2

JPG 1024x768 185.9kb

このスレッドは『IN-9応答時間測定器』の続きです。

メイン基板の調整手順に沿ってチェックを行ないました。

http://mpga.jp/akizuki-fan/index.php?mode=image&file=3312.jpg
の(1)〜(8)はOKです。
(9)がだめです。
高電圧確認用LEDは、高輝度のものではなく赤と緑樹脂のVf:2V,If:10mAのものを使いました。300Ωを入れて10mA点灯です。
発光検出確認用LEDは、外へ引き出すことも考えてヘッダピン付けにしています。ここに上記と同じ赤LEDを付けましたが点灯しません。Vf:1.9V,If:20mAの透明樹脂赤を付けると、ぼっちりと小さく点灯するのが見えますが、回路電源を供給すると点灯し、IN-9の点灯消灯にかかわらず点きっぱなしです。VR3を動かしても点灯状態は変わりません。さっきの赤樹脂LEDもわずかに光っていたのが見えなかったのかもしれません。
基板上の10kΩをもっと小さくすれば明るく光るでしょうか。VR3で変化しないのは、回路に問題があるでしょうか。

(10)のパルスは出ていないようです。見られません。

実験していて、ついつい(11)を守らず安定化電源をOFFにしてしまいましたが、まずいでしょうか。120Vと12Vを同時に切ってはいけませんか。

inara1(2017/08/30 Wed 18:16) [ 編集 ] [ 返信 ]


Re: IN-9応答時間測定器2

>(9)がだめです
高輝度のLEDは手元にないですか。できれば高輝度LED(20mA流したときの光度が数カンデラあるもの)をつけてください。高輝度でないLEDの場合、LEDと直列に入っている抵抗が10kΩだと暗くて発光が分からないかもしれません。かといって、10kΩを330Ωに変えると、LEDの発光強度は上がりますが、オペアンプ出力電圧が下がり切らない可能性があります。

>ついつい(11)を守らず安定化電源をOFFにしてしまいましたが、まずいでしょうか。120Vと12Vを同時に切ってはいけませんか。
大丈夫だと思います。12Vが切れると、120Vにつながっているフォトカプラ(TLP222G)が先にOFFになるので、IN-9に過大電流が流れることはありません。

120V電源の主電源は12Vなので、主電源だけをOFFにしたとき、120V側はそれより遅れてOFFになります(120V出力には電解コンデンサがついているのですぐに電圧が下がらない)。

主電源をOFFにしても、120V電源は10秒くらい生きている(高圧が残っている)ので、先に120V側を切ったほうがより安全と考えただけです。でも120V回路にはしばらく電圧が残っているので、120V回路には触らないようにしてください。

daruma(2017/08/31 Thu 12:06) [ 編集 ] [ 返信 ]


Re^2: IN-9応答時間測定器2

高輝度LEDもありますので、発光検出確認用はそちらに替えてみます。

そのまえに、回路図と基板配線図をながめてみました。
・NJM431からVR3に行くところが、回路図では直結ですが配線図では100kΩが入っているのではないでしょうか。
・LM358の5pinとVR2との間に入る抵抗が回路図では1kΩですが配線図では10kΩになっています。

この2点、いかがでしょうか。

電源OFFの件、安心しました。

inara1(2017/08/31 Thu 17:35) [ 編集 ] [ 返信 ]


Re^3: IN-9応答時間測定器2

回路図と配線図に違いがありましたか。後で探しにいかなくていいように、両方の図面を貼っておきます。
メイン基板回路図
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3309.jpg
メイン基板配線図
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3280.jpg

(1) NJM431からVR3に行くところが、回路図では直結ですが配線図では100kΩが入っているのではないでしょうか
実物の基板で確認したところ配線図が正しいです。

(2) LM358の5pinとVR2との間に入る抵抗が回路図では1kΩですが配線図では10kΩになっています。
実物の基板で確認したところこれも配線図が正しいです。失礼しました。

こちらでは今日から秋になりました。今日の最高気温は25℃です。

daruma(2017/09/01 Fri 14:46) [ 編集 ] [ 返信 ]


Re^4: IN-9応答時間測定器2

JPG 1024x768 177.4kb

配線図どおりにということ了解です。

改めて配線面をチェックして、ハンダもれを一か所見つけました。リードを穴に入れた後そこに他の線が来てからハンダ付けしようと思ってそのままになっていました。

発光検出確認LEDを高輝度青に替えました。
結果。VR3を左いっぱい少し手前から左でLEDが点灯します。IN-9の発光消灯にかかわらず、VR3しだいで点灯消灯します。点灯一歩手前に調整し開始スイッチを押しIN-9が発光してもLEDは光りません。

パルスを観察しました。前回とは違って、開始ボタンを押すと上がります。が、パルスではなく上がったままです。電源を切った後再度通電すると0Vですが、開始ボタンを押すと上がってそのまま下がりません。

一歩前進とは思いますが・・・。

> こちらでは今日から秋になりました。今日の最高気温は25℃です。

関東が涼しくなったとテレビで見ました。でもまた暑いんでしょうね。
北海道は、年によってはこの時期も暑さが続くこともあるのですが、今年は8月下旬になったとたん秋風になって、日中晴れていても汗が流れるほどではありません。夜の屋外では1枚羽織りたくなります。
明日はまた無線のお泊り会で、外で焼き肉が寒いのではと心配です。

daruma(2017/09/01 Fri 16:09) [ 編集 ] [ 返信 ]


Re^5: IN-9応答時間測定器2

JPG 1004x709 382.7kb

以前やったタイミング発生部の動作確認
http://mpga.jp/akizuki-fan/index.php?mode=article&id=3302&page=1
をもう一度してみました。
上(黄)が前図A点、下がB点です。
先日は合格だったのですが、今日はパルス幅がとても長いです。
M:2sでこうです。

先日の実験時も回路は完成していて、LM358と74HC02を実装せずIN-9も繋いでいない状態でした。

daruma(2017/09/01 Fri 16:22) [ 編集 ] [ 返信 ]


Re^6: IN-9応答時間測定器2

JPG 1004x709 383.0kb

A点(黄)とパルス幅カウンタ入力(赤)を並べてみました。
A点は超長いなりに5Vに復帰していますが、カウンタ入力の方は上がったきりですし、ずいぶん高いです。

inara1(2017/09/01 Fri 17:43) [ 編集 ] [ 返信 ]


Re^7: IN-9応答時間測定器2

IN-9がフルスケールまで光ったとき発光検出確認LED(高輝度青)が光って、IN-9が消えたときLEDは消えていますか?そのようになるようにVR3を調整してください。

daruma(2017/09/01 Fri 18:52) [ 編集 ] [ 返信 ]


Re^8: IN-9応答時間測定器2

IN-9の光っている光っていないに関係なく、VR3が左いっぱいから1/10くらいの間にあると点灯し、それより右に回すと消灯します。これは回路に通電したときからずっとで、開始ボタンを押す前後でもかわりません。

> IN-9がフルスケールまで光ったとき発光検出確認LED(高輝度青)が光って、IN-9が消えたときLEDは消えて
いる状態がつくれないんです。

オシロで観察しながらVR3を変えると、LEDが点くか点かないかの境目で不安定になり、ちょっとした加減で短いパルスとなってLEDも点いたり消えたりすることがありますがこれはとても微妙で、VR3をさらに左へ回しLEDが点きっぱなしにすると、波形は全然上がらなくなります。

120Vを供給しないでやってみましたが、状況は同じです。

A点B点のパルス(こんなに長くてもパルスというのかな)が超長くなったのは理解しました。回路の全体が動作するようになったので、VR1で調整するON時間が現れているのですね。VR1を変化させて長さが変わるのを確認しました。

daruma(2017/09/02 Sat 08:50) [ 編集 ] [ 返信 ]


Re^9: IN-9応答時間測定器2

JPG 1004x709 378.3kb

お恥ずかしいミスでした。センサの+−を間違えていました。情けない。
(9)LEDの点灯消灯OKです。
(10)このように、短いパルスが出ます。発光が遅れるとパルスが長くなります。開始してからIN-9が発光するまでの間ハイになるのですね。
電圧が高いのはこれでいいのでしょうか。

inara1(2017/09/02 Sat 11:25) [ 編集 ] [ 返信 ]


Re^10: IN-9応答時間測定器2

赤の波形がパルス幅測定回路に行く信号ですね。電圧は0-5Vで正常です。そのパルス幅がIN-9の応答時間(IN-9に電流を流してからフルスケールになるまでの時間)です。0.1秒くらいでしょうか。これくらい速くないとオーディオレベルメータには使えないですね。

黄色はどこの信号でしょうか。数秒の幅があるので、IN-9に電流を流している時間になりますが、最大電圧が1Vの信号というのはどこになるのでしょうか。

赤色の波形を見る限り正常動作していると思います。パルス幅測定回路につないで全体で動作させてみて、応答時間がちゃんと測定できるか確認してみてください。

daruma(2017/09/02 Sat 14:09) [ 編集 ] [ 返信 ]


Re^11: IN-9応答時間測定器2

合宿場に来ています。

黄色は
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3302.jpg
のA点です。
こちらも5Vないといけないのですか。

オシロまでは持ってこられないので実験の続きはできないと思って制作物は持ってきていません。パルス幅測定回路につないでの実験はお預けです。
ロータリースイッチも調達しなければなりません。ALPSの4ポジションのは持っているのですが、3ポジションに変更できないので、秋月のを買おうと思います。

この合宿では、LED Cubeの配線図描きにいそしもうと思います。

inara1(2017/09/02 Sat 14:24) [ 編集 ] [ 返信 ]


Re^12: IN-9応答時間測定器2

>こちらも5Vないといけないのですか
その配線図通りに実装した状態なら最大5Vの波形になっているはずですが、A点の先にフォトカプラがある「フル実装」の状態で測定したのなら1Vで問題ないです。その電圧はフォトカプラの1次側のLED(赤外)の動作電圧になります。赤外LEDは可視LEDと違って動作電圧が低いです。

>パルス幅測定回路につないでの実験はお預けです
楽しみ(苦しみ?)は残しておきましょう。

>秋月のを買おうと思います
ロータリースイッチは結構高価なのですが、秋月のは格安です(種類は少ないですが)。

>この合宿では、LED Cubeの配線図描きにいそしもうと思います
そういうことができるのですか。どういう合宿なのでしょうか。

daruma(2017/09/02 Sat 15:18) [ 編集 ] [ 返信 ]


Re^13: IN-9応答時間測定器2

フル実装ですからこれでいいんですね。安心しました。
次のステージは来週です。「大局的には」順調です。

秋月のロータリースイッチはシャフトがプラスチックでしょうか。ややチープな感じがしますが手軽ですね。

合宿は交信コンテスト(今回はアジア圏の大会です)に移動局として参加するのが主たる目的ですが、アンテナを設営したあとは、マイクを握る人モールスをたたく人古い無線機を修理する人、外で炭火をおこす人とさまざまです。私は今回はノートパソコンに向かってパワーポイントで配線図描きです。WiFiルーターのアンテナ表示がかろうじて1本立ってるロケーションです。

daruma(2017/09/04 Mon 17:21) [ 編集 ] [ 返信 ]


Re^14: IN-9応答時間測定器2

パルス幅測定基板とつないでみましたが、どうもいけません。

感度調整が微妙というかデリケートというか、安定しません。
LEDは、5V1mAで十分視認できる程度に光るものを付けています。
メイン基板でちょうどよく点灯/消灯するようVRを調整しても、測定基盤と繋ぐと点灯しなくなったりします。VRを回すか回さないかのごくわずかな加減で調整点が変わります。

IN-9がなかなか光り出さないことが多くなり、別のIN-9と替えてみると、半分強までしか光らないもの続出です。IN-9に行く線には120Vがちゃんと出ています。電流量が不足なのでしょうか。
安定化電源の総電流で見ると、メイン基板のみでは消灯時27mA発光時238mA流れます。両基板を接続すると、消灯時72mA発光時283mA流れました。
IN-9自体を単体で発光させると先頭まで光りますから、IN-9自体の問題ではないようです。

カウンターはどの時点で表示されるのでしょう。
開始ボタンを押すと赤LEDになりますが、IN-9が光り出さないまま時間が経つと緑に戻り、カウンターは"0"のままです。IN-9が発光すると数字が出ますが、すぐに出るときと緑ランプになった時点で出るときがあります。
カウンターはいつリセットされますか。
数字表示がそのまま残って、あらためて開始ボタンを押すと"0"になるときとそのまま残るときがあります。

ロータリースイッチが無いので、ピン間をクリップでつないで実験しています。オシレータのそばの4ピンと下中央の4ピンとではスイッチに対応する並びが違うんですね。途中で気がつきました。

ロータリースイッチ3路め時間単位LEDの切替は配線図に無いですよね。どこかから5VとGNDを取ってくればいいんですね。

inara1(2017/09/04 Mon 18:35) [ 編集 ] [ 返信 ]


Re^15: IN-9応答時間測定器2

電源の電流容量不足でしょうか。

> カウンターはいつリセットされますか。
パルス幅測定回路基板のInputの信号が5Vから0Vに下がるときに時間表示が更新されます。

>ロータリースイッチ3路め時間単位LEDの切替は配線図に無いですよね。どこかから5VとGNDを取ってくればいいんですね。
その部分は時間の単位表示のLEDを表示させるところなので、当面はなくてもいいです。LEDを付けるのなら、5VとGNDは適当なところから取ってください。ロータリースイッチは、動作確認が終了してからつないでもいいです。それまでは、適当なビニール線で短絡して測定してもかまいません。

daruma(2017/09/05 Tue 16:50) [ 編集 ] [ 返信 ]


Re^16: IN-9応答時間測定器2

120V電源自体は、IN-9 2本を光らせることができるのだから力不足ではありませんよね。
PLP222GFを通ることで電流が制限されてしまうのでしょうか。

私の回路ではTLP222AFを使うことになったところがinara1さんの元々の回路ではPLP222GFなんですよね。この違いはどうでしょう。以前TWEで一連の無線リモコン類を作っていたときに、222Gと222AはON抵抗が違うと書かれていたことを思い出しました。その影響はないものですか。

なにかパーツがいたんでしまった可能性はどうでしょう。VR3がちょっとさわるとLEDが不安定になることが気になります。VRが不良とか・・。

> パルス幅測定回路基板のInputの信号が5Vから0Vに下がるときに時間表示が更新されます。
ということは、電源ON後は00表示ですが、いったん測定を行ってなにかしら数字が表示された後はそのままの表示で、緑ランプに戻った時点で00表示になるのでしょうか。それとも、次の観測で新しい測定値に変わるのでしょうか。どうも、IN-9が発光しないことが多く数字が出たり出なかったりでこのあたりがつかめずにいます。

秋月にロータリースイッチを発注したのですが、TLP222Gも入れておけばよかったと後で気がつきました。222Gに替えてみる価値大いに有りでしたら、調達します。

daruma(2017/09/05 Tue 18:04) [ 編集 ] [ 返信 ]


Re^17: IN-9応答時間測定器2

派遣娘が土曜に来るのでTLP222GF発注しました。

inara1(2017/09/05 Tue 18:29) [ 編集 ] [ 返信 ]


Re^18: IN-9応答時間測定器2

TLP222AとTLP222Gを使い分けているのは耐圧が違うからです。
Aの耐圧は60Vです
http://akizukidenshi.com/catalog/g/gI-07330/
が、Gは耐圧が350Vあります。
http://akizukidenshi.com/catalog/g/gI-07331/

IN-9周辺のフォトカプラ(2個)の右側には120Vがかかることがあるので、その部分には耐圧の高いTLP222Gを使っています。TLP222GのON抵抗(フォトカプラがONになったときの右側の端子間抵抗)は最大50Ωとやや大きいのですが、そこにIN-9の駆動電流の10mA流れたとしても、0.01A×50Ω=0.5Vの電圧ロスにしかなりません。IN-9にかかる電圧は100V以上あるので0.5V低下しても全く問題はないはずです。

こちらでは120Vかけた実験はしていないので絶対大丈夫とは言えませんが、darumaさんのほうで、実際にIN-9にかかってる電圧(+側と−側の2か所)を測定してみてはどうでしょうか。2つのプローブのGNDリードを回路GND(0V)に接続し、ch1の先端をIN-9の+側、ch2の先端をIN-9のー側につないで、測定開始スイッチを押してから電圧がどのように変わるか見てみてください(感電に注意してください)。ch1の電圧とch2の電圧の差がIN-9にかかる電圧です。

パルス幅測定回路の表示は、Input端子の電圧が0V→5V→0Vという変化にならないと更新されません。測定開始スイッチを押して、IN-9に電流を流すという指令信号が入るとInput端子の電圧が0V→5Vに変化しますが、IN-9がフルスケールまで発光しないと0Vに戻らないので、表示は更新されません。

daruma(2017/09/06 Wed 04:09) [ 編集 ] [ 返信 ]


Re^19: IN-9応答時間測定器2

JPG 1004x709 380.1kb

> 2つのプローブのGNDリードを回路GND(0V)に接続し、ch1の先端をIN-9の+側、ch2の先端をIN-9のー側につないで、測定開始スイッチを押してから電圧がどのように変わるか

やってみました。赤が+側、黄が−側です。
黄の遅れているぶんが応答時間ですね。マイナス側の変化はこれでいいのでしょうか。+−間の開きが120Vだからこれでいいのですか。

カウンター表示は「051.246」とか(掲出画面とは別の試行回ですが)出ます。ロータリースイッチへのピンは2箇所とも両端をつないでいます。
再度実行すると、発光しなかった場合は表示そのまま、発光した場合は新たな表示になります。

inara1(2017/09/07 Thu 04:14) [ 編集 ] [ 返信 ]


Re^20: IN-9応答時間測定器2

>黄の遅れているぶんが応答時間ですね。マイナス側の変化はこれでいい
+側が125V、−側が20Vくらいなので、IN-9には発光時に105Vくらいかかっているようです。105Vは正常電圧の範囲だと思います。

黄色が遅れて立ち上がっているのは、IN-9に125Vかけてから電流が流れる(発光する)までに0.7秒くらいかかっていることを表わしています。0.7秒というのはかなり遅いですが、これはわざと遅いIN-9の例でしょうか。

他に波形を見て気づいたのは、2回目の発光のほうが遅れが大きいことです。1回目の発光でIN-9が温まったために2回目の発光が1回目より遅れたのかもしれません。

>カウンター表示は「051.246」とか(掲出画面とは別の試行回ですが)
その設定ではフルスケールが999.999msなので、発光遅れが51msということですね。その数値は上の波形のものより小さいですが、これは正常動作品でしょうか。50msくらいが標準的な遅れかどうか分かりませんが、妥当な値のように思えます。何度か「測定開始スイッチ」を押してみて、似た数値が出るのならちゃんと測定できていると思います。今は測定時間は5秒くらいになっていますが、長すぎるときはVR1を調整して、1〜2秒くらいにすれば効率よく測定できます。

>再度実行すると、発光しなかった場合は表示そのまま、発光した場合は新たな表示になる
途中で発光しないIN-9があった場合に、このような表示になると不便でしょうか。測定終了後(VR1で設定した時間になると)に表示を0に戻すこともできますが、そうすると、正常動作品を測定した後、すばやく表示を記録しないと表示が消えてしまうことになるので、測定が終わっても表示が残るようにしました。測定後、次のIN-9を測定する前に表示を0に戻すために、別途「リセットボタン」でも付けたほうがいいでしょうか。

daruma(2017/09/07 Thu 04:58) [ 編集 ] [ 返信 ]


Re^21: IN-9応答時間測定器2

正常に動作していると考えてよさそうですね。
手元にあるIN-9は個体差も試行回でのばらつきもけっこうあるように思います。温度計とサウンドメーターに応答遅れのないものを選択して使ったので、そうでないものが残ったのでしょう。
添付図では2回目のほうが遅れが大きいですが、これはたまたまそうだったようです。

> 1回目の発光でIN-9が温まったために2回目の発光が1回目より遅れたのかも

感覚的には、「温まったから次は早い」のほうが納得できるのですが。

測定終了後の表示については、現仕様で差し支えありません。実験していて、どうなるのが正常なのかよくわからなかったのですが、安定動作してみると不都合有りません。

半分しか光らない症状は出なくなりましたから、クリップで繋いで実験しているあやうさだったのかもしれません。これからケースに収めてきちんと接続する作業に入ります。

daruma(2017/09/16 Sat 16:29) [ 編集 ] [ 返信 ]


Re^22: IN-9応答時間測定器2

JPG 1024x768 175.0kb

やっとできあがりました。
文字入れをして剥げないようにスプレー塗装したのですが、溶剤臭くなるので家人の留守をねらってしなければなりません。それで日があいてしまいました。

これまで、黒いパネルに白文字を入れることはよくあったのですが、この手のアルミケースはそのまま使っていました。きれいなヘアライン加工の表面を大事にしていたわけですが、今回はスイッチや端子がたくさんあるので文字入れ無しってわけにもいかず、ホームセンターでさがすと「非鉄金属用下地スプレー」があったので使ってみました。その上にラッカースプレー、いずれも透明です。剥げなければいいのですが。

このロータリースイッチは軸径が特殊なんですね。一般的な6mmφのツマミが使えず付属のものにしました。だから、ツマミ付属だしこのツマミ自体も売っているのですね。

daruma(2017/09/16 Sat 16:34) [ 編集 ] [ 返信 ]


Re^23: IN-9応答時間測定器2

JPG 1024x768 184.8kb

中はこんなです。回路基板は2階建てです。

完成させるのに疲れて、これを使って実際にIN-9を検査するのはこれからです。

※ さてケーブル作りをと思ったら、120V取り出しのプラグを買い忘れていました。3連休!!! お預けです。

inara1(2017/09/17 Sun 05:44) [ 編集 ] [ 返信 ]


Re^24: IN-9応答時間測定器2

売り物でないのにずいぶんきれいに作りましたね。
レンジ切替えスイッチの「つまみ」だけが安っぽいですが、秋月の格安ロータリースイッチのシャフト径は普通の可変抵抗のよりやや大きいので、他の「つまみ」が挿さらないのが難点です。「つまみ」付で売っているのはそのせいでしょう。

ケース加工ではリーマを使えば穴径を自由に変えられますが、丸棒の径を削る簡単な工具というのはないのでしょうか。やすりだと円形のまま削るのは難しいです。

daruma(2017/09/17 Sun 09:40) [ 編集 ] [ 返信 ]


Re^25: IN-9応答時間測定器2

ツマミの安っぽさは残念です。軸がプラスチックなので、VRと違って左右に1段ずつ振るだけでから多少の偏芯は気にならないでしょうし、サンドペーパーで痩せさせようかとも思ったんですが、そこまでは凝らないことにしました。売り物じゃありませんし。

daruma(2017/09/19 Tue 17:02) [ 編集 ] [ 返信 ]


Re^26: IN-9応答時間測定器2

赤黒のプラグを買ってきたのでクリップケーブルを作り、測定しようとしましたが、どうもいけません。
センサー感度調整半固定VRが定まらないのです。
IN-9発光時LED点灯/非発光時LED消灯になるよう、先日の裸の状態でいったんは調整が付いたのですが、ケースに収めた状態で試すとこれがだめ。再度基板を出して調整するも、発光消灯がうまく行くポイントが出せません。
半固定VRが左いっぱいから一目盛あたりを境にLEDは常時点灯/常時消灯になり、境目ぎりぎりではLEDが暗く点灯する状態もチラチラと出ます。このあたりで、消灯させておいて発光しても点灯しない、点灯させておくとIN-9の発光非発光にかかわらず点灯したままです。

この微妙さはなにによるのでしょう。改善策はないでしょうか。
・LEDが適切でない。もっと高輝度のものに取り替える。
・半固定抵抗が不良。交換してみる。
・半固定抵抗の境界付近レンジが狭い。固定抵抗とVRの抵抗値を変えて発光/消灯の境界あたりを広い角度で変化させられるようにする。
など考えるのですが、どうでしょう。
あるいはどこか回路が正常に動いていないのでしょうか。

inara1(2017/09/20 Wed 04:31) [ 編集 ] [ 返信 ]


Re^27: IN-9応答時間測定器2

発光確認用のLEDは、光センサの電圧と設定電圧を比較して、光センサ電圧>設定電圧なら光るようになっているので、どちらかの電圧が不安定だとLEDがチラつきます。

添付図の2か所の電圧波形(ch1とch2として)オシロスコープで観測してみてください。オシロの水平軸は0.1sec/div〜1sec/divくらいとしてください。垂直感度は波形がなるべく大きく見えるようにしてください(画面からはみでない範囲で)。

どちらの電圧も安定していればチラつきはないはずです。光センサ側が不安定なら、遮光箱から光が漏れて光センサに当たっている可能性があります。設定電圧側(LM358の3pin)が不安定なら、光センサ感度調整VRからNJM431までの不具合かもしれません。

ハンダ不良なら、そのあたりの部品をドライバーの先でコンコンたたくと波形が変わるかもしれません。

光センサの極性は間違ってませんね(以前やらかしましたが)。

daruma(2017/09/20 Wed 15:48) [ 編集 ] [ 返信 ]


Re^28: IN-9応答時間測定器2

JPG 1024x768 143.3kb

> 遮光箱から光が漏れて光センサに当たっている可能性があります。

これに思い当りました。遮光をそれほど厳密には考えていなかったのです。
メガネケースはまったく不透明ではなく濃いスモークで、薄手の黒いスポンジシートを内貼りしましたが、中でIN-9が発光すると透けて見える程度でした。NJL7502Lには熱収縮チューブを被せて頂部からだけ光が入るようにして、先端がケース内貼りの穴から覗いています。
黒いビニールテープを外側全面に貼って遮光性を高めたところ、発光によりLEDがキッパリ点灯消灯するようになりました。その境界がシビアなのにかわりはないので、半固定VRを多回転のものに取り替えました。
これで、センサー感度の調整は安定して決められるようになりました。
発光していることを視認できるように、センサーから遠い足もと位置に7mm角程度ビニールテープをはがした小窓を設けましたが、遮光に影響は無いようです。

この状態で実験すると、今までのように反応したりしなかったりではなく、スタートすると発光遅れが短い場合はすぐに値が表示され、なかなか発光しない場合はカウンターがいかにも計測中という感じでパラパラチラチラと目にもとまらぬ速さで動き、設定した時間になって赤ランプが緑に変わった時点で値が止まって表示されます。これが正しい動きですか。それともカウンターがパラパラするのは異常なのでしょうか。

> 添付図の2か所の電圧波形
もしや添付忘れでしょうか。以前の図にあった箇所ということでしょうか。

inara1(2017/09/20 Wed 18:52) [ 編集 ] [ 返信 ]


Re^29: IN-9応答時間測定器2

JPG 1280x720 232.9kb

> > 添付図の2か所の電圧波形
> もしや添付忘れでしょうか
貼るのを忘れていました。

daruma(2017/09/20 Wed 20:42) [ 編集 ] [ 返信 ]


Re^30: IN-9応答時間測定器2

JPG 1004x709 376.9kb

両ポイントとも0Vでフラットのままです。スタートボタンを押す前も押しても変化はありません。
基板上がせまくてプローブを直接付けられないので、クリップで取り出してプローブに繋いでいます。プローブのGNDはカウンター入力のGNDピンから取っています。

カウンタやIN-9はそれなりに反応しています。

inara1(2017/09/21 Thu 04:46) [ 編集 ] [ 返信 ]


Re^31: IN-9応答時間測定器2

> 両ポイントとも0Vでフラットのまま
というのはおかしいです。縦軸をもっと拡大してください(0.1V/divなど)。

0Vなのに右下のCH1 WaveForm InfoのPK-PK(振幅)が1.12Vとなっているのはなぜでしょうか。オシロの入力のカップリングがACになっていませんか?

daruma(2017/09/21 Thu 17:18) [ 編集 ] [ 返信 ]


Re^32: IN-9応答時間測定器2

JPG 1004x709 433.2kb

カップリングはDCです。
縦軸を100mVにすると、こんな汚い波形です。赤のCH1(センサーの(−)ポイント)の振れが右半分で大きくなっているときがスタートを押して発光中です。

回路電源を切っても波形は同じようなままなのに気がつきました。もしやプローブがちゃんと繋がってない? 取り外すとペタッと赤く(黄色く)なりますから、繋がってないわけではないようです。もしやLM358が動いていない? 8pinに電源は来ています。

daruma(2017/09/23 Sat 08:52) [ 編集 ] [ 返信 ]


Re^33: IN-9応答時間測定器2

JPG 1004x709 413.8kb

クリップでLM358の足をくわえるのがやりにくくて不確かかもと、ビニル線をハンダ付けしてとりだしました。

センサーの感度が低いというか、IN-9があまり明るくないということではないでしょうか。

遮光ケースを開けてセンサー部を指でふさいでおいて、指をはなすとこのようになります。机上のいつもの明るさでセンサーは上を向いた状態です。
これぐらいはっきりと変化が現れればいいのですよね。
CH1(赤)はセンサーの(-)側を1V/DIVで見ています。CH2(黄)はLM358の3pinを100mV/DIVで見ています。

motomuraさん、お久しぶりです。レジンをやっておられたのですか。
私も興味があって、今回のLED Cubeをレジンでと考えたりもしたのですが、レジンのことはmotomuraさんに教えていただけると心強いです。

inara1(2017/09/23 Sat 09:52) [ 編集 ] [ 返信 ]


Re^34: IN-9応答時間測定器2

JPG 1280x720 271.7kb

光センサ部分はちゃんと動いているようですが、LM358の3pin電圧がほぼ0というのはおかしいです。

添付図の@とAとBをチェックしてみてください。この経路のどこかで断線している可能性があります。

daruma(2017/09/23 Sat 10:33) [ 編集 ] [ 返信 ]


Re^35: IN-9応答時間測定器2

メイン基板のみで12Vを供給してやってみました。センサーは繋いでも繋がなくても変わりは有りませんでした。

@ 0〜1.259Vに変化 2.3mV以下でLED点灯、以上で消灯。
A 1.258V
B 2.47V
でした。

IN-9やパルス幅測定回路を繋いだ状態でも調べたほうがいいですか?

VRで3pin電圧を上げていくとオシロに出る波形も上がっていきますが、センサーに光を当てたときふさいだときの変化は見られません。

inara1(2017/09/23 Sat 10:59) [ 編集 ] [ 返信 ]


Re^36: IN-9応答時間測定器2

3pin周辺の電圧は正常のようですね。2017/09/20 Wed 20:42の投稿の添付波形がほとんど0なのは、VRを調整した結果、LM358の3pin電圧が2mVくらいになっていたからのようです。

LM358の3pin電圧が低すぎるとちゃんと動作しないので、光センサの感度をupしたほうが良さそうです。光センサの−側とGNDとの間に入っている100kΩの抵抗を470kΩに変えてみてください。

ケースに入れる前は正常動作していたのに、なぜ今になって動作がおかしいのでしょうか。そこが納得いきません。

daruma(2017/09/23 Sat 12:12) [ 編集 ] [ 返信 ]


Re^37: IN-9応答時間測定器2

470kΩに替えました。LED点灯消灯の境界は8.7mVに上がりましたが、3pin電圧は発光しても変化しません。

すみません。今日は「ハムフェアHokkaido」という催しがあって、これから出かけます。続きは明日やってみます。

daruma(2017/09/23 Sat 12:41) [ 編集 ] [ 返信 ]


Re^38: IN-9応答時間測定器2

電車のなかです。もしやこっちの電圧は一定でいいんですか?

inara1(2017/09/23 Sat 16:02) [ 編集 ] [ 返信 ]


Re^39: IN-9応答時間測定器2

>もしやこっちの電圧は一定でいいんですか?
LM358の3pin電圧は光量の比較用の電圧なので一定です。スタートスイッチを押しても3pin電圧は変わりません。

光量が増えるとLM358の2pin電圧は大きくなり、2pin電圧が3pin電圧を超えると、7pin電圧が4Vから0Vに下がり、発光確認用のLEDが光り、パルス幅測定が終わりになります。

IN-9と光センサの位置がずれていませんか。光センサの真正面(ドームの頂上)から光が入らないと感度が悪くなります。

daruma(2017/09/23 Sat 19:17) [ 編集 ] [ 返信 ]


Re^40: IN-9応答時間測定器2

呑んで帰りの電車です。
やっぱりそうですか。これに対する電圧差なんですね。
センサと発光部の位置関係、明日調整してみます。今晩は帰ったらバタンです。

inara1(2017/09/23 Sat 19:51) [ 編集 ] [ 返信 ]


Re^41: IN-9応答時間測定器2

> 呑んで帰りの電車です
ハムフェアHokkaidoは飲み会ですか。

>帰ったらバタンです
明日、正気に戻ってください。

daruma(2017/09/24 Sun 15:01) [ 編集 ] [ 返信 ]


Re^42: IN-9応答時間測定器2

JPG 1024x768 121.1kb

ハムフェアはメーカーやクラブの出展ブースが並ぶ健全なフェア(小規模ですが)で、それを覗いた後いつものお泊り会メンバーで居酒屋に転じたというわけです。

遮光箱2号を作りました。硬質ウレタンでカラーを作り、側面からセンサーを取り付けてあります。IN-9に対するセンサーの位置と向きはこれを装着するときに決まります。ボール紙の筒に差し込んで蓋(これも硬質ウレタン)をはめます。発光しないことがあるので、発光視認用に4mmφの穴を開けました。
筒がもう少し長ければクリップを伸ばしたまま入れられるのですが、こんなふうに逆さ向きにして押し込みます。

daruma(2017/09/24 Sun 15:10) [ 編集 ] [ 返信 ]


Re^43: IN-9応答時間測定器2

JPG 1004x709 450.3kb

実験してみました。

IN-9電流調整のVRは発光するぎりぎりに調整してあったのですが、さらに右に回すといくらか明るさが増すようなのでそのように調整し直しました。
このようになります。部屋の照明を受けたときほど大きくはセンサー(-)が変化しませんが、これくらいに変化が現れます。

LM358の3pinが変動幅大きくなりますが、いかがなものでしょう。

> ケースに入れる前は正常動作していたのに、なぜ今になって動作がおかしいのでしょうか。そこが納得いきません。

数少ない試行で「お、こんどはいいみたい」とぬか喜びしてしまったのかもしれません。で、ケースに組んでじっくり試すとおかしい現象に出くわすと・・。

これからケースに入れますが、はたしてどうなることか。

inara1(2017/09/24 Sun 16:13) [ 編集 ] [ 返信 ]


Re^44: IN-9応答時間測定器2

黄色がの波形がLM358の3pinですか。3pin電圧は、センサに光が当たっても当たらなくても変わらないはずですが、2pinと3pinの波形がほぼ同じなのは、プローブのGNDに乗ったノイズが見えているのかもしれません。

プローブのGNDを、光センサの−側につながっている100kΩの反対側のGNDラインあたり(100kΩ抵抗のリード線でもいい)から取るとノイズが減りませんか。

daruma(2017/09/24 Sun 19:40) [ 編集 ] [ 返信 ]


Re^45: IN-9応答時間測定器2

JPG 1004x709 437.9kb

100kΩから変更した470kΩのGND側にしてみました。発光に影響されない「ノイズ乗りフラット」になりました。

daruma(2017/09/24 Sun 19:58) [ 編集 ] [ 返信 ]


Re^46: IN-9応答時間測定器2

ところでこのノイズ、PCとその液晶ディスプレイをOFFにすると半減とまでは行きませんが目に見えて低減することがわかりました。なんでもかんでも並べてる私の机はやはりノイズまみれなのですね。
オシロのまわりをアルミフォイルででも覆ってみて効果があるようなら、アルミ板で小屋掛けしようかと思いますが、どうでしょう。

daruma(2017/09/26 Tue 20:42) [ 編集 ] [ 返信 ]


Re^47: IN-9応答時間測定器2

JPG 804x548 282.4kb

測定してみました。
手元にあるIN-9はA〜Nの14本です。それぞれについて5試行ずつ行いました。ロータリースイッチはいちばん左の1mSecレンジです。

スタートを押すとLEDが緑から赤に変わり、この後IN-9が発光しても、VR1で設定した制限時間中7セグLEDがパラパラと動き続け、時間が来た時点でIN-9が消えLEDが赤から緑に変わり数値が表示されます。このような動きでいいでしょうか。
「スタートを押す→IN-9が発光した時点で計測が終了し表示が出る→制限時間がきたらIN-9が消灯する」という流れかと思っていたのですが。

遅れ時間は個体により試行によりばらつきます。これはそんなものなのでしょうね。

制限時間が来ても発光しないままのことがまれにあります。表で右欄外に"-"印を付けたものでそういうことがありました。不思議なのは、その場合でも似たような値が表示されるのです。レンジいっぱいのたとえば999.999とかではありません。

など首を傾げる部分もありますが、これにて一件落着と区切りをつけたい気持ちも正直あります。

daruma(2017/09/27 Wed 00:27) [ 編集 ] [ 返信 ]


Re^48: IN-9応答時間測定器2

ケースに収めると発光確認LEDもVR3も隠れてしまうので、ケースを開けて何度も実験してみると、VR3の調整が微妙で発光確認LEDがチラチラするときに7セグLEDがパラパラし、発光により発光確認LEDがはっきり点灯するときはすぐ数値を表示するようです。
基板が露出している状態でVR3をセットしても、ケースに入れてみるとこのVR3調整が微妙に変わるんですね。
遮光ケース2号で筒内は消灯時真っ暗ですから、発光しているかしていないかはセンサーが拾えているのですが、IN-9がさほど明るくないので明暗差が部屋の照明を受けたときのように大きく開かないのが原因かと。
変化幅はそのままでもセンサー(-)の100kΩを470Ωに替えて電圧範囲を高めにシフトして改善がみられましたから、470kΩをさらに大きくしたらさらに改善されないでしょうか。

inara1(2017/09/27 Wed 17:12) [ 編集 ] [ 返信 ]


Re^49: IN-9応答時間測定器2

JPG 720x718 76.9kb

測定結果を見ると、10msあたりの測定値だけが信頼できそうで、他は発光しない間にノイズを拾ってしまっているように思います。

ケースに入れる前と後で、光センサのケーブル長は変わってますか?ケーブルはシールド線を使ってますか。使っていないのならシールド線にして、光センサの−側を芯線側にしてください。光センサの電流を電圧に変換する抵抗(100kΩ→460kΩに変えた抵抗)の抵抗値が大きいので、ちゃんとシールドしないとノイズを拾いやすくなります。

ノイズの原因が基板内部にあるのなら、470kΩをさらに大きくすると、相対的に信号が大きくなるので効果はあるはずです。しかし、遮光が不十分なために、光センサの信号自身にノイズが乗っている場合は、抵抗を大きくしても、信号だけでなくノイズも大きくなってSN比(信号対雑音比)は改善されません。

どういうときに測定値がおかしくなるかを、LM358の2pinと3pinの電圧波形をオシロスコープで見れば原因がはっきりすると思います。オシロスコープのGNDリードの位置が悪いと、余計なノイズまで観測してしまうので注意する必要があります。

液晶モニタを消すとノイズが減るとのことですが、こちらでは、A4サイズのマット(方眼目盛りが印刷されたカッターナイフ用のマット)の裏面にアルミフォイルを貼って、オシロスコープのプローブ校正用のテスト端子のGND側と、そのアルミフォイルとを接続して、そのマットの上に回路基板を置いて波形を観測しています(添付図)。こうするとノイズが激減します。

マット上のノイズを見るには、プローブの先端とGNDリードをどこにもつながない状態にして、プローブをマットの上に置けばいいです。ノイズ対策をしていないと、50kHzくらいの壮大なノイズ(数Vppくらいある)が観測されますが、マットの裏面にアルミフォイルを貼ってノイズ対策したものでは、ノイズレベルは50mVppくらいにまで下がります。darumaさんもそのような対策をして観測してみてください。

アルミフォイルと、プローブ校正用のテスト端子のGND側との接続には「みのむしクリップ」を両端につないだビニール線を使っています。「みのむしクリップ」だと、作業台の掃除のときなど簡単に外せます。

daruma(2017/09/29 Fri 01:01) [ 編集 ] [ 返信 ]


Re^50: IN-9応答時間測定器2

JPG 1004x709 376.3kb

> ケースに入れる前と後で、光センサのケーブル長は変わってますか?

変わっていません。

> ケーブルはシールド線を使ってますか。

3.5mmミニプラグにシールド線25cmです。センサーのリード部分はそのまま2本平行です。

> 光センサの−側を芯線側にしてください。

芯線を+編線を−にしていました。チェンジしましたが変わりはないようです。

> 470kΩをさらに大きくすると、

470kΩに500kΩVRを足して変化を見ました。たしかにSN比は改善されません。むしろ汚くなった感じです。結局510kΩにしました。

カッターマットの裏にアルミシートを貼ってオシロの校正用GNDに繋ぎました。

> マット上のノイズを見るには、プローブの先端とGNDリードをどこにもつながない状態にして、プローブをマットの上に置けばいいです。

これははっきり効果が見られます。図で右半分がGNDに落としたときです。振れ幅が小さくなって細い線になっています。電圧レベルが下がっているのはなぜでしょう。

回路の実験をシールドしたマットの上でやってみましたが、特に改善は見られませんでした。CH1(センサーの(-))に上述の「電圧レベルが下がる」ようすが出ます。
むしろ、発光時にオシロに現れる変化が小さくなりました。いっぱい拾っていたノイズが減ったからでしょうか。

inara1(2017/09/29 Fri 17:48) [ 編集 ] [ 返信 ]


Re^51: IN-9応答時間測定器2

高電圧発生回路からのノイズを拾っているのかもしれません。

こちらでも最近、NJM2360を使って最大200Vの可変直流電源を作りましたが、周期的に大きな電源電流が流れ、安定化電源の電流リミットがかかる状態だったので、電源ラインの電解コンデンサの容量を470μFと大きくして電源電流が大きく変化しないようにしました。電源電流が瞬間的に大きく変化すると、基準となるGNDラインの電圧も変化してしまうので、mVオーダーの信号を扱う部分にノイズが乗りやすくなります。

darumaさんの高電圧発生回路基板の電源ラインに1000μF(25V耐圧)くらいのの電解コンデンサを入れてみて改善されるか試してください。

daruma(2017/09/30 Sat 11:41) [ 編集 ] [ 返信 ]


Re^52: IN-9応答時間測定器2

JPG 1004x709 455.9kb

電源基板の12Vが入ってくるところに、1000μFを追加しました。100μF入れていたところへの追加です。

目立った変化はありません。図で白線を描いた期間が発光しています。
昨日の手立て(マットのアルミ貼りつけGNDやシールド線の芯/編チェンジ)以来波形の変化が小さくなっているので、縦軸を50mV/DIVで見ています。

> どういうときに測定値がおかしくなるかを、LM358の2pinと3pinの電圧波形をオシロスコープで見れば原因がはっきりすると思います。

先日来見ているCH1(赤)が2pinから100kΩを介した点、CH2(黄)が3pinですが、2pin直接を見るほうがいいですか?

daruma(2017/09/30 Sat 15:45) [ 編集 ] [ 返信 ]


Re^53: IN-9応答時間測定器2

JPG 1004x709 419.1kb

センサー(-)からGNDへの抵抗をさらに大きく680kΩにしました。これでVR3での発光検出LEDの点灯/消灯調整の電圧がさらに上がりました。
発光時のCH1波形の変化が大きくなりましたが、ノイズのヒゲにセンサーが反応しているようで、数値表示がパラパラと変化します。ノイズの無い理想的な状態というのは、点灯中上がっている矩形波になるのですね。

発光検出LEDが、発光しても点灯しなかったり薄く点灯だったりなのですが、これが発光に対応してパッと点灯しなければならないんですよねえ。それがなりません。非発光時消灯のぎりぎりで調整しているんですが、点灯−薄暗くなって−消灯の勾配がゆるいのです。

daruma(2017/09/30 Sat 23:01) [ 編集 ] [ 返信 ]


Re^54: IN-9応答時間測定器2

JPG 1004x709 416.3kb

CH1(赤)を2pinにしました。CH2(黄)は3pinです。

daruma(2017/10/01 Sun 08:55) [ 編集 ] [ 返信 ]


Re^55: IN-9応答時間測定器2

JPG 1004x709 426.2kb

ひと晩おいて再実験してみると、こうです。
なにがあったのでしょう。
どこか接続不良があったんですね。これならばっちりですよね。
CH1(赤)は2pin直接ではなくセンサー(-)を見ています。

これからケース入れしてみます。

daruma(2017/10/01 Sun 09:31) [ 編集 ] [ 返信 ]


Re^56: IN-9応答時間測定器2

JPG 1004x709 402.7kb

ケースに入れました。底に穴を開けてプローブ用の線を引き出しておきました。

CH1(赤)は3pin、CH2(黄)は2pinです(LM358の)。縦軸はふたつが収まるように200mV/DIVで見ています。

inara1(2017/10/01 Sun 10:15) [ 編集 ] [ 返信 ]


Re^57: IN-9応答時間測定器2

JPG 1280x756 324.2kb

どうも動作が不安定ですね。

これまでの波形をまとめてみました。1番目と2番目の赤色の波形の違いは、光センサの−側の信号を100kΩ部分で見ているか、2pinで見ているかの違いです。2番目が接触不良っぽい感じなので、100kΩ→10kΩ→2pinの経路のどこかでハンダの接触不良の可能性があります。

3番目の波形で、3pin波形まで変化しているのはなぜでしょうか。3pin電圧は動かないはずです。

波形がかなりノイズっぽいですが、CH1とCH2で、同じ時間に現れる共通のヒゲが見られます。この原因が測定の方法あるのかどうか分かりません。このノイズで誤動作しれいるかを見るために、CH1を2pin、CH2を1pinとして波形の観測してみてください。1pin波形にノイズが乗っていれば実際の信号にもノイズが乗っていることになります。

daruma(2017/10/01 Sun 18:54) [ 編集 ] [ 返信 ]


Re^58: IN-9応答時間測定器2

> 3番目の波形で、3pin波形まで変化しているのはなぜでしょうか。3pin電圧は動かないはずです。

間違えました。上でCH1(赤)はセンサー(-)、CH2(黄)が2pinでした。10kΩを挟んで同じ2pinを見てました。引き出し線をプローブに付けるときに間違えてしまいました。3pinは、その前の図のとおり変化していません。

> CH1を2pin、CH2を1pinとして波形の観測してみてください。

明日やってみます。それと、センサーからのシールド線をミニジャックで受けた後、細い平行線で電源基板のそばを通ってメイン基板に引いているのを疑っています。これも明日、シールド線に替えてみます。

daruma(2017/10/02 Mon 15:43) [ 編集 ] [ 返信 ]


Re^59: IN-9応答時間測定器2

JPG 1004x709 398.6kb

CH1を2pin、CH2を1pinとして波形を観測しました。
CH1(黄)は発光していないとき4Vほどあります。それで1V/DIVで見ています。

daruma(2017/10/02 Mon 15:46) [ 編集 ] [ 返信 ]


Re^60: IN-9応答時間測定器2

JPG 1004x709 396.8kb

ノイズの状態を見るのに、200mV/DIVで観測しました。発光していないときは画面からはみだしています。

ノイズが乗っています。

daruma(2017/10/02 Mon 15:51) [ 編集 ] [ 返信 ]


Re^61: IN-9応答時間測定器2

JPG 1004x709 405.5kb

センサーからのシールド線をミニプラグで受けたあとメイン基板まで平行線で電源基板のそばを通っていたので、これを細いシールド線にして電源基板から離してケースの左端を通るように変更しました。

これで効果が出るかと期待したのですが、ご覧のようにだめでした。

> シールド線にして、光センサの−側を芯線側にしてください。
当初は「芯線は+」と決めてかかっていたのですが、この場合「芯線を−」とするのは、変化を見るべき信号が−側だからですか?

daruma(2017/10/03 Tue 12:44) [ 編集 ] [ 返信 ]


Re^62: IN-9応答時間測定器2

基板のGNDをケースに落としてみました。ミニジャックは外環が樹脂でGNDから浮いているものを使っています。

なにも変化はありませんでした。

inara1(2017/10/04 Wed 03:58) [ 編集 ] [ 返信 ]


Re^63: IN-9応答時間測定器2

この波形
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3448.jpg
と同じ垂直感度で、時間軸を10ms/divくらいに引き伸ばしたときの波形はどうなっていますか。CH1でトリガをかけて測定してみてください。

全体的にノイズが多いですが、時間軸を1s/divと遅くすると、オシロスコープのサンプリング間隔も長くなって速い変化が表示されないので、1msくらいの時間軸でのノイズがどうなっているか知りたいです。

シールド線は、電圧が安定しているほうを外側(網線側)にします。光センサにはGNDは来ていないので5Vを網線側にします。電源ラインは交流的にはインピーダンスが低い(安定している)のでGNDと同じです。

daruma(2017/10/04 Wed 09:54) [ 編集 ] [ 返信 ]


Re^64: IN-9応答時間測定器2

JPG 1004x855 396.9kb

こうですか。
発光が始まったところの波形です。
CH1(2pin)は、発光/非発光にかかわらず1秒半ほどの周期で振れ幅が大きくなったり小さくなったりします。図で発光しているときの状態が振れ幅小、発光前が振れ幅中、大きいときは一目盛ほどの振れ幅になります。

> シールド線は、電圧が安定しているほうを外側(網線側)にします。
なるほど、わかりました。

inara1(2017/10/04 Wed 18:04) [ 編集 ] [ 返信 ]


Re^65: IN-9応答時間測定器2

赤色の波形が立ち上がるところから10ms前(1目盛り前)のところで、IN-9に電流を流し始めていると思いますが、IN-9に電流を流し始めてから赤色の波形が立ち上るまでの間には、黄色の波形に目立ったノイズはなさそうです(黄色の波形が2.5V付近を横切るようなノイズがあるときは誤動作しますが、それ以外のヒゲは問題ありません)。

ということは、この波形のような場合は、測定値は10msくらいになって正常に測定できているのかもしれません。

うまく測定できないときに波形がどうなっているか知りたいです。何度か測定開始スイッチを押して、応答時間の表示がおかしくなったときの波形を記録することは可能でしょうか。

daruma(2017/10/04 Wed 18:12) [ 編集 ] [ 返信 ]


Re^66: IN-9応答時間測定器2

発光確認用LEDは、以前のように発光していても点かないことはなく、発光時点灯消えたら消えるとはっきり動作しています。測定がうまくいっているようにも思えます。

> うまく測定できないときに
とは、発光しても値が出ないとか、見た目と明らかに違う値が出るとかでしょうか。
14本5試行の測定をあらためてやってみます。ただ、そのときの波形をうまく記録できるかどうか・・・。

inara1(2017/10/04 Wed 19:03) [ 編集 ] [ 返信 ]


Re^67: IN-9応答時間測定器2

> 14本5試行の測定をあらためてやってみます
この表
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3433.jpg
の結果で、10msくらいの値以外は誤動作していると思われるので、そのときの波形が記録できるといいです。

オシロスコープの波形に出ているノイズのパルス幅はかなり狭い(100μs未満)ので、ノイズ除去用にコンデンサなどを入れて誤動作させないようにすることも可能ですが、誤動作しているときのノイズ波形がどういう形状なのかを見た上で、ノイズ除去用のコンデンサの容量を決めたいと思います。

daruma(2017/10/04 Wed 22:20) [ 編集 ] [ 返信 ]


Re^68: IN-9応答時間測定器2

JPG 648x478 297.4kb

測定してみました。
前回とは桁違いな数値になっていますが、むしろこれが納得行きます。ロータリースイッチは真ん中、10秒レンジです。

前回は、目視で明らかに数秒遅れて点灯したのにmSec台の小さな値が表示され、これはスタートを押したときからではなく立ち上がり始めてからの遅延を見ているのかな思ったりしていたのです。ノイズ問題がひと段落したらお尋ねしようと思っていました。

ところが、安定(したと思える)動作をすると、このレンジでの値が目視カウントと合致するのです。スタートを押したときから点灯するまでの時間です。同一個体でもけっこう大きなばらつきが測定されているのは、実際にすぐ点いたり一呼吸遅れたりの違いが見られました。

こうしてみると、FやHは優秀な品、BやМは遅れが大きい品と言えます。

正常に測定されていると言っていいのではないでしょうか。

daruma(2017/10/04 Wed 22:47) [ 編集 ] [ 返信 ]


Re^69: IN-9応答時間測定器2

JPG 1004x709 386.8kb

「応答時間の表示がおかしくなったとき」が起きないのですが、あらためて波形を見てみました。ノイズの様子は前回と同じに見えます。CH1(赤)の電圧が前回より高くなっているのはなぜでしょう。

inara1(2017/10/07 Sat 15:00) [ 編集 ] [ 返信 ]


Re^70: IN-9応答時間測定器2

JPG 945x756 222.3kb

測定結果
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3458.jpg
は値がバラバラですね。この波形
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3459.jpg
を見ると、赤色のほうは1msくらいの周期の細かいノイズが全体に乗っていて、CH1とCH2に共通のヒゲ状のノイズも見られます。

オシロスコープの水平軸を0.5ms/divくらいにしたとき、添付図の2か所に波形を見てみたいです。

daruma(2017/10/07 Sat 15:15) [ 編集 ] [ 返信 ]


Re^71: IN-9応答時間測定器2

確かにバラついた結果ですが、実際IN-9の挙動が早く点いたり遅れて点いたりと変わります。昔のデバイスはそんなものなのか、経年変化でやつれてしまったものなのか。

今日明日はまたまた無線のお泊まり会です。オシロを持ち出すのはたいへんなので、LED Cubeのほうを持って来ました。今晩中に点灯するところまで漕ぎつけたいと思っているのですが。
波形観測は明日帰宅してからやってみます。

daruma(2017/10/08 Sun 15:40) [ 編集 ] [ 返信 ]


Re^72: IN-9応答時間測定器2

JPG 2008x709 750.9kb

スタートしIN-9が発光するまでの短い間が左で、CH1が上昇するのと入れ替わりにCH2はスタート前と同じゼロに下がります。発光中が右の状態です。

CH1はスタート前の状態でもこの変な波形からヒゲを除いた形をしています。電源供給がOFFでもそのような形です。

daruma(2017/10/08 Sun 15:50) [ 編集 ] [ 返信 ]


Re^73: IN-9応答時間測定器2

JPG 1004x709 392.2kb

電源供給がOFFのとき、このような形です。なぜゼロVフラットでないのでしょう。なにかノイズを拾っているのでしょうか。電源基板に1000μFを入れたので、そこの充放電でしょうか。OFF後5分見ていてもこの波形です。電源基板からの12Vや120Vピンを抜いても変わりませんから、電源基板の影響ではありませんね。メイン基板自体がなにかを拾っているのでしょうか。

あ、発見しました。カッターマットの裏に貼ったアルミからオシロのCOMPに繋いだクリップを外すとフラットになりました。

daruma(2017/10/08 Sun 16:15) [ 編集 ] [ 返信 ]


Re^74: IN-9応答時間測定器2

JPG 1004x709 393.1kb

カッターマットのアースをはずして、あらためて発光時の波形を見ました。周期的な波形は見られなくなりました。細かなノイズ振れは見られます。

daruma(2017/10/08 Sun 17:53) [ 編集 ] [ 返信 ]


Re^75: IN-9応答時間測定器2

間違えていました。COMPの金属端子はどちらもGNDだと思い込んでいました。下側のがGNDなんですね。クリップをそちらにつけると、あの変な波形は出なくなりました。ひげ状ノイズはアースしてもしなくてもほとんど変わりはありません。

daruma(2017/10/08 Sun 18:11) [ 編集 ] [ 返信 ]


Re^76: IN-9応答時間測定器2

オシロ自体のACインレットは3Pですが、付いていたACコードの先は2pプラグだったのでコンセントのアースには繋がっていません。3Pプラグやアース線のついたケーブルでアースしなければいけませんか。

inara1(2017/10/09 Mon 03:48) [ 編集 ] [ 返信 ]


Re^77: IN-9応答時間測定器2

1kHzの周期的なノイズは、オシロスコープのプローブ校正用の信号をカッターマットにつないでいたのが原因のようですね。カッターマットのアルミはプローブ校正用端子のGND側
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3438.jpg
につないでください。

>3Pプラグやアース線のついたケーブルでアースしなければいけませんか
こちらでは3Pプラグは使っていません。オシロスコープのFG(フレームGND)はどこにもつながないほうがいいです。

カッターマットのアルミをプローブ校正用端子のGND側につないだ状態で再測定してみてください。

daruma(2017/10/09 Mon 08:25) [ 編集 ] [ 返信 ]


Re^78: IN-9応答時間測定器2

プローブ2本のGNDクリップをつけるのにコの字形をした金具がついているんだと思い込んでました。校正のときは上にプローブ先端を下にクリップをつけるんでしたっけ。思い込み決めつけは失敗のもとですね。この方法を初めて試して「効果絶大」だったときは、深く考えずにたまたま下に繋いでいたようです。あ、図を見てそのとおりにしたからですね。

オシロ自体は接地しなくていいのですね。了解しました。

daruma(2017/10/09 Mon 12:06) [ 編集 ] [ 返信 ]


Re^79: IN-9応答時間測定器2

JPG 1004x709 395.2kb

カッターマットのアルミをプローブ校正用端子のGND側につないだ状態で再測定しました。

波形はこんな様子です。ややざらざらしていますが、妙な周期的変化はありません。CH2で大きなヒゲが出ていますが、これはスタートボタンを押した瞬間に一発出ます。発光中の小さなひげは毎度こんな感じです。

daruma(2017/10/09 Mon 12:10) [ 編集 ] [ 返信 ]


Re^80: IN-9応答時間測定器2

JPG 685x486 308.5kb

測定結果です。

試行ごとにバラツキが出ていますが、これは視認している様子とも一致します。前回と同様です。
欄右外に[-]印のあるものは、発光しないことが何度かありました。

オシロで1pin,2pinを観察しながら行って、ひとつ気づいたことがあります。
発光したときのCH1(2pin)の上昇が個体によって違うのです。たいがいのものは画面の目盛で600mV(中央のライン)あたりになるのですが、低いもので400mV、高いもので800mV超になるものがそれぞれ数本ありました。
先日、「CH1(赤)の電圧が前回より高くなっているのはなぜでしょう。」と書いたことがありましたが、それはこの個体差だったようです。
試行による違いは出ませんから、これは個体差だと思われます。低いものも高いものも発光はしています。

CやFやHは優秀な品、BやМは遅れが大きい品と言えます。

inara1(2017/10/09 Mon 17:22) [ 編集 ] [ 返信 ]


Re^81: IN-9応答時間測定器2

測定場所を変えたときの波形
http://mpga.jp/akizuki-fan/index.php?mode=image&file=3472.jpg
がおかしいです。

赤色(光センサ)の電圧が立ち上がったときには、黄色(Input)の波形はがHレベルに戻るはずですがそうなっていません。パルスカウンタでは、黄色の波形がLレベルになっている時間を測定するので、この結果だと1秒以上の発光遅延ということになってしまいます。

IN-9に電流が流れ始めるタイミングで黄色の波形が立ち下がり、光センサが発光を検出すると、黄色の波形が立ち上がるのが正常動作ですが、この波形はそうなっていません。

赤色の波形には目立ったノイズは乗っていないので、ノイズが原因ではなさそうです。CH1(赤色)の測定箇所をLM358の1pin電圧に変えてみると波形はどうなりますか?

daruma(2017/10/09 Mon 18:20) [ 編集 ] [ 返信 ]


Re^82: IN-9応答時間測定器2

> 測定場所を変えたとき
というのは、観測ポイントを変えたときということですね。

ご指摘のことがわかりました。上の図は以前からの流れでCH1を2pin、CH2を1pinとして波形を観測したものなんです。

http://mpga.jp/akizuki-fan/index.php?mode=article&id=3461&page=1
これから、この添付図の2点を取って観測しなおします。CH2は下の基板から引き出し線を付けていないので、2階の表示基板に来ているピンから取ります。基板を組み付けた状態で実験するには、メイン基板が1階でアクセスしにくいんです。

daruma(2017/10/09 Mon 18:44) [ 編集 ] [ 返信 ]


Re^83: IN-9応答時間測定器2

JPG 1004x709 387.0kb

CH1(赤)がセンサー(-)、CH2(黄)がカウンタ入力です。

どうでしょう。
CH2(黄)は電源ON時Lで、スタートを押したときCH2(黄)が立ちあがり、発光開始でCH1(赤)が立ちあがりCH2(黄)がLに落ちます。時間が来て消えるとCH1(赤)がLに落ちます。

> IN-9に電流が流れ始めるタイミングで黄色の波形が立ち下がり、光センサが発光を検出すると、黄色の波形が立ち上がるのが正常動作
とは逆(反対?)なんですが。

inara1(2017/10/10 Tue 18:01) [ 編集 ] [ 返信 ]


Re^84: IN-9応答時間測定器2

>CH1(赤)がセンサー(-)、CH2(黄)がカウンタ入力です。
きれいな波形です。これなら誤動作しないと思いますが、遅延時間が400msもあるのですか。それだとオーディオレベルメータには使えませんね。

>黄色の波形が立ち上がるのが正常動作とは逆(反対?)なんですか
失礼しました。IN-9に電流が流れ始めると、黄色の波形が立ち上がって、IN-9の発光を検出すると黄色の波形が立ち下がるのが正常です。この波形は正常です。

いつもこのようなきれいな波形なら問題ないのですが、このような波形でも、測定するたびび測定値(黄色の波形のパルス幅)にはバラツキがあるのでしょうか。だとしたら、測定の問題ではなく、IN-9の特性自身にバラツキがこれくらいあるということでしょうか。もしそうなら、何回か測定してバラツキの大きいものはNGとしたほうが良いかもしれません。

daruma(2017/10/10 Tue 18:15) [ 編集 ] [ 返信 ]


Re^85: IN-9応答時間測定器2

> この波形は正常です。

ああよかった。ようやくこれで完成宣言ですね。
波形はいつもこれくらいきれいに出るようになりました。

遅延時間はIN-9個々によりまた試行のたびにずいぶんバラツキがあります。
発光「開始」の遅延時間なので、光り始めれば追随はしますから、サウンドメーターに使えないことはないのですが、「あれ?始まらない」は格好悪いのでだめですね。

『IN-9応答時間測定器』、これにて一件落着。ありがとうございました。

明日から週末まで東京です。秋葉原で買い物もしてこようと思っています。

inara1(2017/10/06 Fri 07:17) [ 編集 ] [ 返信 ]

Excel VBAで太陽電池の電流−電圧特性を計算する方法

PNG 720x2646 541.4kb

Yahoo知恵袋の回答の補足にここを使わせてください。

左上の画像をクリックすると拡大表示されます。Excel2010とExcel2016で動作することを確認しました。

貼る付けるVBAコードはこれです。この文章をコピー&ペーストしてください。
ここから↓
Function I(Iph, Rsh, Rs, I0, nVt, V)
If Iph < 0 Or Rsh < 0 Or Rs < 0 Or I0 < 0 Or nVt < 0 Or V < 0 Then
I = ""
Exit Function
End If
Dim eps As Single, a As Single, x As Single, x0 As Single, x1 As Single

eps = 1 / 10 ^ 6 ' --- 相対計算精度
x0 = -2 * Iph
x1 = Iph ' --- I の値を x0 から x1 の範囲で探す
I0 = I0 / 10 ^ 12 ' --- I0の単位をpAからAに変換
nVt = nVt / 1000 ' --- nVtの単位をmVからVに変換
While Abs((x0 - x1) / (x0 + x1)) > eps
x = (x0 + x1) / 2
a = (V + x * Rs) / nVt
If a > 700 Then a = 700 ' --- exp 計算のオーバフロー防止
If Iph - (V + x * Rs) / Rsh - x - I0 * (Exp(a) - 1) > 0 Then
x0 = x
Else
x1 = x
End If
Wend
I = x
End Function
↑ここまで

このプログラムは、I(Iph, Rsh, Rs, I0, nVt, V)という関数を定義しているものです。中身は2分法で電流を計算しています。ワークシートのセルに
=I(Iph, Rsh, Rs, I0, nVt, V)
と書けば、I-V特性の縦軸の電流(A単位)を計算してくれます。
Iphは光電流(A単位)、Rshは並列抵抗(Ω単位)、Rsは直列抵抗(Ω単位)、I0は飽和電流(pA単位)、nVtは理想係数×熱電圧(mV単位)、VはI-V特性の横軸の電圧(V単位)です。

Excelシートを保存するときは、ファイルの種類を「Excelマクロ有効ブック」としてください。

  1. 前8件
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. ...
  10. 19
  11. (1-8/149)
  12. 次8件