秋月ファンクラブ掲示板

記事検索

記事検索フォーム
  • 検索結果 17件
  • 所要時間 0.01秒

  1. Re: プレゼン電卓3(-)
  2. プレゼン電卓3(-)
  3. Re^97: プレゼン電卓2(-)
  4. Re^94: プレゼン電卓2(-)
  5. Re^92: プレゼン電卓2(-)
  6. Re^91: プレゼン電卓2(-)
  7. Re^23: プレゼン電卓(-)
  8. Re^2: プレゼン電卓(-)

Re: プレゼン電卓3

JPG 1809x2079 1381.0kb

先日の成功報告は初代のスイッチが一つになっている回路でのことしたが、

> 仕様はラッチと表示が別になった以下の回路図に基づくものです。
http://mpga.jp/akizuki-fan/index.php?mode=image&file=4653.jpg

とのことですので、スイッチを二つに分けた回路に取り替えました。

なんじゃらほいさんリンクの図は、配線図の変更箇所を点線で記したのが読み取っていただけなかった際のものですので、あらためてここに貼ります。これですよね。

で、この基板は中点OFFトグルスイッチ版へ変更を加えてあったので、元に戻してから実験をと作業したら配線不良が出て、とんだ時間がかかりました。情けない。

さて、

> NC側につながるのは表示板側のラッチ・解放の配線、NO側につながるのはクロック生成用の配線

とのことですので、そのようにしました。(先日の実験は、16pinとGNDの間にタクトスイッチを入れていました。)
NC/NOのあるモーメンタリということで、マイクロスイッチがあったのでそれを使っています。COM接点がGND、NO接点が16pin、NC接点は表示回路の74HC573のipin(OE)に付けていたスィッチとおきかえればいいのでしょうか。そう解釈して1pinに繋ぎました。

この状態で電源ON(電卓は通電するが起動していずVer.表示の状態)すると、"888888"表示になります。次いで電卓の{ON/C]ボタンを押して電卓が"0"になると、"000000"表示になります。マイクロスイッチを押すと、"000000"表示が消え離すと"000000"が表示されます
電卓がオートオフで切れると、無表示になります。

ここで表示基板の74HC573の1ipin(LE)側にトグルスイッチをとりつけOFF(オープン)状態で再起動しました。
"888888"から電卓{ON/C}で"000000"表示になり、数値をいれるとそれが全桁に並びます。例えば"1"を入れると"111111"です。トグルスイッチをON(GND)すると無表示になります。

という動作状況です。

マイクロスイッチのC接点とトグルスイッチとを入れ替えてみても、若干振る舞いは違いますが似たようなぞろ目表示が現れます。

プログラムは「重要な更新(押しボタンスイッチ用)」を使っています。

なんか私ピント外れなことをやっていますか。

プレゼン電卓3

JPG 960x720 137.4kb

このスレッドは『プレゼン電卓2』の続きです。
inara1さん、なんじゃらほいさん、よろしくお願いいたします。

操作部基板にPIC16F87を置いてみました。クロック生成スイッチの部分はまだはっきりしないので記載していません。

16F87を表示部筐体のほうに置くことにすれば、この基板は電源と信号線プルアップ/プルダウンの役目で左半分の小サイズ基板にします。

前スレ最後の方に書きましたが、LED電源は2SJ334で電圧調整したものを供給するようになっているので、三端子レギュレータを各表示部に置くのではなく当初計画の一括でと思います。

低損失で1.5A出せる
http://akizukidenshi.com/catalog/g/gI-09262/
にして6V 2.8AのACアダプター入力でどうでしょう。
この三端子レギュレータは4本足ですが、4番のピンはオープンにしておけば出力ONというスイッチなんですね。
三端子レギュレータの商品カテゴリに有りますが、「シリーズレギュレータ」とも書いてありました。

※あ、ピンアサイン違いますね。これから直して差し替えます。
NJM2396F05は一般的な三端子レギュレータとピンアサインが違うので描き変えました。小手先直しでカッコ悪いですが。図は差し替え済みです。

Re^97: プレゼン電卓2

>説明図にある
>「表示回路の1N4148カソードへ」は、現在トグルスイッチが付いているところのことでしょうか。

仕様はラッチと表示が別になった以下の回路図に基づくものです。
http://mpga.jp/akizuki-fan/index.php?mode=image&file=4653.jpg

ラッチスイッチを別にするなら、クロック生成と共用しようという狙いがあります。

>操作は
>転送OFFにしておいて電卓に数を置く
>ブレボのボタンをひと押し
>転送ONにすると転送表示
>これでいいでしょうか。

これでも動きます。

>失敗桁が発生すること無く転送表示されます!!

安定してそうなら良いですが過去の事例を見ると???ですね。経過を見守ります。

>「転送OFFにしてボタンを押し転送ON」が1回分ワンセットの操作ということですか。
>これがワンアクションになるといいのですが。

回路図ではそれを狙った提案を含んでいました。

>> クロック生成スイッチはNC/NO端子のあるモーメンタリー
>>(押したときだけ動作する)スイッチの方が操作性は良さそうです。

>とは、通常のタクトスイッチではなくノーマリクローズのものにということでしょうか。
>図ではNC側になっていますね。

これは、SWをどちらの基板に置くのかを決めていなかった為判りにくくなっていますが、NC側につながるのは表示板側のラッチ・解放の配線、NO側につながるのはクロック生成用の配線です。

グランドを共用するのであれば何処に置いてもこれで動くと思われますが、SWはロジックICに近い表示基板側に置くのが基本です。その説明が図にも本文にもなかったので判りにくかったですね。

マイコン側ではそこそこ安定して16ピンがグランドレベルになりさえすれば、クロックの生成を開始するのでケース内ぐらいは引き回せる配線です。

さて前回の投稿で、押しボタンスイッチの方がよいとしながら、結局、トグルスイッチ向き仕様になっていたので、パラメーターを見直し、モーメンタリーの押しボタンスイッチ向きに変更したものを書きました。好きな方を使って下さい。(重要な更新済み)V0219

:020000040000FA
:10000000831660308F000F308600BC30850081176A
:1000100007309C008312850186010030AD00AE20C0
:100020002E08A6000130AD00AE202E08A70018282B
:10003000851B1828E620851B1828E620851B182814
:10004000E620851B12282708A80005193D288519D8
:100050004928061855288618612806196D2886191A
:1000600079282528A80B25280517851F3528E02085
:10007000851F3528EC20051318280530A900051D1B
:100080002728A90B3F2885148520851005194628A7
:1000900025280530A900851D2928A90B4B28051402
:1000A000852005108519522825280530A900061C31
:1000B0002B28A90B572886178520861306185E283B
:1000C00025280530A900861C2D28A90B63280617B2
:1000D0008520061386186A2825280530A900061DE4
:1000E0002F28A90B6F2886168520861206197628D8
:1000F00025280530A900861D2528A90B7B28061672
:10010000852006128619822832282608AA00C420D3
:10011000AA0B87280800831603178C188D288312D2
:1001200003132D08831203178D00831203132E0867
:10013000831203178C00831603178C130C158B1373
:1001400055308D00AA308D008C14831603178C183F
:10015000A7288B170C118312031308002D08831294
:1001600003178D00831603178C130C1483120317C7
:100170000C0883120313AE0008000000000000000A
:1001800000000000000008001330A1000000000083
:100190000000A10BC6280000000008006430A30086
:1001A0000000000000000000000000000000A30BA1
:1001B000D02808003230A400C420A40BDC2808009A
:1001C0006430A400C420A40BE22808001430A50069
:1001D000DA20A50BE82808002830A500DA20A50BB6
:1001E000EE2808006430A500DA20A50BF4280800EA
:0C01F000C930A500DA20A50BFA28080091
:02400E00503F21
:02401000FD3F72
:06420000150002000000A1
:00000001FF

基本的には同様なシーケンスですが、プッシュスイッチに最適化したため定数が変更されています。

クロック生成スイッチが押されたら、100mS毎に再チェック(以前は10mS)を3回行い(押しむら、チャタリング対策)、それでもSWがONなら、アクティブになっている桁をサーチ。

検出された桁が再度アクティブか複数回チェックし、OKなら、一定時間該当ポートをONにし、時間が過ぎたらOFFにします。

同じ桁の多重処理を防止するために、桁信号がLOになるまでループします。

LOになったら別のアクティブな桁がどれかをスキャンします。

それを桁数分最低1ターン、最大2ターン(以前は10ターン)行います。

「クロックを送る回数」は最低は「各桁1回」で問題ないはずなので、6桁×1〜2(処理時間21〜36mS、前回仕様は最大180mS)行い、その後クロックの生成を停止します。

クロックの生成が終了したら、15ピンをONにします。(新機能)
15ピンはLEDなりトランジスタを介してブザーを鳴らすなりしてラッチ完了・SW解放タイミングの目印として下さい。
配線が面倒なら解放でも問題ありません。

スイッチの解放安定待ちとして200mSのウェイトが入っています。
解放待ちウェイトが経過したら、15ピン(LEDやブザー)をOFFにし、SWの入力待ちに戻ります。

前回同様ラッチパルス長はHEXの最後から2行目の15(HEX)で100μ秒×HEXの値です。
H'15'なら10進では20なので、現在の値は2mSです。

連続送信ターン数はHEXの最後から2行目の02(HEX)で10進数では2で2回です。

パルスの時間も、送り回数ターン数もEEP領域を書き換えれば変更可能ですが、行の最後二桁がチェックサムなので、そちらも変更しないとエラーで書き込めなくなります。

計算方法は過去ログにありますが、簡単に言うと「1増やしたらチェックサムから1を引く」です。

http://mpga.jp/akizuki-fan/index.php?mode=article&id=2638&page=1

マイコンの操作不要のクロック送信0.5秒 インターバル1.5秒のインターバル版 V0219
:020000040000FA
:10000000831660308F000F308600BC30850081176A
:1000100007309C008312850186010030AD00AA20C4
:100020002E08A6000130AD00AA202E08A700232824
:10003000851B1828E220851B1828E220851B18281C
:10004000E220851B12282708A800051939288519E0
:1000500045280618512886185D280619692886192A
:1000600075282528A80B25280517F420EE20051350
:1000700023280530A900051D2728A90B3B28851436
:10008000812085100519422825280530A900851DE5
:100090002928A90B472805148120051085194E2809
:1000A00025280530A900061C2B28A90B53288617E4
:1000B0008120861306185A2825280530A900861C99
:1000C0002D28A90B5F28061781200613861866289D
:1000D00025280530A900061D2F28A90B6B28861698
:1000E000812086120619722825280530A900861D50
:1000F0002528A90B772806168120061286197E2846
:1001000032282608AA00C020AA0B832808008316DC
:1001100003178C188928831203132D0883120317E1
:100120008D00831203132E08831203178C0083168D
:1001300003178C130C158B1355308D00AA308D00CE
:100140008C14831603178C18A3288B170C11831299
:10015000031308002D08831203178D00831603175D
:100160008C130C14831203170C0883120313AE00B4
:10017000080000000000000000000000000008006F
:100180001330A100000000000000A10BC2280000F5
:10019000000008006430A300000000000000000020
:1001A000000000000000A30BCC2808003230A4009F
:1001B000C020A40BD82808006430A400C020A40BE1
:1001C000DE2808001430A500D620A50BE42808007E
:1001D0002830A500D620A50BEA2808006430A50029
:1001E000D620A50BF0280800C930A500D620A50B05
:0401F000F6280800E5
:02400E00503F21
:02401000FD3F72
:064200001500190000008A
:00000001FF

Re^94: プレゼン電卓2

なんじゃらほいさんありがとうございます。

なんじゃらほいさんの方法で誤動作がなくなるのならその方法でやってください。

これからしばらくは、なんじゃらほいさんとのやり取りが続くと思うので、しばらく引っ込んでいますが、このスレも99間近なので、新規スレを作ったほうがスッキリすると思います。

Re^92: プレゼン電卓2

なんじゃらほいさん、お久しぶりです。
プログラムと回路例ありがとうございます。
16F87は以前買っておいたのがあるので、これから実験させていただきます。

Re^91: プレゼン電卓2

JPG 504x709 64.8kb

お二方ともお久しぶりです。

何かうまく行ってないようなので、色々と原因を考えてみたのですが、あがっているデータを見る限りでは、特定困難だと思います。

実際にラッチ不良が起きたときのラッチICの波形をロジアナなどで捉えられれば、はっきりするのでしょうが、アマチュアの電子工作ではそうも行かないのは歯がゆいですね。

症状と発生状況と発生頻度を見る限り、ラッチタイミングの問題だろうとは思いますが、思いつく原因と発生頻度が一致しません。

私が思いつく原因なら「発生確率は桁不定で50%近く」になりますが、どうやらそれよりも大幅に低い模様です。

とはいえ、現状まだ問題を抱えていて、思いつく原因があるのなら、それを元に対策を考えてみようということでざっとやってみました。

思いついている原因はLE端子に加えられているクロック信号の、ラッチ実行スイッチによる不適切な途切れではないかと。

それを図にしました。

で、対策はクロックを断続的にして、不適当な途切れが起きないようにしてみる。 ということです。

原因がはっきりしない段階で、無責任な口出しをして他人の手を煩わせるのは気が引けますので、断続的にクロックを生成するプログラムを書きました。(スイッチ部を工夫すればラッチ操作も同時にできそうです・回路図参照)

以下はそのHEXです。マイコンは16F87です。(回路図は原因考察図の下にあります。)
:020000040000FA
:10000000831660308F000F308600BC30850081176A
:1000100007309C008312850186010030AD00BA20B4
:100020002E08A6000130AD00BA202E08A70018281F
:10003000851B1828EC20851B1828EC20851B182808
:10004000EC20851B12282708A80005193D288519D2
:100050004928051A55280618612886186D2806199A
:100060007928861985282528A80B2528851F362854
:10007000EC20851F3628F22018280530A900051D20
:100080002728A90B3F28851491208510051946289B
:1000900025280530A900851D2928A90B4B28051402
:1000A000912005108519522825280530A900051E24
:1000B0002B28A90B5728051791200513051A5E2830
:1000C00025280530A900061C2D28A90B63288617B2
:1000D0009120861306186A2825280530A900861C59
:1000E0002F28A90B6F28061791200613861876284B
:1000F00025280530A900061D3128A90B7B28861666
:10010000912086120619822825280530A900861D0F
:100110001828A90B872806169120061286198E2802
:1001200034282608AA00D020AA0B9328080083169A
:1001300003178C189928831203132D0883120317B1
:100140008D00831203132E08831203178C0083166D
:1001500003178C130C158B1355308D00AA308D00AE
:100160008C14831603178C18B3288B170C11831269
:10017000031308002D08831203178D00831603173D
:100180008C130C14831203170C0883120313AE0094
:10019000080000000000000000000000000008004F
:1001A0001330A100000000000000A10BD2280000C5
:1001B000000008006430A300000000000000000000
:1001C000000000000000A30BDC2808003230A4006F
:1001D000D020A40BE82808006430A400D020A40B91
:1001E000EE2808002830A500E620A50BF42808001A
:1001F0006430A500E620A50BFA280800C930A50048
:08020000E620A50B002908000F
:02400E00503F21
:02401000FD3F72
:0642000015000A00000099
:00000001FF

やっていることは、クロック生成スイッチが押されたら、10mS毎に再チェックを3回行い(チャタリング対策)、それでもSWがONなら、アクティブになっている桁をサーチ。

検出された桁が再度アクティブか複数回チェックし、OKなら、一定時間該当ポートをONにし、時間が過ぎたらOFFにします。

同じ桁の多重処理を防止するために、桁信号がLOになるまでループします。

LOになったら別のアクティブな桁がどれかをスキャンします。

それを指定回数繰り返します。

クロック生成スイッチはNC/NO端子のあるモーメンタリー(押したときだけ動作する)スイッチの方が操作性は良さそうです。

「クロックを送る回数」は最低は「各桁1回」で問題ないはずですが、スイッチによっては数十ミリ秒のチャタリングが起きる可能性があるので、6桁×9〜10回(処理時間最大180mS)行い、その後クロックの生成を停止します。

クロックの生成が終了したら、スイッチの解放待ちループを行い、その後200mSのウェイトが入っています。

モーメンタリーSWを使いパルス生成とラッチを同じスイッチで同時に行う場合は「1秒押し」という感覚でやるとうまく行くはずです。

押し時間があまり短いとクロック送出中にスイッチがオフになりラッチ不良となる可能性があります。

押し時間が短いなら、送りターン回数が少ない方がラッチ不良の可能性が少なくなります。

ポートのON時間(ラッチパルス長)はHEXの最後から2行目の15(HEX)で100μ秒×HEXの値です。
H'15'なら10進では20なので、現在の値は2mSです。

連続送信ターン数はHEXの最後から2行目の0A(HEX)で10進数では10で10回です。

パルスの時間も、送り回数ターン数もEEP領域を書き換えれば変更可能ですが、チェックサムが行の最後にあるので、そちらも変更しないとエラーで書き込めなくなります。

計算方法は過去ログにありますが、簡単に言うと「1増やしたらチェックサムから1を引く」です。

http://mpga.jp/akizuki-fan/index.php?mode=article&id=2638&page=1

Re^23: プレゼン電卓

sakurabaさん、初めまして。アドバイスありがとうございます。

ご紹介のものは、Arduinoで使うのでしょうか。
Arduinoは使ったことありません。Raspberry Piは興味をもって↓このようなもの
http://darumakobo.wixsite.com/work/lednixieclock-b
を作ってはみたものの、「作った、動いた」の後は机上の置物と化しています。PICは、ここの掲示板でなんじゃらほいさんに指南いただいたのですが、どうにも頭が固くてついていけません。
ハードウェアで作るのは、inara1さんにすっかりお世話になってもう何年にもなります。いつも実際的な回路を提示いただきたいへん助かっています。

もっぱら他力本願で情けないのですが、Arduino作戦はこんな私にもなんとかなりそうでしょうか。「できるでしょう」の先を具体化するのがハードル高いのです。

inara1さんが考えてくださっている回路に取り組みたいのは変わりませんが、sakurabaさんマイコン作戦のほうご指南いただけますか。

漠然とした思いですが、電卓がブラックボックスなので取り出すのが各桁各セグメントのON/OFFですから、それらをラッチするのはマイコン使うにしても回路で行う部分が大きいように思うのですが、そんなことはないものでしょうか。値で取り出せればまた別なんでしょうが。

Re^2: プレゼン電卓

> 転送スイッチを押すたびに、ディスプレイの上の段から下方向に数字が埋まっていくという感じでしょうか。

表示先に対応したボタンがあって、[A]を押せば[A欄]に、[B]を押せば[B欄]にと考えています。欄ごとに同じ回路を並べれば済むのでそのほうが単純ではないかということと、他の欄まで表示したあと例えば[B欄]を変更するということが生じた場合にも容易に対応できるかと。
もっとも、総計を出してから上の欄を変更したからと言って自動再計算してくれるのは無理ですが。その場合は手動再計算し再表示です。

> 他にオールクリア(9個全部を000000にする)のスイッチも必要ですね

これについては、上にも書いたように、取り込んで表示している部分を消してゲタばき"0"だけが残るのがよいと思います。

> その7セグLEDはダイナミック点灯なので、

そうか、6桁が同時に点灯しているわけではないので、1つずつ順に取り込んでいかなければならないのですね。

> こういう処理はPICマイコンでやれば簡単にできると思います。

そうなんですか。なんじゃらほいさん、どうなんでしょう。
プログラミングが辛いので、回路でできれば部品点数が多くても・・・と思ったのですが。

  1. 前8件
  2. 1
  3. 2
  4. 3
  5. (9-16/17)
  6. 次8件