過去ログ [ 0002 ]
過去ログ:
ワード検索: 条件: 表示:
Page: | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
確定申告ご苦労様です 投稿者:猛牛ロック 投稿日:2016/03/06(Sun) 12:00 No.821

20レスになったので移動します。

> 解読してますが、ちょっと、難しいです。

MABOさんにそう言われるとは思いませんでした。
説明を付けたものをUPしておきます。

配線が楽(従来のまま)なのでNO.813はそれなりに勧められます。
けれども「突入電流が問題になっている人」にとってはかなり有用でしょうけど、そうでない人にとっては意味が無いものです。
実際に変えても、1瞬の出来事なので違いも判らないでしょうね。

因みに、大抵のMCは動作に10ms程度はかかります。一応、購入するなら調べた方が良いですけど、5,6msというのも聞いたことが無いので
どれでも大丈夫ではないか、と思っています。

MISUMIに超安いMC(MSも)が売っているんですよね。最初に見た時に思わず2度見してしまいました。
昨夏にMCを購入する機会があったので検討したのですが、ケースのサイズに収まらないのが判って、断念しました。
なので、実物を見たこともありません。けれど、スペックを見る分には十分良さそうで、価格は1/3程度?です。
http://jp.misumi-ec.com/vona2/detail/110400267970/ 確か、韓国製です。
個人でも買えれば良いんですけどね

Re: 確定申告ご苦労様です
猛牛ロックさん、TRさん、こんばんは。

猛牛ロックさん、有り難うございます。全体像、なんとなく分かりました。
そこで、ちょっと疑問なんですが、私のサーボアンプの取説(安川Σシリーズ)には、
「アラーム信号は電源投入時約2秒間出力されるのでシーケンス上注意」の記述があります。
電源投入時には、アラームが出力されなくなるまで、
2秒程度、電源スイッチを押し続けないとだめなんでしょうか。


TRさん、こんばんは。

>でも、よく寄付金をしましたね!!大したものです。

いえいえ、これは、返礼品目当てです。タブレットのPCがほしかったので、飯山市に納税しました。
まあ、市価より高い値段で、タブレット買ったようなもんです。
探したら、国保の支払い通知書がみつかりましたので、これから、確定申告終わりにしてしまいます。
幸い?、医療費は、10万円には遙かにとどきません。残念。
諸々の証明書は、イータックスで送るので、省略できます。
mabo   2016/03/06(Sun) 22:29 !email! No.822 !ico_edit!
Re: 確定申告ご苦労様です
> 2秒程度、電源スイッチを押し続けないとだめなんでしょうか。

スイッチを押し続けるかどうかは配線次第だと思います。例えば、TRさんの回路でも、MC内(下流)に「制御用」と主回路用を繋げることは出来ません。
何故なら、RAが開いているからです。これが開いている限り、制御用には電気が行きませんから、1S以上押してもつきません。必ずMC外(上流)で制御用の電源をとるか、
またはRAの繋げ方を工夫しなければなりません。

私がダウンロードしてみたものは1つは、ほぼTRさんのものと同じ回路で、もう一つはUPしたもので、
主回路と制御用と判れていないタイプのようです。
この回路については1Ryが動作するまで押し続けなければなりません。つまり2S押し続ける必要があります。
青矢印以下のように一部変更すればひと押しに変更出来ます。
(RY2は新規のリレーと言う事でマニュアル内で、もし「RY2」が使われていても別のものです)

追記
図は「100%動作する」とはいい難いです。「ほぼ間違いなく動作する」程度です。
1RYが同時若しくは上の方が早い、RY2の動作が遅い、なら確実です。
逆に1Ryの下が上に比べて極端に早く、かつRY2が早く動作すると誤動作=切り替え時(2s時)に落ちます。
リレー1Ryを4cの物にして、両端の2つを直列にして、下のところに付ければ、つまりもうひとつA接点の1Ry横に並べれば
「100%」といってもいいかな?といった感じです。
猛牛ロック   2016/03/07(Mon) 09:33 !email! No.823 !ico_edit!
Re: 確定申告ご苦労様です
TRさん、猛牛ロックさん、こんばんは。

TRさん、おかげさまで、確定申告の自分用は終わりました。
還付金があるので、家ののをやりましたが、電子証明の期限がきれていて、イータックスでは、送信できませんでした。
郵送で、送るようですね。証明書の添付が必要なので、面倒です。

猛牛ロックさん、引き続き、解説ありがとうございます。
サーボでも、練習に、シーケンス組んでみようと思います。
機種やメーガーによって当たり前ですけど、仕様が違うんですね。
4cのリレーで、組んでみようと思います。目標は、MACHから、スピンドルとしてのACサーボの制御です。
過去にオシレーターで、サーボを動かしたことはあるのですが、MACHから制御してみたいと思います。
mabo   2016/03/08(Tue) 00:03 !email! No.824 !ico_edit!
Re: 確定申告ご苦労様です
回路を見返したら4Cにするというのも良い手ではありませんでした。
(ALMで切る時に誤動作が起こりやすくなります)
なので、1Ryはなるべく同時に開閉した方が良い、また、RY2はなるべく動作が遅い方が良い、というのが
結論です。→多分、大丈夫じゃないかな?程度の信頼性です。
他にもっと万全の回路も有りそうですけど、複雑になると思います。
私はあまり使いませんけどタイマーを使うのが良いのかもしれません。
猛牛ロック   2016/03/08(Tue) 09:10 !email! No.825 !ico_edit!
Re: 確定申告ご苦労様です
猛牛ロックさん、TRさん、こんばんは。

猛牛ロックさん、返信ありがとうございます。
タイマーですか。タイマーといいうと、
http://www.fa.omron.co.jp/products/family/193/feature.html
等になるのでしょうかね。
これも、結構いい値段ですね。

それから,
MISUMIのMC見てみました。
安いですね。
でも、購入に難ありですね。どうしても、というときは、
以前○ECさんのサービス利用しました。
ちょっと、割高になりますよね。
mabo   2016/03/08(Tue) 21:47 !email! No.826 !ico_edit!
Re: 確定申告ご苦労様です
この辺り(http://www.monotaro.com/g/01013220/?displayId=18)のタイマーが安いようですが、個人では
購入し難いようです。
No.823の回路のままでも大丈夫だと思うのですが、今回の添付図上の様に24Vの1Ryと同じものを並べて使うと、仮に1Ry接点が汚れて動作が
イマイチ(遅れる)になってもRY2と取り換えればOK(RY2は遅い方が良い)なので良いかもしれません。
↓の図は更にローパス(+トランジスタ)で、RA2の動作を遅らせています。
猛牛ロック   2016/03/09(Wed) 13:03 !email! No.827 !ico_edit!
Re: 確定申告ご苦労様です
猛牛ロックさん、こんにちは。

トランジスターを使った回路並びに、○ノタロウの安いタイマー
の紹介ありがとうございます。

>個人では購入し難いようです。
ですが、大丈夫です。私は、個人名で、登録してありますので、ちょくちょく、買い物しています。
MISUMIみたいに、登録するのに会社名やら、登録口座等の情報はいりません。
ご紹介いただいたタイマーも購入できると思います。

追伸 ○タロウのユーザー登録画面では、会社名の記入の覧が
   ありますが、私は、空欄で登録しました。
   まあ、分類から言うと、個人事業者?ということにな
   るのでしょうが、個人でも大丈夫です。
   ○タロウのいいところは、登録すれば、購入時に楽天
   銀行からの引き落としの処理も同時にできることです。
   
mabo   2016/03/09(Wed) 13:41 !email! No.828 !ico_edit!
Re: 確定申告ご苦労様です
maboさん、猛牛ロックさん、こんばんは。

過日教わった、表示ランプ付スイッチをやっと、付けられました。
帰宅後やっていたので、時間が掛かってしまいました。
ばらせんから、キャプタイヤに代えたので、
幾分かさっぱりとしました。

ランプが付いたので、これで、押し間違えは減ると思います

有難うございました。(^^)/
TR   2016/03/10(Thu) 20:42 !email! No.829 !ico_edit!
Re: 確定申告ご苦労様です
TRさん、猛牛ロックさん、こんにちは。

TRさん、すっきりしましたね。ML4は、本当にうらやましい環境です。
重量物(エンジン等)の取り扱いのできるTRさん、ならでは、と思います。
我が家には、エンジンクレーンもないですし、350kgオーバーだと、取り扱いが難しいかなと思います。
過去に、フライスや旋盤買った時、せいぜい50kg前後が一人で取り扱いできる限界かなと思いました。
性能的には、重いほどいいですよね。せめて、ワンランク上の機械がほしいのですが。

最後は、宝くじ頼みです。(笑)
mabo   2016/03/11(Fri) 10:53 !email! No.830 !ico_edit!
サージ吸収 などなど 投稿者:TR 投稿日:2016/02/27(Sat) 09:58 No.799

maboさん、おはようございます。
確定申告事務も半ばになりました。
頑張りたいと思いますけど、初めての事務なので、
覚えることが多く大変です (;´・ω・)

以前話した、電磁接触器の主回路用のサージ吸収を付けました。
効果は大きかったです。
誤作動がなくなりました。
同軸にしたり、フェライトを装着しても、
誤作動が残っていました。
でも、サージ吸収を付けたら、無くなった感じです(^^♪

意外だったのが、サーボアンプの技術書には、電磁接触器の主回路にサージ吸収を設けよとはなっていませんでした。
念の為、サーボアンプには、サージ吸収を内蔵か聞いたら、、、、
無いそうです。
今まで使ってきて、よく壊れなかったかと思います(苦笑

今回、
富士電機の電磁接触器を初めて使いました。
三菱より、動作音が少ない感じです。
ただ、ターミナルの丸端子を固定する方法は、三菱のが簡単です。


写真は、以前教えて頂いた、秋月のSSRです。
今回は、しっかりとした、フィンと、専用のブラケットを作ってやりました。
使用後、触ってみると、大して熱くないので、
大丈夫な感じです。
やはり、余裕のSSRを買って良かったです。

Re: サージ吸収 などなど
TRさんへ

MCがらみでの感想を書いておきます。私も電気は素人なので確信を持っての発言ではありません。

某掲示板で
> ある時、ふと気が付くと、電磁接触器(以下「MC」)の開閉に伴い、マッハが、ESstopを起こしていました。

また、
> 何度か開閉しましたが、完璧と云えるかというと、そうでもないかもしれませんが、
> ほとんど、ESstopが発生しなくなった感じです。
と書かれています。
しかしながら、電磁接触器の開閉に伴って、E-STOPが動作するのは正しい反応だと思います。
逆にサーボが準備OKでもないのにE-STOPが出ない方がおかしい、というのが私の感想なのですが。
※実際は何をE-STOPとみなしてどう繋ぐかと言う事になりますから、これ自体はまぁどうでもいいのです。

「誤動作」という言葉が良く出てきますけど、
電磁接触器なんて、ただの安全のためのスイッチなので動作中とかは全く関係ないですよね?
殆ど動作前と動作後の処理です。
サーボアンプがアラーム信号や緊急停止信号を出していないのにMCが切れる、とか、何もしていないのに勝手に
MCが入る、というのは誤動作です。しかし、受けた信号に拠っての反応なら正しい動作です。


三菱さんからのサージ吸収ユニットの回答ですが、
> 電磁接触器でモータを開閉している場合,モータからのサージ抑制として
> 主回路サージ吸収器ユニットを適用する効果はあると考えます。

これは直接のモーター制御の事だと思います。しかし、サーボでは電磁接触器ではモーターは
開閉していません。電磁接触器ではなく、サーボアンプ(の出力部)が制御しています。
インバータやサーボアンプなどは「交流を直流に直し」、それを条件(速度)に合う波形に作り直してモーターなどに出力します。
交流を直流に直す作業はダイオードを使うので逆流はしません。つまり入力側には流れません。また、それ以前にサーボアンプの
出力部でサージは処理されるので中間の直流部にもサージは来ないと思います。
つまり、主回路のサージ吸収ユニットは本来必要ありません。ただし、MCのコイルの拠るものが主回路にも来るでしょうから
その分を消費させることは出来ます。(けれども、図に載っているようにサージキラーを付ければ十分だとおもいます。もしくはサージキラーの
値の調整)

> 今まで使ってきて、よく壊れなかったかと思います(苦笑
サージ吸収をサーボアンプ入力部に付けると言う事は、既にサージがサーボアンプを通過してきた後の事です。なのでサーボアンプの保護には
全くなりません。また、これは200Vに繋いでいるほか機器に影響が出ないようにするためのものだと思います。

ぶっちゃけて言うと、「配線を間違えていませんか?」と言う事です。普通、電磁接触器が入るのはスタート前の1回で
切るのも切削も全て終わった後に一度のみです。大抵の場合は使う日は1回の開閉があるだけです。
(途中でなんらかのエラーに対応して、遮断するのは正しい反応ですが、普通、エラーは起こりません)
なんとなく、TRさんのコメントを読むと何度も開閉しているように思えます。
配線方法自体はTRさんのNo.784の図の通りです。
猛牛ロック   2016/02/28(Sun) 10:39 !email! No.800 !ico_edit!
Re: サージ吸収 などなど
猛牛ロックさんへ
長文で全て理解していません。

三菱に聞く時
サーボアンプを使っての制御を条件にして聞きました。

Estopは、サーボアンプの電源が落ちた時発生するようにしてありますので、
MCの開閉で起こるのはおかしいのです。
TR   2016/02/28(Sun) 19:57 !email! No.801 !ico_edit!
Re: サージ吸収 などなど
> Estopは、サーボアンプの電源が落ちた時発生するようにしてありますので、
> MCの開閉で起こるのはおかしいのです

はい。それを言っているのです。MCはサーボアンプの元スイッチです。つまり、
MCオン=サーボアンプへの200Vが繋がる
MCオフ=サーボアンプへの200Vのラインの遮断
です。ふつうそれでE-STOPのなるのは当たり前なのです。
MCはサーボアンプの電源を落とすためのものです。
逆にそうなるように配線していないからそういうコメントになるのかな?と思った次第です。
猛牛ロック   2016/02/28(Sun) 21:01 !email! No.802 !ico_edit!
Re: サージ吸収 などなど
TRさん、猛牛ロックさん、こんばんは。

TRさん、確定申告引き続きお疲れ様でした。
SSRの取り付け盤(放熱板?)いいできですね。SSRは、それほど熱を持たない、ということなので、反対側、フィン状にはしなくてもいいんでしょうかね。

猛牛ロックさん、書き込みありがとうございます。
電気関係のこととなるといつも思うのですが、分からないことが多くて、資格があるなんて恥ずかしくていえないなあ、ということです。
勉強したことは、すっかり吹き飛んでしまってます。
mabo   2016/02/28(Sun) 21:06 !email! No.803 !ico_edit!
Re: サージ吸収 などなど
猛牛ロックさんへ

>逆にそうなるように配線していないからそういうコメントになるのかな?と思った次第です。

三菱の回答の通りだと思います。
MCの開閉時に発生するサージの影響により、ICが誤作動するとの返事でした。
で、面白いのが、
MCの開閉を連続してやると、またまた、Estopが発生します。
サージ吸収ユニットの仕組みが分かれば、良いのですが。
その辺は分かりません。
連続すると、吸収しきれなくなるんですかね。
抵抗とコンデンサの組み合わせです。


maboさん今晩は。
今日も確定申告事務で仕事でした。(;´・ω・)

趣味のフライスですが、新しいネタが思いつかずに
今日は、お休みでした(笑

何か、工作等、ネタがあるといいのですがね。
特に思いつきません。
写真です。
SSRの裏側にはフィンを設けました。

話しついでになりますが、
今まで、MCのON.OFFは、Omronのスイッチを使っていました。
ともに、非点灯です。
これは、失敗でした。
今回、点灯するスイッチ(On用)を買いました。
これで、間違えは減るでしょう(笑
http://www.fa.omron.co.jp/data_pdf/cat/a22_ds_j_8_8.pdf?id=1108
TR   2016/02/28(Sun) 21:18 !email! No.804 !ico_edit!
Re: サージ吸収 などなど
TRさん、こんばんは。

はやり、裏側には、フィンを切削ですね。これで、多少熱くなっても、OKでしょうかね。

それから、照光スイッチですね。これだと、動作が分かって、便利ですね。
でも、値段も、結構しますね。

私も、ぼちぼち確定申告始めます。といっても、所得だけの申告なので、小一時間程度で終わります。
今年は、故郷納税したので、還付金が多少増えるかも。
昨年の還付金は、確か、何十円単位でした。銀行の手数料の方がきっと多いです。
mabo   2016/03/01(Tue) 00:00 !email! No.805 !ico_edit!
Re: サージ吸収 などなど
>TRさん
サージの発生源(青線)は主にモーターとMCです。モーターのサージは赤線のダイオードで取ります。
MC用のサージ吸収は図のSK=サージキラーです。
私の見当ではそこにサージキラーを付けていないのではないか?と思っています。
以下、コイル用のサージキラーを付けているなら、私の勘違いですから、後半部は読まなくて結構です。

購入されたMC用の主回路用のサージキラーは、緑色の部分に付きます。勿論、付けて悪い事は無いのですが、
黄色のRA、非常停止、OFF、ONのSWを通過しますからそれらの部品の接点がやられます。
サージは危険ですから一番手前で抑えなければなりません。
(数10回で悪くなることはほとんどありませんけど、数100回で弱い所から症状が出てくる気がします)
本来付けるべきなのは、製品番号で言えば、SZ-Z5やSZ-Z2です。秋月のZNR(CNR07D151K)を2つ直列でも同じ効果だと思います。

私はCRタイプよりもバリスタタイプの方が好みなのですが、CRが付いているのが一般的です。
※直流はダイオードでほぼ完全なサージ対策になります。けれども交流はそれなりの部分が残ります。
猛牛ロック   2016/03/01(Tue) 22:16 !email! No.806 !ico_edit!
Re: サージ吸収 などなど
猛牛ロックさん、調べてくださって有難うございます。

MCの、操作コイル用のサージは、技術書に示されていたので、最初から付けていました。
MC主回路用のサージは、今回追加しました。
三菱に以下のとおり質問をしたら、回答がありました。

お問い合わせ
製品名:ACサーボ
形名:MR-J3-40A

質問タイトル:
今まで使ってみて

質問内容:
電磁接触器の主回路にサージ吸収を使ってきませんでしたが、サーボアンプ自
体は故障しませんでした。
本来は、サージ吸収は使うべきなのでしょうか?
技術書には、主回路用のサージ吸収には触れていないようですが。

回答
できるだけノイズは発生しない方がよいので、可能であれば、サージ吸収は
行っていただいた方がよいと思います。
また、技術資料に記載のデータラインフィルタをご使用いただくことにより、
ノイズ侵入を防止する効果を得られます。


以上の事から、フェライトを噛ませるくらいしか対策はないようです。
それと、信号線と、動力線の配置の見直しになります。



それと秋月のサージ吸収は、サージ電圧が低いと思います。
300〜400V位あった方が安全です。
というか、実験しています。
吹き飛びましたよ(苦笑
TR   2016/03/02(Wed) 05:31 !email! No.807 !ico_edit!
Re: サージ吸収 などなど
> MCの、操作コイル用のサージは、技術書に示されていたので、最初から付けていました。

付けていたのですね。失礼しました。
ACのサージはキッチリ無くすことは不可能です。多少の影響は残ります。難しい所ですね。

> それと秋月のサージ吸収は、サージ電圧が低いと思います。
> 300〜400V位あった方が安全です。

秋月のは150Vです。なので、書いたように2つ直列にして300Vにして使います。

因みにバリスタは双方向にダイオードをたくさん繋いだようなものです。
通常のダイオードは一つ0.6V程度以上で電気を流します。
それを250個を直列につなぎ、更に双方向にしたものが150Vのバリスタです。
勿論、ばらしてもダイオードが沢山入っているわけではありません。
そのような厚みや構成になっているという意味です。
ですから直列にすればバリスタ電圧が個数倍になります。
猛牛ロック   2016/03/02(Wed) 09:24 !email! No.808 !ico_edit!
Re: サージ吸収 などなど
TRさん、猛牛ロックさん、こんばんは。

TRさん、相変わらず、研究熱心だと思います。200Vの扱いは、私にはちょっと荷が重い分野です。
せいぜい、インバーターで、3相モーター動かしたり、テーブルソーを200Vで動かしたりしてる程度です。

猛牛ロックさん、こんばんは。猛牛ロックさんの書き込み、読みながら、勉強させていただいてます。
一つ質問なんですが、PCと周辺機器の起動の順番なんですが、どうなんでしょうか。
プリンターとかの周辺機器だと、それ程神経質にならなくてもいいのですが、CNCのように外部機器を制御するときも、

   外部機器→PC

の順番で、起動(電源を入れる)でいいのでしょうかね。逆に、電源を切る場合は、

   PC→外部機器

で、いいんでしょうか。昔(今も?)は、PCを中心に考えて、PCが誤動作しないようにしてたと思います。
mabo   2016/03/03(Thu) 00:04 !email! No.809 !ico_edit!
Re: サージ吸収 などなど
>TRさん
順次、電源を投入するシーケンスは図の通りです。
準備OKのRD信号をみて、次を付けます。1.5S〜2SおきにY、Zと続きます。
ESTOPもこのように繋ぐと準備が不十分な時は警告が出ます。(ESTOPのサーボモーター部のみです)
実配線は面倒くさいです。
某掲示板のPCによるリレー制御が上がっていましたけど、実際の操作は全然スマートでは無いです。
制御ソフトを起動させて、スタートアイコンをクリックし、終わったら終了させなければなりません。
原始的に、3つ並んだスイッチをポンポンポンと順次押す方が人によっては好むような気がします。
まぁ、配線は別として、一番手間がかからないのがこのシーケンスだと思います。
後は、マイコン仕様にするか、リレータイマーをつけるか、というところですね。

私はRD信号のESTOPへの利用を考えたのでこのようにしたのですが、それを考慮せずにマイコンやリレータイマーで
時間をずらしてオンさせるだけなら、多少、回路が単純になります。
また、DC24V仕様のMCならコイルサージはかなり少なくなりますし、そもそも、絶縁になりますから、ほぼコイルサージの不安はなくなります。
突入電流の問題+サージ+ノイズならDC24VのMC仕様+マイコンが一番効果がありそうな気がしますけど、既に出来上がっている環境ですし、
それを変えてまでやるほど効果(価値)があるかは???です。


>MABOさん
起動の順番は最近はあまり考えなくなりました。
以前は起動時に認識されていないと後からでは使えないものもありましたよね。
CNCではクワトロのみなのですが、大抵、いつも付いています。また、PCも同様に付けています(スリープ)
考えてみれば、停止時には電流を弱めているとはいえ、常に励磁している状態ですね。
PCは以前立ちあがらなかった事があって、それ以来、あまり切らない事にしています。クワトロは単に切る習慣が
付いていないだけです。切った方が良いですね。
順番ですが、全く考えていないですけど、両方切った状態からCNCを先に付けることはまずないです。
それは単にクワトロの電源に目が行っていないだけです。MACHを起動させてから、リセットしても駄目だった時に
「あ、そういえば電源切っていたな」と思い出して付ける感じです。
電源をいれれば、すぐにリセットで収まります。
私の場合は特にどちらでも構わないようですけど、環境しだいでしょうね。
大抵の場合はCNCを先の方が良いような気がしますけど、この間のアクティブローだとかの問題も絡むと
逆にMACHからの信号が出た状態でCNC→オンの方が良い人もいるのでしょうね。
猛牛ロック   2016/03/03(Thu) 09:05 !email! No.810 !ico_edit!
Re: サージ吸収 などなど
猛牛ロックさん、maboさん、こんばんは。 
話題からそれる事をお許しください。

Omronのライト付押しボタンスイッチ(A22L-TG-T2-10M)⇓
http://www.fa.omron.co.jp/data_pdf/cat/a22_ds_j_8_8.pdf?id=1108

上記を求めました。

写真のように結線しましたが、点灯しません。
単純な事で済みませんが、結線方法を教えて下さい
<(_ _)>
TR   2016/03/03(Thu) 21:10 !email! No.811 !ico_edit!
Re: サージ吸収 などなど
ONスイッチでしたよね。
MC(コイル)やSKと並べて(並列)、使ってください。
サージが気になるなら、メイン出力のMC-サーボアンプ間のL1、L2です。
猛牛ロック   2016/03/03(Thu) 22:47 !email! No.812 !ico_edit!
Re: サージ吸収 などなど
ふと、思いつきました。
マニュアルに
突入電流の主回路電源は「30A(10msで約5Aに減衰) 」となっています
それなら、単にMCが3つあれば簡単にいけます。(つまりあと2つです)
例えば、富士のMC-03やMC-05は「コイルONしてから主接点ONになるまで:9〜20」(ms) に
なっています。おおよそ、早いMCでもオンまでに10ms程度かかります。
なので、大抵のMCは図の様に結線すれば、X,Y,Zの順に僅かながら時間差でオンされます。
猛牛ロック   2016/03/04(Fri) 00:11 !email! No.813 !ico_edit!
Re: サージ吸収 などなど
Aの区間に設置すればよいのでしょうか?
TR   2016/03/04(Fri) 06:29 !email! No.815 !ico_edit!
Re: サージ吸収 などなど
はい。大抵の人はそうすると思います。
MCが確実に動作しているか確認したい人はMC(主回路)の下流から取ります。
基本的には単なる200Vのランプですからどこに仕掛けるかはユーザー次第です。
今回はオンランプなのでMCの動作と連動する箇所につけてください。
猛牛ロック   2016/03/04(Fri) 09:11 !email! No.816 !ico_edit!
Re: サージ吸収 などなど
猛牛ロックさん、ありがとうございます。

No811は、電気の性質からして、多分駄目だろうと思っていましたが、他に、方法が分からなかったので、駄目もとでやってみた次第です。

写真は、MCの操作コイルに見立てたリレーの操作コイルを使って実験しました。
LEDが点灯したので、明日は、実装でテストしてみます。
多分、成功すると思います。
TR   2016/03/04(Fri) 18:59 !email! No.817 !ico_edit!
Re: サージ吸収 などなど
maboさん、猛牛ロックさん、
おはようございます。

実験成功です。
MC ONの点灯表示しました。

余談ですが、
ネットから、マイナンバーの申請をしました。
1月たっても来ないそうです。
今時遅い(苦笑
TR   2016/03/05(Sat) 10:12 !email! No.818 !ico_edit!
Re: サージ吸収 などなど
TRさん、猛牛ロックさん、こんばんは。

猛牛ロックさん、資料いろいろありがとうございます。
解読してますが、ちょっと、難しいです。でも、本当に勉強になります。

TRさん、実験、成功してよかったですね。

>ネットから、マイナンバーの申請をしました。
>1月たっても来ないそうです。
>今時遅い(苦笑
なんのなんの、私も、まだです。申請してしまうと住基カードが使えなくなるので、
イータックスの申請後にマイナンバーの申請します。
チャチャと終わりにしようと思ったら、国民健康保険の保険額が分かりません。
領収書をなくしてしまいました。月曜に市役所に行ってきます。

今年は、ちょっとだけ還付金が増えます。故郷納税のおかげですね。
mabo   2016/03/05(Sat) 23:37 !email! No.819 !ico_edit!
Re: サージ吸収 などなど
maboさん、レス有難う。

>イータックスの申請後にマイナンバーの申請します。

そうですよね。
既に、e tax登録されているからですね。

>チャチャと終わりにしようと思ったら、国民健康保険の保険額が分かりません。
領収書をなくしてしまいました。月曜に市役所に行ってきます。

今時は、電話でも即教えてくれると思いますよ。
それと、
申告会場での申告の場合、申告担当者は、PCで国保料も確認するので、
領収書は不要です。
税務署も、個人に対しては、悪質じゃなければ、通常、
申告後、後日、お問い合わせはないと思います。


>今年は、ちょっとだけ還付金が増えます。故郷納税のおかげですね。

良く分かりませんが、住民税も減額されるかと思います。
でも、よく寄付金をしましたね!!
大したものです。


それと、話しついでですが、
医療費は、10万円が控除額と、見込んでいる人が多いいです。
現在は、医療費は、拡大の一途です。
良く調べた方が得ですよ。
介護費も医療控除に入るし。
※ 追記
国保は証拠書類不要と記憶しています。国年は要る。


MCの方ですが、
MC ONモニター等のLEDを付けるのに伴って、
操作盤に引き込んでいた、線は、ばらせんでした。
ばらせんとはよくいったもので、
バラバラでした(笑

今回ついでに多芯線に買えます。
すっきりするはずです。
TR   2016/03/06(Sun) 06:00 !email! No.820 !ico_edit!
電磁接触器について 投稿者:TR 投稿日:2016/02/20(Sat) 17:51 No.784

みなさんこんばんは、
今まで、電磁接触器の操作コイルの電圧は、サーボアンプと同じ単相AC200Vでした。
理由は、写真(技術書抜粋)を参考にしたからです。

電磁接触器を買い替えようと思い、探していたら、下の商品がありました。
http://item.rakuten.co.jp/faubon/10004084/
この商品の場合、操作コイルは、DC24Vにより励磁し、主回路の単相AC200Vを開閉できるのでしょうか?
宜しくお願いします。

追記
操作コイルの電源は、主回路の電源から直接取り込めるのでしょうか?

Re: 電磁接触器について
> 操作コイルは、DC24Vにより励磁し、主回路の単相AC200Vを開閉できるのでしょうか?
出来ます。

> 操作コイルの電源は、主回路の電源から直接取り込めるのでしょうか?
AC200Vを繋ぐという意味ですよね? それは駄目です。AC200Vを直接つなぐならコイルはAC200V用を使ってください。

私見ですが、もっと下のクラスでも充分なのではないかと思います。
猛牛ロック   2016/02/20(Sat) 20:14 !email! No.785 !ico_edit!
Re: 電磁接触器について
猛牛ロックさん、レス有難う。


>AC200Vを繋ぐという意味ですよね? それは駄目です。AC200Vを直接つなぐならコイルはAC200V用を使ってください。

そうでしたか、それでは、使えません。
サーボアンプは、繋ぎ方の順番まで、
事細かく指示されています。

追記
サーボアンプとサーボモーターを各3台、それだけで、
5.5A*3台=16.5A
TR   2016/02/20(Sat) 20:30 !email! No.786 !ico_edit!
Re: 電磁接触器について
3つのモーターの元になっていたのですね。ただ、400Wモータが3台ならば、モーター自体は1.2kwなのでそこまでは必要ないように思います。
たぶん、シリーズで最小(200Vで11A)のものでいいのではないかと思います。
400Wモーター1台で5.5A=1100W使う事はありえないと思います。見方を間違えているのではないでしょうか?
勿論、大きいに越した事は無いですけど。

それはそうと、何故今、電磁接触器を購入なのですか?調子が悪くなったのでしょうか?

そういえば、図の赤線が自己保持ですよ。数日前
> コツを掴めば簡単です。利用する補助端子とオンスイッチを並列に付けるだけです。
と書きましたけど、図でONとMCが並列になっている所です。ONスイッチを離してもMCのほうのスイッチが入ったままになり保持されます。
猛牛ロック   2016/02/21(Sun) 07:16 !email! No.787 !ico_edit!
Re: 電磁接触器について
猛牛ロックさんおはようございます。
1台だけでも10A指定です。
TR   2016/02/21(Sun) 08:15 !email! No.788 !ico_edit!
Re: 電磁接触器について
> 1台だけでも10A指定です。
電磁接触器は通常、11Aが最小です。小さいモーターは大抵、それが推奨接触器として載っています。

ところで、以前の電磁接触器は?
猛牛ロック   2016/02/21(Sun) 10:05 !email! No.789 !ico_edit!
Re: 電磁接触器について
三菱の20Aです。
TR   2016/02/21(Sun) 12:26 !email! No.790 !ico_edit!
Re: 電磁接触器について
いやいや、そういう事では無くて、なんで今更DC24Vにしようとしたり、買い替えようとおもったのか、
と言う事です。
接点の調子が悪くなったのでしょうか?
普通10年以上は持ちますよ。開閉頻度によるでしょうけど。
接点に疑問(不安)があるなら、大きいのが良いかもしれませんね。
猛牛ロック   2016/02/21(Sun) 13:26 !email! No.791 !ico_edit!
Re: 電磁接触器について
理由は、操作コイルの自己保持回路用スイッチを操作盤に設けているので、それに伴い、
AC200Vが、操作盤に入ってくるので、危ないと思っていました。
24V電源を別途設けずに、200Vから電源を直接取れれば、操作盤内にDC24Vが来るだけなので、
安全と思いました。

追記
その他の理由として、
現状の主回路用のサージ吸収ユニットが生産終了になっているからです。
TR   2016/02/21(Sun) 15:36 !email! No.792 !ico_edit!
Re: 電磁接触器について
続けて失礼します。

本日本格的に、間欠ブロワーを使いました。
作品は、秋月のソリッドステートリレー用の冷却フィンです。
大きさは、計算するのが面倒でしたので、適当です。

過日報告した、ハンドルにより、気軽にノズルを上下にスイング
して簡単に固定できるようにしました。
吹き出し口の高さをある程度変えられると作業に便利です。
TR   2016/02/21(Sun) 15:49 !email! No.793 !ico_edit!
Re: 電磁接触器について
TRさん、猛牛ロックさん、こんばんは。

自己保持回路は、全くの苦手で、頭いたくなります。

TRさん、

>24V電源を別途設けずに、200Vから電源を直接取れば、

これは、200Vを24Vに落として使うという意味ですか?

操作盤、24V等で統一できれば、設置や操作的には、安心でしょうね。
mabo   2016/02/21(Sun) 22:34 !email! No.794 !ico_edit!
Re: 電磁接触器について
maboさん、レス有難う。

>これは、200Vを24Vに落として使うという意味ですか?

No784に写真を付けてあるように、
自己保持回路の取り出し位置が指定されています。
なので、電磁接触内で、24Vに落とせる仕掛けがあるのであれば、
No784のとおりに使えるかと思っていました。

でも、外部の24Vで操作コイルを励磁しなければだめみたいですね
そうすると、立ち上がりや立下りの時間の関係で問題が出そうなので、
使えません。
TR   2016/02/22(Mon) 06:13 !email! No.795 !ico_edit!
Re: 電磁接触器について
maboさん、猛牛ロックさん、教えて欲しいことがあります。

フライスで厚板から、くりぬいて行って、最後に、ほんの少し残しておいて、
テーブルから、作品を外した後、ほんの少し残った部分を外す時どんな風にして外しますか?
鉄鋸で、切り落とすのでしょうか?
TR   2016/02/22(Mon) 06:25 !email! No.796 !ico_edit!
Re: 電磁接触器について
TRさん、猛牛ロックさん、こんにちは。

>ほんの少し残った部分を外す時どんな風にして外しますか?

すみません、加工実績がないので、いい方法は分からないのですが、アルミの素材の時は、ニッパーで外したりしました。
それから、もう、使用中だと思いますが、ノガのバリ取りで整えたりしてます。
これ、アルミだけかと思いましたが、鉄素材もOKでした。
mabo   2016/02/22(Mon) 11:50 !email! No.797 !ico_edit!
Re: 電磁接触器について
ワークの切り取りの件は、私は鉄系で厚いものはあまりそういった切削はしません。
下をあけるか、捨て板を敷くかして切り離しちゃいますね。
そもそも、囲った中に作品を作ることがあまりありません。
逆に、単に切り取り線(ガイド)として、適当な深さで削ることはあります。
その時はコンターで切りますけど、単純な短冊状の時です。

樹脂や薄板(0.2o〜1.0o程度の真鍮等)は残すことがありますけど、残す部分はかなり薄くするので
手で取るだけですね。あとはハサミやリューターで整えます。
あまり参考にはならないですね。
猛牛ロック   2016/02/22(Mon) 12:41 !email! No.798 !ico_edit!
自己保持回路 投稿者:TR 投稿日:2016/02/18(Thu) 19:40 No.779

maboさん、猛牛ロックさん、こんばんは。
確定申告の関係で、クタクタになっていました。
ちょっと、覗くと、新しいネタです!

表の記事はかっこイー!
なんですか?

Re: 自己保持回路
マシンは通常、通電の際にいきなり動かないように自己保持回路にして
モーメンタリ―の押ボタンスイッチを用います。
押ボタンなので、離したら切れるのですが、リレーを利用して副回路
を作り、自己保持させます。

問題です。
図を結線して自己保持回路を作りなさい。(新人用です)
猛牛ロック   2016/02/18(Thu) 20:01 !email! No.780 !ico_edit!
Re: 自己保持回路
TRさん、猛牛ロックさんこんばんは。

TRさん、確定申告お疲れ様です。仕事がらみだと、作製だけでも大変でしょうね。
私は、必要ないのですが、所得だけ、申告して、雀の涙ほどの還付金を受け取っています。
もっぱらEタックスで、やってます。イータックスだと私の場合、領収書等の添付も必要ないようなので・・・・・。

表は記事は、4年ぐらい前に作った、半田ごてタイマーです。
当初の予定では、切り忘れると、自分自身で電源も切る予定でしたが、うまくいかなくて、半田ごてだけを切るようになってます。
それで、今回、一番最初の目標のように、しようと思います。
このタイマーは、キットで遊ぼうの延長で、627Aを使った、プログラムで動きます。
あんまり見られると恥ずかしいのですが、2012-08-21のブログの記事にプログラムものせています。


猛牛ロックさん、こんばんは。問題ありがとうございます。
でも、これ、だめです。頭いたくなります。(笑)
前スレの続きですが、私が見たHPの方は、5Vの別電源(乾電池)を使って、自己保持のきっかけにしてるようです。

http://kanto.me/simomura/2_page_24.htm

やはり、諸先輩方は、すごいです。
mabo   2016/02/18(Thu) 21:54 !email! No.781 !ico_edit!
Re: 自己保持回路
私の感覚からするとW電源よりもMABOさんの回路の方が優れているように見えます。
ただ、100Vを長距離引っ張るよりも5Vの線の方が安心感がありますね。
でも近距離なら、やはりSSRのAC側からスイッチを引っ張った方が良いですね。

> でも、これ、だめです。頭いたくなります。(笑)
コツを掴めば簡単です。利用する補助端子とオンスイッチを並列に付けるだけです。
でも実配線は順番が色々だったり、他の線も入り組んでいて難しいですね。
回路図ならなんてことは無いです
猛牛ロック   2016/02/18(Thu) 22:30 !email! No.782 !ico_edit!
Re: 自己保持回路
例の液晶のタッチパッドは思いの外、手こずりました。
配線図に載っていない&基板にも記載が無い為、ちょっと半信半疑で試したのですが、
反応する時もあれば、しないときもあり、位置情報は全く違うような感じで???でした。
ただ、反応する時は押した際に位置情報が返ってきて、離すと終わります。
なのでまずは配線はされていると確信しました。
結局、配線されている4ピンは確定して、制御可能な状態になりました。
現在はサンプルプログラムのペイント(https://i.ytimg.com/vi/ipvepLgWo6Q/maxresdefault.jpg)をすると
XYが逆になります(中央の点対称)。あとちょっと書き換えれば正常になると思います。
液晶とタッチパッドは同じピンを使っています。切り替えながらよくペイントソフトなんか作れるな、と感心しました。
みて、勉強しなければなりません。
aitendoの商品も実は配線されていて使えるらしいです。在庫切れですが。
猛牛ロック   2016/02/19(Fri) 12:43 !email! No.783 !ico_edit!
ハンドル作りました 投稿者:TR 投稿日:2016/02/11(Thu) 18:03 No.759

猛牛ロックさん、改良プログラム有難うございます。
複雑になりましたね!
自分的には、大変だったと思います。

早速、キットで遊ぼうの基板でテストしました。
この基板でも確認はできます。
RA3が点滅しませんでした。

自分の方ですが、早速、幼稚な改良プログラムで、
ハンドルを作ってみました。
ブロワより先にONし、ブロワがOFF後、バキュームがOFFします。
きっちりと、切子を吸い込めました。
十分でした。
とりあえず、これで、行こうかと思います。

しかし、こんな複雑な形状でも、きっちりと仕事をしてくれます!


PS
ウエイトを付けなかった理由を教えて頂けませんか?

Re: ハンドル作りました
> ウエイトを付けなかった理由を教えて頂けませんか?

一般的な事で言うと、ウェイトのDELAY関数や、自前のものも基本的に「何もしない」という命令です。
その命令を何万回?も繰り返すことで時間を作っています。
なので基本的に1つのものを制御するなら簡単で便利かと思います。
でも、パソコンでも、同じ「ある画面」でも「フリーズして動かない画面」と「アイドル状態の画面」とでは状況が
異なります。
表面的には同じでも、出来るだけ自由な空間(PCでいえば、system idle process)を確保しておきたいからです。

今回の場合は、もともと、割り込み無しのプログラムですし、delay関数を付けるだけの方が見通しがいいですし、
それが充分な動作をするなら、そちらの方が良いように思います。

けれども、+αであらたなものを付け加える際にはそれ(delay)が足かせになりがちです。
delayは全ての制御に関わってくるからです。
一方、タイマーで管理すると、好きなだけ、制御用のストップウォッチをつくって、その時間ごとに動作させることが出来ます。
つまり、2つ以上の時間軸を持つ制御では必ず?タイマーの活用が必要になります。
なので、私自身、ほとんどdelayは使いません。LCDの初期化の時とか、通信のタイミングなんかで必要なら使いますけど、
人が感じるようなdelayは実践では無いです。
(後はパーツの動作確認とかですかね)

でも、使うのが悪いと言う事ではありません。私も最初は使っていました。でも、どうしても、それでは前に進めなくて、
タイマーを使うのを覚えたのです。LEDを使った単純?なメッセージ(サイン)でもdelayでは難しいです。

動作の順番はvacuumオン→burowaオン、burowaオフ→vacuumオフの順なのですね。
まぁ、今の所原因不明なので手も出ません。どこが悪いのかさっぱりです(/ω\)
原因が解ったら書き換えてみますけど、、、どうなるやら。
猛牛ロック   2016/02/11(Thu) 21:28 !email! No.760 !ico_edit!
Re: ハンドル作りました
猛牛ロックさん、レス有難うございます。
きっと、猛牛ロックさんの言われるとおりと思います。
今後も何かあったら、PICを活用します。

maboさんへ、本ですが、ご紹介くださった品にしました。
何冊も買うかもしれないです(笑
TR   2016/02/11(Thu) 21:44 !email! No.761 !ico_edit!
Re: ハンドル作りました
TRさん、猛牛ロックさん、こんばんは。

TRさん、本は、すみません。なかなかご紹介できる本は、思いつきません。
どちらになさったのでしょうか。活用ガイドブックでしょうか。
この本は、分厚くて、内容豊富ですが、だいたいのプログラムがそのままコンパイルできると思います。
新しい表記の書き方も参考になると思います。

後閑さんの本は、私は、好きです。

猛牛ロックさん、書き込みありがとうございます。いつもながら、勉強になります。
mabo   2016/02/11(Thu) 22:27 !email! No.762 !ico_edit!
Re: ハンドル作りました
全く関係ない話題ですがヤフーニュースのトップで
「<攻殻機動隊>1/2サイズ「タチコマ」を開発 実装も視野」
http://headlines.yahoo.co.jp/hl?a=20160211-00000013-mantan-ent
が上がっていました。
「タチコマの人」と言えば、私のAVRの師匠の剣菱P氏です。
既に作っているじゃないですか。(まだ製作中)
私は攻殻機動隊はしらないし、タチコマも同様です。
でも師匠の「タチコマ1/2をつくってみる」シリーズはちらちら見ます。
勿論、私が勉強した「零からの電子工作」マイコン編もお薦めです。
(でも正確にはマイコン編というよりAVR編です)
ほかにもPIC亜種の「PICAXEをつかってみる」編もあります。
猛牛ロック   2016/02/12(Fri) 01:09 !email! No.763 !ico_edit!
Re: ハンドル作りました
maboさん、猛牛ロックさん、こんばんは。

データーシートの件
16F88を買いました。
http://akizukidenshi.com/catalog/g/gI-00567/

自分もデータシートを見ようと思って、開くと、、、
やはり、英語ばかりでした。
グーグルで翻訳したら、読み易そうに翻訳されました。
&#8659;
1.0デバイスの概要.......................................................................................................................................................................... 5
2.0メモリ構成................................................................................................................................................................. 11
3.0データEEPROMとフラッシュプログラムMemory.............................................................................................................................. 27
4.0発振器の構成............................................................................................................................................................ 35
5.0 I / Oポート..................................................................................................................................................................................... 51
6.0タイマ0モジュール........................................................................................................................................................................... 67
7.0タイマ1モジュール........................................................................................................................................................................... 71
8.0タイマ2モジュール........................................................................................................................................................................... 79
9.0キャプチャ/コンペア/ PWM(CCP)モジュール..................................................................................................................................... 81
10.0同期シリアルポート(SSP)モジュール..................................................................................................................................... 87
11.0アドレス可能ユニバーサル同期非同期レシーバトランスミッタ(AUSART)........................................ ..................... 97
12.0アナログ - デジタル変換器(A / D) Module................................................................................................................................ 113
13.0コンパレータModule.................................................................................................................................................................. 121
14.0コンパレータ電圧リファレンスModule................................................................................................................................... 127
の15.0特集CPU.................................................................................................................................................... 129
16.0命令セットの概要.......................................................................................................................................................... 149
17.0開発Support............................................................................................................................................................... 157
18.0電気的特性.......................................................................................................................................................... 163
19.0 DCおよびAC特性のグラフとTables....................................................................................................................... 193
20.0パッケージングInformation.............................................................................................................................................................. 207
付録A:改訂History............................................................................................................................................................. 213
付録B:デバイスDifferences......................................................................................................................................................... 213
インデックス.................................................................................................................................................................................................. 215
マイクロチップ社のウェブサイト..................................................................................................................................................................... 223
顧客変更通知サービス.............................................................................................................................................. 223
顧客サポート.............................................................................................................................................................................. 223
リーダーの応答.............................................................................................................................................................................. 224
PIC16F87 / 88製品識別システム

翻訳機能を使うしかない感じなのですが、
他に良い方法をご存知でしょうか?

例えば、個人等のサイト
できたら、16F88がベストですが。
TR   2016/02/12(Fri) 21:23 !email! No.764 !ico_edit!
Re: ハンドル作りました
TRさん、猛牛ロックさん、こんばんは。

16F88は、キットで遊ぼうの基板で使えるので便利だと思います。
石的には、きっと、最新のものには、劣るのかもしれませんが、AD変換等も入ってるので、627Aより多少高機能だと思います。
私が、参考にしたHPは、

http://physics.cocolog-nifty.com/weblog/

で、ここに比較的多くのサンプル等も載ってます。LCDの表示の方法や、AD変換等、ここの記事参考にして、勉強しました。

16F88でたぐると、多分、結構沢山のHP引っかかると思います。
mabo   2016/02/12(Fri) 22:06 !email! No.765 !ico_edit!
Re: ハンドル作りました
間違いと思われる箇所を見つけました。けれども

> vacuum=On;__delay_ms(300);burowa=On;
> Second(DousaTime);
> burowa=Off;__delay_ms(500);vacuum=Off;
> Second(KanketuTime);

TRさんのをみると、こちらの方が全然良いプログラムですね。
なので、書き換えてUPはしません。今回の原因は↓に書いておきます。

> TIMEの数値が小さい範囲は、ブロワとバキュームが同期します。

単に設定値が小さすぎただけで気が付きにくかっただけでしょう。
設定値がこの程度の小さな値ならこのままでいいのですが、大きくするようなら
Second関数を利用した方が良いかもしれません。
つまり、__delay_ms(300);→→→Second(30);です。(切り替え時の反応が早くなる筈です)


> 16F88を買いました。
PICを代表するスタンダードなマイコンです。まぁ、旬はすぎていますけど。
627Aからだと、重要な順?に、ADCが付いた、フラッシュメモリが増えた、クロックが速くなった、SPI、I2Cが付いた、
といったところです。かなり標準的なマイコンになっています。
(あとは外部割り込みをもう少しつけてほしいのと、内部プルアップを個別に設定出来れば良いのですけど)

*****************************************

間違えと思われるところはタイマー割り込みで
> if(v_on_time>=(DousaTime+KanketuTime)) v_on_time=(DousaTime+KanketuTime)-1;
> if(v_off_time>=(DousaTime+KanketuTime)) v_off_time=(DousaTime+KanketuTime)-1;
をしたのですが、これが元凶です。もう一つにはDousaTime、KanketuTimeの初期設定していない事です。
つまり、DousaTime、KanketuTimeが0の状態(数字を入れる前)でタイマー割り込みに入ってしまった為に
v_on_timeとv_off_timeが0XFF=65535になってしまい、その後・・・と言う事だと思います。
それでも、else v_on_time=set_time;(これは必須でした)を付けておけば、ほぼ、正常動作になったのかとは思いますけど。
あと、想定動作の違い、些細なミスも一か所ありました。
猛牛ロック   2016/02/13(Sat) 10:51 !email! No.766 !ico_edit!
Re: ハンドル作りました
maboさん、こんばんは。

後閑哲也さんの本が来ました。
http://www.amazon.co.jp/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE-PIC16F1%E3%83%95%E3%82%A1%E3%83%9F%E3%83%AA%E6%B4%BB%E7%94%A8%E3%82%AC%E3%82%A4%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E5%BE%8C%E9%96%91-%E5%93%B2%E4%B9%9F/dp/4774156469/ref=sr_1_1?ie=UTF8&qid=1455014619&sr=8-1&keywords=%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%80%80PIC%EF%BC%91%EF%BC%96F%EF%BC%91%E3%83%95%E3%82%A1%E3%83%9F%E3%83%AA%E3%80%80

興味があったので、さっそく読み始めました。
自分のレベルにあっているの感じで、分かりやすいです。
有難うございました。


猛牛ロックさんへ、
プログラムの見直しご苦労様でした。
>つまり、__delay_ms(300);→→→Second(30);です。

いや〜、流石です。
本で探してみます。
しかし、色々とご存知ですね!
自分も、なんとかプログラムを組めるようになりたいです。
TR   2016/02/13(Sat) 18:19 !email! No.767 !ico_edit!
Re: ハンドル作りました
>TRさんへ

> 本で探してみます。
> しかし、色々とご存知ですね!
> 自分も、なんとかプログラムを組めるようになりたいです。

本で探しても、自分で作った関数は載っていません。
Second関数は、「__delay_ms関数を○○回行う」と「その間に入力(変更)があったら、終わる」を組み合わせたものです。
なので、ほとんど__delay_ms(300)と変わりませんけど、後半部の「変更に伴う終了」がある分、つまみをいじった時に、
反応が良くなると思います。

プログラムは経験するしかないですね。勿論、本を読むことも重要ですけど。
学習キット(の基板)は今の段階では、良い教材です。スイッチ4つとLED8つが繋がっているんですよね?
例えば、
1.二進数で1秒おきにインクリメントさせる
2.1秒おきに一つずつ点灯を増やしていき、次の8秒で左右どちらかから、消していく。
3.1秒おきに片側から点灯させたものをずらしていく。(常に1つだけ点灯)
4.3の逆で1つだけ消灯でそれをスクロール。
5.両側から1つずつ付けていき、交差したら消していく。
6.4つの入力ボタンを利用して、上記の機能を割り当てる
7.4つのボタンを時、分、秒、0.01秒として、時計を作る
8.8つのLEDの点滅具合で時、分、秒を表現する
9.ラーメンタイマー(ストップウォッチ)を作って、ブザーで知らせる。

など、テキストに既にある例題かも知れませんけど、自習は幾らでも出来ます。
小さなプログラムでもひとつずつ、身につける(作れるようになる)ことが重要です。
テキストを読んでも「書いて、間違いを探して、修正して」、を繰り返さないと上達しません。
「書いて、間違いを探して、修正して」をするために、テキストを読んでください。

私は本も買わないし、全然「色々とご存知」でもないと思います。
何か作る時でも、大抵、「なんとか動くようになったな」という感じで、なんというか、そんな余裕は無いです。
特にPICはまだ理解が不十分です。割り込みのタイミングやフラグ操作、2重割り込みなど、判らないままやっています。
多分、トラブルが起きた際、本格的に調べるのだと思います。
猛牛ロック   2016/02/13(Sat) 22:31 !email! No.768 !ico_edit!
Re: ハンドル作りました
猛牛ロックさん、レス有難う。
766にある以下の点のついて教えて下さい。

>Second関数を利用した方が良いかもしれません。
つまり、__delay_ms(300);→→→Second(30);です。(切り替え時の反応が早くなる筈です)


Second関数を利用ですか?
難しそうです。
Dousatime とKanketutaimeで、一度つかっていますよね、
それを、単に、__delay_ms(300);→→→Second(30);と置き換えてもよいのですか?
TR   2016/02/14(Sun) 08:35 !email! No.769 !ico_edit!
Re: ハンドル作りました
Second関数は単に
「つまみ等の変化があれば終了」
「10msウェイト」
を指定回数(引数)繰り返す命令です。それ以外の事はしていません
returnは気にしなくても良いです。

「t=Second(30);」の様な戻り値を受ける形にしなくても、「Second(30);」だけでも大丈夫です。
なので、__delay_ms(300)を単にSecond(30)にするだけです。

因みに、__delay_msや__delay_usの引数は定数じゃなければ駄目だったと思います。
 なので__delay_ms(t);のような変数の表現は駄目です。
猛牛ロック   2016/02/14(Sun) 17:50 !email! No.770 !ico_edit!
Re: ハンドル作りました
猛牛ロックさん、レス有難う。

改良後のプログラムです。
else if(MODE==2||(MODE==3&&MACH_sig==1)){ //間欠
PORTB_save=PORTB;
DousaTime=TIME[PORTB_save&0b1111];
KanketuTime=TIME[PORTB_save>>4];
vacuum=On;Second(70);burowa=On;
change=Second(DousaTime); //動作時間分ウェイト
if(change==0){
burowa=Off;Second(50);vacuum=Off;
change=Second(KanketuTime); //間欠時間分ウェイト

ここの中にある、Secand関数を呼び出しての使い方!!
DousaTimeとKanketuTimeでも使っているので、ビクビクでした。
自分では、
プログラムは並んでいる順にした方向へ実施するの減速があることから、
burowa=Off;Second(50);vacuum=Off;を処理した後、
続けて
change=Second(DousaTime); //動作時間分ウェイト
の処理をするのでしょうか?
TR   2016/02/14(Sun) 19:48 !email! No.771 !ico_edit!
Re: ハンドル作りました
ただのコピペ間違いかも知れませんけど

> burowa=Off;Second(50);vacuum=Off;を処理した後、
は下から2行目ですから、次の命令は
> change=Second(DousaTime); //動作時間分ウェイト
ではなく、
> change=Second(KanketuTime); //間欠時間分ウェイト
と、最後の行に行きます

因みに、「burowa=Off;Second(50);vacuum=Off;」と1行でかいても
順番に実行されるだけで同時に実行されるわけではありません。
ソース上は行替えして、見やすくする方が良いです。
猛牛ロック   2016/02/15(Mon) 09:15 !email! No.772 !ico_edit!
Re: ハンドル作りました
TRさん、猛牛ロックさん、こんにちは。

遅くなりましたが、TRさん作製のハンドル、なかなかですね。
これも、CNCの威力ですね。

猛牛ロックさん、タチコマっていうのは、アンドロイドの部分?ですか。
写真みても、ちょっと、?でした。
mabo   2016/02/15(Mon) 14:09 !email! No.773 !ico_edit!
Re: ハンドル作りました
蜘蛛のような形の思考型戦車らしいです。実際、どのような動きをするかは判りません。
剣菱氏は勿論AVR習得の過程で知ったのですが、電気回路のみならず、3Dプリンタなどを駆使して
どんどん作っているようです。多分今年中には完成するものと思われます。
現在、タチコマのしたをくぐりながら部屋の出入りをしているようです。
多分、造形だけでなく、ある程度、動くようにすると思います。(電気が専門でしょうから)
本物(アニメ)は2足歩行もするようですね。完成が待ち遠しいです。
猛牛ロック   2016/02/15(Mon) 15:56 !email! No.774 !ico_edit!
Re: ハンドル作りました
タイマー割り込みを使ったプログラムですが、先日書いたように、そのまま適用しても見通しが悪く、
全然、良くないプログラムになりました。
原因の多くは、それまでタイマー割り込み無しのプログラムを作ろうとしていた所にタイマー割り込みを
組み入れたからだと思います。
何となく、気になっていたので、いつも作るように(今までとは逆に)タイマー割り込みのみの
プログラムで書き換えてみました。
差し替える必要は全くありません。見通しも悪くないプログラムだと思います。

間欠時の動作はTRさんの書き込みに倣って、
「vacuumオン」遅延時間0.7s「burowaオン」動作時間「burowaオフ」遅延時間0.5s「vacuumオフ」
の繰り返しです。
猛牛ロック   2016/02/18(Thu) 12:07 !email! No.775 !ico_edit!
Re: ハンドル作りました
> MABOさん
blogの回路についてですけど、「追加」という事を考慮しないで、普通に作るなら添付図のような感じです。
・私の知っているSSRは全て、入力でLEDを光らせています。なのでフォトカプラは使う必要はありません。(2重になります)
・独自の制御をしない場合は(同時に切るだけなら)SSRは一つで出来ます。(アダプタと並列にとるだけ)
追記 そういえば、切るスイッチがありませんでしたね。ヒューズ-ボタンスイッチ間にB接点のスイッチを入れてください。

最近入手した2.4インチのLCDで、ちょっと遊んでいます。
http://www.aitendo.com/product/10342と同種の製品です。
何が良いって、配線をしないで差し込むだけなのが素晴らしいですね。
「arduinoに液晶を挿す」、「USBに挿す」、とこれだけで液晶、タッチパネル、SDカードを使う準備が出来る上に
マイコンを書き込む準備まで出来てしまいます。革命的です。
arduino unoも「変な形」だと思っていたのですが、考えが変わりました。
これをやると、他の20ピン以上ある液晶に手をだす気が失せますね。
猛牛ロック   2016/02/18(Thu) 12:21 !email! No.776 !ico_edit!
Re: ハンドル作りました
猛牛ロックさん、こんにちは。また、また、アドバイスありがとうございます。

カプラーは2重になるんですよね。手持ちのカプラーがごろごろしているので、
消費もかねて、入れることにしようと思います。

猛牛ロックさんの教えてくださった回路の方がシンプルでいいですね。
ただ、今回は、過去に作ったタイマーの回路の改造ということで、手落ちのSSRを付け加えます。

それから、元々の設計で、タイマーが切れると自分自身の電源も落とす予定でしたので、
切断のスイッチは、いれていませんでしたが、はやりあった方がいいみたいですね。

ある方のHPにこの回路の記載がありました。
この方は、リモートでコントロールするために自己保持させるようで、
SSRの制御側で、5Vかける,グランドに落とす、ということをやってます。

私は、AC側を短絡させて、起動させてますが、どちらがいいのか、ちょっと、?です。
付部品が少ないのが、AC側でしょうか。それと、リモートで制御するとなると、AC引っ張るよりも5Vでしょうかね。

このボックスの中には、使ってないリレー(自己保持に失敗)もそのままになってます。
後で、全面的に見直そうと思います。


LCD、これ、便利そうですね。タッチパネルもついているんですね。
ただ、
>接続が行われていないので使用できません。
とありますので、そのままでは、使用できないでしょうか。改造は、面倒なんでしょうかね。
それと、使用できたとしても、ソフトが面倒なんでしょうかね。
mabo   2016/02/18(Thu) 13:23 !email! No.777 !ico_edit!
Re: ハンドル作りました
> 私は、AC側を短絡させて、起動させてますが、どちらがいいのか、ちょっと、?です。
> 付部品が少ないのが、AC側でしょうか。それと、リモートで制御するとなると、AC引っ張るよりも5Vでしょうかね

自己保持はリレーの結果を利用して保持させます。通常は物理リレーの空いている2次側の接点です。
それをA接点の起動用スイッチと並列にすることにより、自己保持させます。
5V側(SSRの1次側)だけでは自己保持されないように思います。(別に自己保持の専門リレーが必要なのでは?)
わたしは、SSRで自己保持させたことはありません。今まで(物理)リレーやマグネットスイッチだけです。
よく考えらえた回路だと思いました。

>接続が行われていないので使用できません。
それはリンク先の商品の事で、私の買ったのはaliの更に安い商品です(送込500円弱)。
まだタッチパネルやSDは試していませんけど、配線自体はしてあると思います
ただ、「DOT MATRIX LCD」として動画でもUPしたい所なんですけど液晶のドットが長方形なんですよね。その点で
今一つやる気が削がれています。
動作確認程度は、ライブラリ(テストプログラム)があるので簡単に出来そうです。
猛牛ロック   2016/02/18(Thu) 17:19 !email! No.778 !ico_edit!
バラックでのテスト 投稿者:TR 投稿日:2016/02/07(Sun) 14:49 No.736

猛牛ロックさん、レス有難うございます。
実機で動作確認ができました。
早速、基板を作ります。

いや〜、またまた、
SEC基板とPICの入出力端子の兼ね合いで、
ごちゃごちゃになっていました。

サクッとできてしまう、猛牛ロックさんは、流石です!

実のところ、何度もプログラムを弄っていました。
助かりました。
本当に有難うございます。
今回の、遅延させる動作は、良い勉強になりました
激汗でした。

Re: バラックでのテスト
TRさん、猛牛ロックさん、こんにちは。

実機につないで、うまくいかなかったのですしょうか。猛牛ロックさんが回路アップしてっくださってますので、そちらがいいかもです。

猛牛ロックさん、引き続きありがとうございます。いままで、メモリーのことは、それほど考えないで使ってました。
猛牛ロックさんのおっしゃるようにCONSTの修飾子で、プログラム領域に定数の設定できました。

最初、X18コンパイラーの、

  rom const

という記述をしてみましたが、XC8では、エラーになりました。このへんは、おっしゃるようにコンパイラーの方言?みたいなもんなんでしょうね。

PC用にCでプログラムを組んでいたときは、メモリーのことは、それほど意識しないでも大丈夫でしたが、PICでは、てきめんですね。

今回も、又一つ、PICの理解が深まりました。

24LS256はおっしゃる通りEEPROMです。データーロガーの記録用に使われてたようです。
読み書きの速度も遅いんでしょうね。まあ、これも。勉強?なので、後日、使ってみようと思ってます。
mabo   2016/02/07(Sun) 15:10 !email! No.737 !ico_edit!
Re: バラックでのテスト
簡単なテストをしてみました
#include <xc.h>

void main(void) {
const char data1[]={"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
const char data2[]={"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
const char data3[]={"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
const char data4[]={"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
const char data5[]={"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
const char data6[]={"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
const char data7[]={"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
const char data8[]={"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
//面倒なので繰り返しました。63*8で504バイト程度です。
char c=*data1;
return;
}
*******************************

Memory Summary:
Program space used 207h ( 519) of 2000h words ( 6.3%)
Data space used 4h ( 4) of 200h bytes ( 0.8%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
Data stack space used 0h ( 0) of 1F0h bytes ( 0.0%)
Configuration bits used 0h ( 0) of 2h words ( 0.0%)
ID Location space used 0h ( 0) of 4h bytes ( 0.0%)


単純にconstを付けるだけでokな様です。まだまだ全然余裕の数字です。まぁ、本文が書いて無いですからね。
因みに const char data8[]={"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッー、。"};
にすると「知らないキャラクターだ」とwarningがでますけど問題は無いと思います。

また、上記のconstを3つまで消してもエラーは出ません。4つ以上消すとエラーです。
3つ消した時のが下記です。RAMが74.6%ですね。

Memory Summary:
Program space used 25Ah ( 602) of 2000h words ( 7.3%)
Data space used 17Eh ( 382) of 200h bytes ( 74.6%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
Data stack space used 0h ( 0) of 21h bytes ( 0.0%)
Configuration bits used 0h ( 0) of 2h words ( 0.0%)
ID Location space used 0h ( 0) of 4h bytes ( 0.0%)

チップは16F1937を選択しています

> 猛牛ロックさんのおっしゃるようにCONSTの修飾子で、プログラム領域に定数の設定できました。

あぁ、もう出来ていたのですね(^^)/
猛牛ロック   2016/02/07(Sun) 16:11 !email! No.738 !ico_edit!
Re: バラックでのテスト
maboさん、猛牛ロックさん、こんばんは。
皆様方のご指導で我ML4は、大変使い勝手がよくなりました。
そこで、初めてですが、ユーチューブに2本投稿しました。
お暇でしたら、見てやって下さい。
有難うございました。
今後も、拙いので、ご指導の程宜しくお願いします。
TR   2016/02/07(Sun) 20:43 !email! No.739 !ico_edit!
Re: バラックでのテスト
良い感じに動いているようで私もうれしくなりました。
また、マシンの切削音も聞こえないようで、剛性の強い、良いマシンですね。
羨ましいです。
猛牛ロック   2016/02/07(Sun) 21:08 !email! No.740 !ico_edit!
Re: バラックでのテスト
まぼさん、猛牛ロックさん おはようございます。

今回、時間を操作するプログラムを教えて頂きましたが、
更に理解を深めたいので、
初心者向けの良い本を教えて頂けませんか?
宜しくお願いします。
TR   2016/02/08(Mon) 06:55 !email! No.741 !ico_edit!
Re: バラックでのテスト
TRさん、猛牛ロックさん、こんばんは。

TRさん、YouTube見ました。猛牛ロックさんと同様、うらやましい環境だと思います。
この掲示板にもYouTubeアップできますので、試してみてください。
YouTubeの共有→埋め込みコードとたどって、四角のなかのコードをコピペすると、アップできます。

私の手元には、何冊かありますが、C関係の入門書等1冊読まれるといいかもしれません。
ただ、入門書は、PICでは、あまりでてこない、print( )の
オンパレードです。
基本的なCの流れや文法等の理解深められるといいかと思います。
私が最近参考にしているのは、

 電子工作のための PIC16F1ファミリ 活用ガイドブック
  (後閑哲也)
 Cで開発する PICモジュール・プログラム・サンプル集

あたりです。前者は、XIDEでのプログラムの例が載ってますので、打ち込めば、それほど苦労しなくても、確認できます。
後者は、使ってるコンパイラーが、microC PROなので、XIDEのXC8でコンパイルするには、多少の変更が必要です。

大きな本屋さんで、プログラムの例が沢山載っているもの見つけても、いいかなと思います。
mabo   2016/02/08(Mon) 21:11 !email! No.742 !ico_edit!
Re: バラックでのテスト
猛牛ロックさんへ、おはようございます。
間欠タイマーを改造したいので、教えて欲しいことがあります。

間欠タイマーでは
burowaとvacuumが同期しています。
これを、ブザーのように、遅延時間を設定し、
burowaが、OFF→、1秒後、vacuumをOFFにしたいのです。
理由
吸い込みの動作が、ブロワより少し遅れるからです。


// プロトタイプ宣言
void WaitTime (int cnt);//遅延設定時間 を入れる。



間欠タイマの   burowa=On;
vacuum=On;

vacuum=On;

// 待ち時間関数の呼び出し(約1m秒)
WaitTime(50);

burowa=On;






間欠タイマの// 永久ループの次に、以下を入れる

while(1){
if(IN==0){
OUT=1;
timer=0;
}else if(timer>set_time)OUT=0;
TR   2016/02/09(Tue) 07:26 !email! No.745 !ico_edit!
Re: バラックでのテスト
私なら、面倒ですけどタイマー割り込みを作ってそれを利用します。
ウェイトを使うと後で面倒なことが起きがちな気がします。
前の時の様に、0.01sごとのタイマーを作って、

#define 設定値 100 //9999まで単位0.01s
int v_timer=30000;

<タイマー割り込み>
if(v_timer<20000)timer++;
if(v_timer==設定値) { //ON用初期値0
vacuum=On;
v_timer=30000;
}
if(timer==10000+設定値){ //OFF用初期値10000
vacuum=Off;
}

で、メインの所のburowa=On;をburowa=On;v_timer=0;
burowa=Off;をburowa=Off; v_timer=10000;
という風にタイマーをスタート点にもっていけばいいと思います。

おおよそ、こんな感じで作ると思います。
プログラム的には改変に伴う見直し部分もあるかもしれません。
猛牛ロック   2016/02/09(Tue) 09:18 !email! No.746 !ico_edit!
Re: バラックでのテスト
猛牛ロックさん、レス有難うございます。

以下にて、ビルトできました。
如何でしょうか?

/*****************************
* 間欠タイマー
* 16F627A
* XC8 V1.35

* RA6←MACHからの入力想定
* RA2ブロワ制御用リレー burowa
* RA3掃除機制御用リレー vacuum
* RA7 モニター用発光LED 
*****************************/
#include <xc.h>
// CONFIG
#pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
#pragma config BOREN = OFF // Brown-out Detect Enable bit (BOD disabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EE Memory Code Protection bit (Data memory code protection off)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
#define _XTAL_FREQ 4000000 //delay用宣言。下記__delay_msを使うとコンパイラがマイコンの周波数に応じてループ回数を計算します
#define On 1
#define Off 0
#define MACH_sig RA6 //machからの信号入力プルダウン
#define burowa RA2=RA7 //RA2:ブロワ出力 RA7:LED出力
#define vacuum RA3 //掃除機出力
#define set_time 100 //9999まで単位0.01s
unsigned char PORTB_save; //ポートBの保存用。(変更に対応するため)
unsigned char MODE; //セレクタ保存用

int timer;
// 待ち時間関数
char Second(unsigned int sec){//1S→0.1Sに変更。int secに1を入れると0.01秒ウェイト
while(sec >0){
if((MODE!=(PORTA&0b11))||(MODE==3&&MACH_sig==0)||(PORTB_save!=PORTB)) return 1;
//セレクタスイッチが変更された場合とMACH制御でのオフ信号、間欠時間の変更があった場合はwhileから抜ける
sec--;
__delay_ms(10); //この部分を1000→10に書き換えたので1s→0.01s
}
return 0;
}
//<タイマー割り込み>
void interrupt InterSyori( void ){
if(timer<20000){timer++;}
if(timer==set_time) { //ON用初期値0
vacuum=On;
timer=30000;
}
if(timer==10000+set_time){ //OFF用初期値10000
vacuum=Off;
}
}
// メイン関数
void main (void){
OSCF=1;//内蔵発振器 4MHz使用に設定
CMCON = 0x07;// 1,2,17,18端子を入出力端子に設定 ??
unsigned int DousaTime,KanketuTime; //宣言。#defineからこちらに変更
char change;
PORTA=0;//出力のピンを初期設定。
// 入出力設定
TRISA = 0b01000011;
TRISB = 0b11111111;//負論理ロータリースイッチ2個。RB0-3が動作時間、RB4-7が間欠時間
OPTION_REG=0b00000000;//ポートBプルアップ
unsigned int TIME[]={10,30,60,100,150,200,300,500,700,1000,1500,2000,3000,6000,9000,18000}; //unsigned intで65000まで
// 永久ループ
while(1){
MODE=PORTA&0b11;
__delay_ms(50);
while(MODE!=(PORTA&0b11)){ //変化があればウェイト、無ければ確定
MODE=PORTA&0b11;
__delay_ms(50);
}
if(MODE==0||(MODE==3&&MACH_sig==0)){//OFF
burowa=Off;
vacuum=Off;
}
else if(MODE==1){//掃除機のみオン
burowa=On;
burowa=Off;

}
else if(MODE==2||(MODE==3&&MACH_sig==1)){ //間欠
PORTB_save=PORTB;
DousaTime=TIME[PORTB_save&0b1111];
KanketuTime=TIME[PORTB_save>>4];
burowa=On;timer=0;
vacuum=On;
change=Second(DousaTime); //動作時間分ウェイト
if(change==0){ //セレクタが変わった際、ポンプオフはしない
burowa=Off; timer=10000;
vacuum=Off;
change=Second(KanketuTime); //間欠時間分ウェイト
}
}
}
}
TR   2016/02/09(Tue) 21:01 !email! No.747 !ico_edit!
Re: バラックでのテスト
タッチプローブのプログラムをよく見ると

void interrupt InterSyori( void ){
if(TMR0IF==1){
TMR0=99; //0.01msごとに割り込み
TMR0IF=0;

上記を書き足して、

更に、
void main(void){   以降に 以下を書き足しました。

OPTION_REG=0b00000101; //プリスケラを64
TMR0=99; //TMR0カウンターを99にする→0.01msごとに割り込み
TMR0IF=0;
TMR0IE=1; //TMR0割り込み許可
GIE=1; //全体割り込み許可

しかし、今度は、間欠時間の行がエラーとなりました。

これは、どうしたらよいものか分かりませんでしょうか?
TR   2016/02/10(Wed) 07:28 !email! No.748 !ico_edit!
Re: バラックでのテスト
TRさん、猛牛ロックさんおはようございます。

TRさん、747+748で、私の環境では、エラーはでませんでした。
同左については、確かめていません。

OPTION_REGがダブるのでそれだけ、コメントアウトしました。
ファイルは、エラーがでてないものです。
mabo   2016/02/10(Wed) 10:04 !email! No.749 !ico_edit!
Re: バラックでのテスト
> int timer;
初期化の時に30000に指定しておいてください。int timer=30000;

> しかし、今度は、間欠時間の行がエラーとなりました。
上の処理と書いてあるように貼り付けてこちらではエラーになりません。
割り込み終了の「}」の処理が抜けているのかもしれません。あとは「 」(全角スペース)が入っているとか。

***********************************************

私は書籍は買っていません。20数年前にC言語の本は買いました。
当時、完全にマスターした訳でもないし、うろ覚えですが、読み返したいとも思わないですね。
実戦で、コンパイラが通ることでやり方を確認している感じです。
でも、TRさんは1冊はC言語の本を買っておくといいと思います。
マイコンの本は買ったことはありません。なので紹介できるものはありません。
AVRなら、AVR-WIKIさえみれば使い方はマスターできると思うのですが、PICにはそれに相当するサイトは
ありませんね。種類やコンパイラの多様性が原因でしょうね。

私はテキストはありませんから、思ったものを実践していくだけです。
新しいことをする度に新たな事を覚えます。
TRさんには、いい機会なのでタイマー割り込みの使い方(の基本)を覚えてもらいたいと
思います。
※マイコンは必ずデータシートを入手して、見てください。
 データシートはメーカーの取説ですから、一番重要です。
http://ww1.microchip.com/downloads/en/devicedoc/40044f.pdf


<タイマー割り込み>
8ビット(0-255)や16ビット(0-65535)のカウンタ(タイマー)がある。
設定した周波数でカウントしていき、桁あふれや、設定値になると割り込みがかかる。
この機能は外部装置なのでマイコンが処理されている間も別処理としてカウントされていく。
つまり、タイマー割り込みとは一定時間ごとにその関数を行う、と言う事です。。
割り込みがかかると、通常の処理は中断され、割り込み関数に飛び、処理される。
割り込み関数が終了すると、中断された元の場所に戻り、通常の処理が継続される。


<タイマー0割り込み系レジスタ>(一部略しています)
              bit7 < ------------------------------ > bit0
 OPTION_REG=  RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
(データシートP25)デフォルト1

  ・割り込み(カウント)元の設定
   T0CS 1:外部入力ピン  0:内部クロック(サイクル)

  ・プリスケーラレートの設定 ※PICは4クロックで1サイクル(動作、カウント)
   PS2-0
   000  1 : 2
   001  1 : 4
   010  1 : 8
   011  1 : 16
   100  1 : 32
   101  1 : 64
   110  1 : 128
   111  1 : 256


          bit7 < ---------------------------------- > bit0
 INTCON= GIE PEIE TMR0IE INTE IOCIE TMR0IF INTF IOCIF
 (データシートP26)デフォルト0

  ・全体の割り込み許可(これ+タイマー割り込み許可でタイマー割り込みが有効)
   GIE 1:割り込み有効  0:全ての割り込み無効

  ・Timer0 (桁あふれ)割り込み許可 ※タイマー0は桁あふれしかありません。
   TMR0IE 1:有効  0:無効

  ・Timer0 (桁あふれ)割り込みフラグ ※割り込みをかけて桁あふれすると自動で1になる
   TMR0IF 1:桁あふれした 2:桁あふれしていない


 TMR0
  タイマー0本体の8ビット変数。自動でカウントアップしていき、255→0のタイミング(オーバーフロー、桁あふれ)で割り込みを起こす

<プログラムでの利用法>
1.メイン関数で初期設定をする
 TOCS=0;
 PS2=1;   ※プリスケーラー64の場合(101)
 PS1=0;
 PS0=1;
 TMR=0;   ※初期値0の場合。計算値の場合も多い。
 TMR0IF=0; //TMR0フラグクリアー
 TMR0IE=1;//TMR0割り込み許可
 GIE=1;//全体割り込み許可

※クロック4Mhz(1MHzサイクル)、64分周で0.01秒をつくるなら
 1000000*0.01/64=156.25
 この場合、TMR=-156で良いと思います(未検証)
 オーソドックスに計算すれば256-156.25=99.75でTMR=100にします


2.割り込み関数を作る
void interrupt XXX( void ){ //何かの割り込みがあればここに入る
if(TMR0IF==1){//TIMER0割り込みがあったら
TMR0=0; //※カウント初期値 0なら書かない方が良い?
TMR0IF=0 //フラグクリア

//以下にタイマー0割り込み本文

}
}

※計算した初期値を入れる。0の場合は書く必要は無いと思います。
 カウントが始まると狂ってしまうのでので一番最初に入れておく方が良い。
 また、プリスケーラが2とかの場合は既にカウントが始まっている可能性があります。時間を優先するなら
 低い分周でカウントを操作するのは避けた方が良いかも。
猛牛ロック   2016/02/10(Wed) 10:06 !email! No.750 !ico_edit!
Re: バラックでのテスト
皆様方 レス有難うございます。

manoさんへ、
エラーは出ませんでしたが、点滅しません。



猛牛ロックさんへ

>int timer=30000;

というのは、//<タイマー割り込み>
ここでのことですか?
void interrupt InterSyori( void ){
if(timer<20000){timer++;}
if(timer==set_time) { //ON用初期値0
vacuum=On;
timer=30000; →int timer=30000;

このようにしても点滅しません。
TR   2016/02/10(Wed) 21:04 !email! No.751 !ico_edit!
Re: バラックでのテスト
プログラムを見直しました。
正確に言うと
burowa=On; → burowa=On;v_timer=0;
burowa=Off; → burowa=Off; v_timer=10000;
ではなく
vacuum=On; → timer=0;
vacuum=Off; → timer=10000;
だったみたいです。
取りあえず、書き直したのをUPします。内容はあまり確認していません。機械的に書き換えました
予定動作はburowa-RA2の動作のset_time=1.00秒後にvacuum-RA3が続く、というものです。

追記
MABOさんのサインボードの左にあるICが気になってきました。
2つあるようなのですが使っているのは1つなのですか?
ICは何でしょうか?
猛牛ロック   2016/02/10(Wed) 21:44 !email! No.752 !ico_edit!
Re: バラックでのテスト
TRさん、猛牛ロックさん、こんばんは。

TRさん、すみません、かなり付属品が多くなってきてるので、実機での確認ができません。

猛牛ロックさん、こんばんは、左のICはトランジスタアレイの62003でです。
7+1しか使ってません。本当は、62083一個でもよかったのですが。手持ちがなかったので。
このトランジスタアレイは,なくてもよかったのかな、なんて思ってます。

それから、猛牛ロックさんのおっしゃるように、電流供給している、2SA1015の前の抵抗、大きいのかもですね。

それと、LEDの点灯時間長くできないかと、エクセルで馬鹿な計算してました。
1/32秒以上に、点灯時間長くできないのに、お馬鹿さんでした。
ラッチのICでも入れると、長くできて、明るくできるのでしょうか。
プログラムは、面倒になりますね。私には、難しいかも。
mabo   2016/02/10(Wed) 22:42 !email! No.753 !ico_edit!
Re: バラックでのテスト
皆さんおはようございます。
今日は休みで、最高!

実機で試しました。
結果、動作がめちゃくちゃでした。
vacuum=Off;とかなくなったせいだと思いました。

maboさんへ、
PICの本ですが、簡単そうな本にしました。
何冊も買って、自分にあった本を見つける覚悟です。(笑
http://www.amazon.co.jp/dp/4839929432/ref=pe_492632_159100282_TE_item_image
TR   2016/02/11(Thu) 08:18 !email! No.754 !ico_edit!
Re: バラックでのテスト
続けて失礼します。

今回は、切子を吸い込む時間幅が、ブロワーより長くしたかったのですが、なかなか上手くいきませんでした

そこで、
maboさんの言葉をヒントに
main関数内を以下のようにしました。

ウエイトを付けるというのですかね〜?
;__delay_ms(300);をブロワとバキュームの間に入れました。

イメージに近くなりました。

ただ、
TIMEの数値が小さい範囲は、ブロワとバキュームが同期します。
else if(MODE==2||(MODE==3&&MACH_sig==1)){ //間欠
PORTB_save=PORTB;
DousaTime=TIME[PORTB_save&0b1111];
KanketuTime=TIME[PORTB_save>>4];
vacuum=On;__delay_ms(300);burowa=On;

change=Second(DousaTime); //動作時間分ウェイト
if(change==0){
burowa=Off;__delay_ms(500);vacuum=Off;

change=Second(KanketuTime); //間欠時間分ウェイト


良い感じになったのは、猛牛さんが作った
基本プログラム優秀だったからだと思います。
猛牛ロックさん、このようなプログラムで、
如何でしょうか?
TR   2016/02/11(Thu) 10:16 !email! No.755 !ico_edit!
Re: バラックでのテスト
TRさん、猛牛ロックさん、おはようございます。

TRさん、「PICマイコンの基礎」は私も持ってます。
後閑哲也さんの本ですね。
この方は、沢山書いています。

多くはありませんが、プログラムも載ってます。
コンパイラーがHITECHーCでの記述ですので、
XC8で使うには、多少記述の変更が必要になるかと思います。
mabo   2016/02/11(Thu) 10:32 !email! No.756 !ico_edit!
Re: バラックでのテスト
maboさん、早速有難うございます。
今キャンセルしました。

最初にご紹介してくださったほんのレベルより、簡単さそうで且つ自分の環境にあった本をご存知でしょうか?
宜しくお願いします。
TR   2016/02/11(Thu) 11:24 !email! No.757 !ico_edit!
Re: バラックでのテスト
一通り見直して、作り替えましたけど、自身は無いです。
バグも見つけ辛そうなので、私も回路を作らないと発見できないかも。
ちょっと嫌な条件もあるのでオンとオフは別タイマーにしました。
設定値も別々にできますけど、取りあえず一緒(1秒)にしています。
TRさんの改変で上手くいっているようなら、わたしのに差し替える必要は無いです。
それを思うままに変えていってください。

追記
しまったぁ!
続けて画像も送ろうとしていたらレス終了になってしまいました。
アーカイブに変更します。

間欠時間の間隔を短くした場合、下の細かい設定(case 1)にしてあります。
(case 2)の方が良い場合は書き換えてください。
それ以前に、どちらもちゃんと動かない可能性も高いですけど。
猛牛ロック   2016/02/11(Thu) 15:30 !email! No.758 !ico_edit!
続いています 投稿者:TR 投稿日:2016/02/06(Sat) 09:21 No.714

>毎回、使うピンや方法に合わせて書き換えます。
場合によってはCONFIG部も書き換えます。

下記以外にも、なにかあるということなんですね。
一応、ブレットボードでやってみたらなりませんでした。

   記
TRISA =0;
TRISB = ~0;
PORTA=0;

Re: 続いています
それで鳴らないなら、理由がわかりません。
回路の問題じゃないですか?
出力端子RA0からの電圧はどうなっていますか?

圧電スピーカーじゃないですよね?
+-逆だとかは無いですか?

見直したところ、コメントの間違いがありました(動作とは関係ありません)
0.01msごとに割り込み→0.01Sごとに割り込みです。100で1秒です

※追記
ミックス(No.709)で使う場合は宣言で
unsigned int timer=50000;
と初期値を入れてください
猛牛ロック   2016/02/06(Sat) 10:40 !email! No.715 !ico_edit!
Re: 続いています
猛牛ロックさんレス有難う。

RA0に5vがありません。
PICを交換したけど、変化なし。
スピーカーは秋月です。
http://akizukidenshi.com/catalog/g/gP-04497/
TR   2016/02/06(Sat) 11:27 !email! No.716 !ico_edit!
Re: 続いています
それはおかしいですね。
割り込みがおかしい場合でも接触していれば鳴るはずなのですが。
RB0ピン-接触-GNDになっていますか?
最低でも
if(RB0==0)RA=1;
はすると思うのですが

************
画像で確認しました。入力ピンRB0です。
内部プルアップさせた上で5vに繋げています。
接触=GNDに繋げるです。

あと、付いている抵抗は全て要らないので外してください。
ポートAは出力なのでRA0以外全て絶縁(何も繋がない)
ポートBは入力で内部プルアップなのでやはり使うRB0以外は
何も繋がなくて良いです。
入力をBポートに移動したのは余計なもの(プルアップ抵抗)を付けなくて済む
ようにしたかったからです。
PB0からの黄色線の上部の5vラインから抜いてGNDラインに手動で抜き差しして
動作確認してください。
猛牛ロック   2016/02/06(Sat) 11:56 !email! No.717 !ico_edit!
Re: 続いています
猛牛ロックさん レス有難う。

音が鳴りました!

入力ピン(RB0)ですが、テキストでは、写真の様になっていました。
なので、DC5V〜PIC端子と思って繋ぎました。

RB0から、GNDに繋ぐとなると、出力ピンの使い方と思いたくなるのですが、
考え方が、違うのでしょうか?

それと、
時間調整するにはどうしたら良いでしょうか?
TR   2016/02/06(Sat) 12:52 !email! No.718 !ico_edit!
Re: 続いています
鳴りましたか。良かったです。

> #define set_time 200 //遅延設定時間

この200→2秒が設定時間です
接触開始から音が鳴りだしてNo711なら接触が終わった瞬間からカウントして設定時間後に止まります。
No.709なら接触開始から設定時間音が鳴ります。音が鳴りやんだ後に一度離れたらリセットされます

注、割り込み、プリスケーラなどの間違いがあれば、数分の一や数倍になる可能性もあります。
 正しいかちょっと確認してみて下さい。
猛牛ロック   2016/02/06(Sat) 13:19 !email! No.719 !ico_edit!
Re: 続いています
猛牛ロックさん レス有難う。

参考の為にお聞きしました。
有難うございます。


プログラムで、入出力端子の設定が、
TRISA =0;→//出力端子
TRISB = ~0; → 「~」反転でしょうから、1と思います。
ということで、入力端子 

で、RB
#define IN RB0
if(IN==0){
OUT=1;

となっているので、
RB0がローなら、つまり、GNDと繋がった時
#define OUT RA0となっているから、
RA0がOUT=1;により、
RA0に繋がっているスピーカーが鳴るということでしょうか?


プリスケラーTMR0=99ですが、
最高でいくつですか?
TR   2016/02/06(Sat) 13:51 !email! No.720 !ico_edit!
Re: 続いています
0は2進法(8ビット)で0b00000000です。
~0は2進法(8ビット)で0b11111111です。

途中の説明はその通りです。

> プリスケラーTMR0=99ですが、
> 最高でいくつですか?

> OPTION_REG=0b00000101; //プリスケラを64
です。この下位3ビットの「101」がプリスケーラの64に相当します。
プリスケーラは分周の事です。違う尺度でタイマーを動かします。
また、最上位ビットの0(bの右)が内部プルアップを有効にするスイッチです。(1で無効)
ただ、これは飛行機(操縦席)に付いているスイッチと同じで機種が変われば変わる可能性が
あります。
単にマイコンの様々な機能の切り替えをレジスタ名をつけて割り当てているだけです。
同じ設定のものもありますけど異なる場合もあります。

マイコンのクロックが4Mだとサイクルだと1Mhzになります。
(PIC16Fは4クロックで1命令=1カウントします)
64分周だと1カウントで64/1M=0.000064秒です。
0.01Sを作りたいので0.01S/0.000064=156.25カウントで0.01Sになります
タイマー0は桁あふれで割り込みをかける設定にしているので256-156.25=99.75
から数え始めると0.01Sごとに割り込みになる計算です。

プリスケーラは1:1から256:1まで設定可能です。
set_timeは49997までだと思ってください。単位が0.01Sですから500秒弱です。
勿論、必要なら何時間でも何日、何年でも書き換えることは可能です。
猛牛ロック   2016/02/06(Sat) 14:31 !email! No.721 !ico_edit!
Re: 続いています
下記はどういった意味になるのですか?

   記
if(timer<50000)timer++;


それから、先程、秋月のSSRが来たので、
実装にて10分間ほど、掃除機を回しましたところ、
大した熱もなく、問題なさそうでした。
使ってみての感想ですが、改造の余地ありですが、
でも、気に入りましたよ(^^♪

maboさん、猛牛ロックさん
色々とご指導を賜り深く感謝申し上げます。
自力だったら、とっくにギブしていました。


追記
RBが全て内部プルアップなら、外付けのプルアップ抵抗はなくてもOK?
RAは、全て、出力端子の設定なので、外付け抵抗無しでOK?
でも、RA5は入力専用なので、外付け抵抗でプルダウンでは?
TR   2016/02/06(Sat) 16:51 !email! No.722 !ico_edit!
Re: 続いています
> if(timer<50000)timer++;

割り込みの度、つまり0.01Sごとにこの処理をします
書いてある通り、「timerが50000より少なければtimerの値を1増やす」と言う事です。
リセットさせなければどんどん増えていき、50000で止まります。

本来はtimerは16ビット(unsigned int)にしているので65535までカウント可能なのですが
何となく充分そうな50000にしました。

普通は単にtimer++;だけにするかもしれませんけど、ループして0からカウントするのを防ぐために
一定値(50000)に止めてあります。
No.709ではフラグの代用として、また、チャタリング対策としても再利用しています。

タイマー割り込みで行っているのはこの1行だけです。

> 自力だったら、とっくにギブしていました。

今回のなんて、プログラムの本来的なところでは10行程度のものです。
マイコン独自の使い方や回路などの問題も絡んできて厄介なのですが、それでも
それほど難しいものではありません。
やはり、「自分で考えて書いてみる」というのは重要だと思います。
(やっているテキストにはこのような手法は書かれていないかも知れませんけど、別のテキストでは最初の方に
書いてあるような内容だと思います)


> RBが全て内部プルアップなら、外付けのプルアップ抵抗はなくてもOK?
> RAは、全て、出力端子の設定なので、外付け抵抗無しでOK?

そうです。出力は繋げるものに応じて制限抵抗を付ける場合もありますけど(トランジスタなど)、特に
抵抗ありき、ではありません。イメージでは乾電池の様に端子があるだけですね。
プルアップ、プルダウンはダブルでつけると合成抵抗になりちょっと強くなります。基本的にどちらか一つで良いです。
私は大抵、内部プルアップ抵抗があるマイコンを使うのでほとんど外部抵抗は付けません。
ただし、I2Cなど通信規格上、抵抗値が定められている時がありますからその時はその数値に従ったりもします。
PICの内部プルアップはデータシートに書いてありますけど「弱プルアップ」です。「弱」は引っ張る力が弱い=抵抗値が高い
と言う事です。これはその名の通り、ノイズにも弱いです。その場合、数キロΩで外部プルアップすると「中」もしくは
「強プルアップ」になります。

> でも、RA5は入力専用なので、外付け抵抗でプルダウンでは?
そうですね。それが正しいです。RA5(リセットピン)だけは内部プルアップも付いています。
有効になっているような気がするのですが確かめていません。
正しい処置としては入力に設定してどちらかに固定させるべきですね。
猛牛ロック   2016/02/06(Sat) 18:04 !email! No.723 !ico_edit!
Re: 続いています
>MABOさんへ

blogの方に書こうと思ったのですが、長いと右側が切れたように思ったのでこちらに書きます。

左端の不具合は治っていますね。
左右どちらに流すのも自由ですけど、基本は読む方向の←かと思います。
特に字数が増えれば必然とそうなります。

データ量としては1文字で8バイトなのでキャラクタ液晶レベルの文字(数、英大小、カナ)は大したことないですよ。
256文字入れても2kバイトです。1937は8kワードなのでこの辺りの文字数までは大丈夫かと思います。
ただ、RAMは容量が少ない(512バイト)ので注意が必要です。

PICはまだわからないのですが、AVRだと定数をフラッシュからSRAMに自動で読み込ませない方法があります。
そして、使う分だけその都度フラッシュから読み込んで処理をさせます。PICも同様だと思います。
つまり、処理としては文字コードの列の1バイトをフラッシュから読み込みながらスクロールさせていく
ようなコードを書く必要があります。
このような処理はキャラクタ液晶でも言えます。キャラクタ液晶はドットデータは液晶に入っていますけど、
総表示文字数が多いとやはりSRAM上には載せられません。それで本文をフラッシュから必要分読み込みながら処理します。
ドットデータと本文両方ともフラッシュに残すかどちらか片方にするのか、全部SRAMにロードさせるかは情報量や
積んでいるメモリによります。場合によっては本文の方がデータ量が多いこともあれば、逆もあります。
最終的には総データがフラッシュに載らなかったり、最低限必要なSRAMの容量(表示の為の帯状に展開させたドットを処理するための
容量)が無ければ、やはり機種変更になります。(フラッシュだけの場合はSDカードを付けたりする事もよくあります)
猛牛ロック   2016/02/06(Sat) 18:11 !email! No.724 !ico_edit!
Re: 続いています
TRさん、猛牛ロックさん、こんばんは。

どうやら、私のPICKIT3破損のようです。以前は、PICKIT3から電源供給して、PICのプログラム動かせたのですが、動かなくなりました。
書き込みも、ダメのようです。余計なものない状態でも、ICSPの基板の上でもだめです。
まあ、純正と言っても、○国製ですからね。

TRさん、意図した動作に近づいてよかったですね。目的の動作をさせるまで、紆余曲折、DIYの醍醐味(何度目でしょうかね。笑)ですね。

猛牛ロックさん、アドバイスありがとうございます。

左と右端に不具合がありました。最初気づかなかったのですが、あれ、と思って、修正しました。
いつもそうなんですが、境界値の変数等の処理に躓いてました。
細かい部分ではっきりしないことが多くで、いつもトライアンドエラーです。
お恥ずかしいかぎりですが、
 for(i=0;i<10;i++)
なんかの処理でも、結局何回処理されて、「i」は、いくつになるんだ、なんて、いつも考えてしまいます。
この辺が、エラーの原因ですね。

アルファベット26文字メモリーに積むと、ぎりぎりで、オート変数の領域もなくなってしまうようで、コンパイルのエラーになります。
できるかどうかわかりませんが、24LS256の使用例が本に載っていましたので、ぼちぼち挑戦しようかなと思ってます。
このメモリーとのやりとりがI2Cなので、ちょっと、頭抱えるようです。

スクロールの方向もそうですよね、英語表記では、左から右だと、逆の動きですね。

とりあえずの目標は、PCからのデーターを表示することなので、PIC変えて、トライしてみようと思ってます。

おっちょこちょいで、あっという間に、PIC(16F1937)を4個破損しました。
VSSから通電してしまうと一発ですね。VSSとVDDが隣り合わせの構造なので、一つ上にずらしてPICをさすと、VSSに通電することになるので、ひとたまりもないようです。
一見、動くようですが、ポートのビット演算等、できなくなるようです。
mabo   2016/02/06(Sat) 21:30 !email! No.725 !ico_edit!
Re: 続いています
猛牛ロックさんへ

SEC基板からの信号を受ける為に、
回路を写真のようにしました。
そして、入出力設定も下のように変えました。
でも、動作しません。
理由を教えて頂けませんでしょうか?

宜しくお願いします。


   記
// 入出力設定
TRISA =0b00100010;
TRISB = ~0;
TR   2016/02/06(Sat) 23:38 !email! No.726 !ico_edit!
Re: 続いています
TRさん、こんばんは。

もしかして、RA1は出力にするのでは?
mabo   2016/02/06(Sat) 23:52 !email! No.727 !ico_edit!
Re: 続いています
maboさんへ
>もしかして、RA1は出力にするのでは?

あっ、そうか!
そして、RB0を入力ですかね?
プログラムを直してみます

追記
RA1出力にしても駄目です。
TR   2016/02/06(Sat) 23:58 !email! No.728 !ico_edit!
Re: 続いています
TRさん、MACHのPIN設定はどうなってますか。

ブザーの端子は、プローブ接触でHIGHの出力でしょうけど、MACHの方は、もしかして、アクティブローでは。
だとすると、プローブ接触で、LOWの設定にしないとだめかなあ。

それと、プリセッターの所のLED、アノードとカソードが逆の配線ですけど、実際とは、ちがいますよね?
mabo   2016/02/07(Sun) 01:04 !email! No.729 !ico_edit!
Re: 続いています
プログラムが分かりました。

回路図を変えました。
RB0の内部プルアップに対応しました。

そして、プリセッター(接点)の開閉により
RA0からの出力モニター用に右側に発光LEDを設けて、
動作確認したところ、
プリセッター(接点)の開閉により発光LEDが同期し、
且つ、接点が開いてから、2秒くらい点灯し続けます。

上手くいきました。

訂正
この場合、フォトカプラーがローで動作するので、
駄目です。
ブザーの音が小さい
TR   2016/02/07(Sun) 08:15 !email! No.730 !ico_edit!
Re: 続いています
TRさん、猛牛ロックさん,おはようございます。

TRさn、回路のことはよく分からないのですが、個人的には、726の方がいいように思いますが・・・・。
726で内部プルアップがうまくいかないようでしたら、外部プルアップにするとか。
726の内部プルアップの設定は、大丈夫でしょうか。→OPTION_REGの設定。
それと、PICで直接のドライブがだめなら、トランジスターかまして、ブザーのドライブという手もあるかも。
確か、5mA程度だっと思うので、直接PICでも大丈夫かとも思いますが・・・・。

猛牛ロックさん、フラッシュメモリーのアドバイスありがとうございました。

>256文字入れても2kバイトです。1937は8kワードなのでこの辺りの文字数までは大丈夫かと思います。

ですが、配列でとるとRAM領域に配置されてしまうようです。26文字宣言すると、RAMが98パーセント近く消費されます。
プログラム領域に配置する方法あるんでしょうかね。この変、未知なる部分です。
それから、PICのこともAVRのこともよく分からない部分多いのですが、

>AVRだと定数をフラッシュからSRAMに自動で読み込ませない方法があります。

意図的に操作しないと、読み書きはできないようです。

http://www.geocities.jp/zattouka/GarageHouse/micon/MPLABX/HEF/HEF.htm

に、操作方法ありました。これ、参考にフラッシュメモリーの操作もしてみようと思います。
mabo   2016/02/07(Sun) 08:49 !email! No.731 !ico_edit!
Re: 続いています
回路図を更に変えました。
RB0は、エンドミル経由で直にGNDに落とす。

そして、エンドミル(接点)の開閉により
RA7からの出力モニター用にSEC基板に見立てた暫定の発光LEDを設けて、
動作確認したところ、
プリセッター(接点)の開閉により発光LEDが同期し、
且つ、接点が開いてから、2秒くらい点灯し続けます。

上手くいきました。
TR   2016/02/07(Sun) 09:12 !email! No.732 !ico_edit!
Re: 続いています
実機でテスト、繋いだ瞬間になりだします。
TR   2016/02/07(Sun) 11:04 !email! No.734 !ico_edit!
Re: 続いています
> SEC基板からの信号を受ける為に、

しようとしている事が良く分かりません。MACHへ出力するのではなく受けるのですか?
何の信号(合図)を受けるのですか?

このマイコン(16F627A)の設計の問題ですが、基本的に入力はBポート、出力はAポートで設計されています。
Bポートには内部プルアップ抵抗が付いていますけど、1ピン毎にオンオフ出来ません。一斉にポート毎にオンオフです。
なのでプルアップしたBポートに接続したブザーにはL出力でも微電流が流れます。音はならないでしょうけどあまり良くないですね。
RA5(リセットピン)は内部プルアップがあるので何も繋がなくて良いと思います。

> TRISB = ~0;

PB0は入力
PB1は出力ブザー
PB2は出力ブザー
PB3〜7未使用
ですから最低でも0b001です。未使用ピンを入力にするなら0b11111001,
出力にするなら0b00000001にして下さい

*********************************
やっぱりMACHへのプローブ用の出力でしたね。これはマイコンとは関係ありません。
処理しても高速でスルーさせるだけです。外部割り込みで最優先で処理させれば速度的には可能
かも知れませんけど特に処理するわけでなくスルーさせるだけなので入れない方が良いです。
添付図の様に結線すればOUT RA0となっている所をOUT RA0=RA1に変えるだけで良いと思います。


>MABOさん
マイコンは普通メモリは、フラッシュ、SRAM、EEPROMと3種あります。
で19F1937はフラッシュが8Kワード、SRAMが512バイト、EEPROMが256バイトです。
> アルファベット26文字メモリーに積むと、ぎりぎりで、オート変数の領域もなくなってしまうようで、コンパイルのエラーになります。
これはSRAMの領域のことです。
26文字だと208バイトです。フラッシュの容量は全く問題ありません。「オート変数の領域」はSRAMの中のことですから、
SRAMを増やすか、SRAMにはロードさせないでフラッシュのデータとやり取りするかです。
多分24LS256は24LD256のEEPROMだと思うのですけど、これは実行中に書き込み可能なメモリですが、読書きは遅いですし、
普通目的はSAVEすることです。使っているパラメータをセーブしておいて、次回はその設定を読み込みます。
例えば、液晶の照度だったりゲームのスコアだったり、プログラムでは書けない利用者が設定するパラメータを保存するのが
主な目的です。勿論、固定データを保存することも可能ですけど。
ドットデータをEEPROMに保存したとしてもやはりSRAMにロードさせれば同じくオート変数の領域は無くなります。

マイコンは起動するとフラッシュに書かれたデータをSRAMに書き移します。でも容量は圧倒的にフラッシュが多いので
パンクします。それで不必要な固定データはSRAMにはロードしない様に明記します。それをしないとエラーになります。
フラッシュとEEPROMだとフラッシュの方が断然早いでしょうから、書き換えないような固定データは普通フラッシュに
置いておきます。
16F1939だとSRAMは1024バイトになるので26文字は全く問題ないと思いますけど書き込む文字(コード)も長くなると
やっぱりメモリを食います。多分
const char DATA[] ={0x45,0x1f,0x03,......};
みたいに書くとフラッシュの残ると思います。このあたりの書式の仕様はコンパイラごとに違うので自信はありません。
「const」が一つのキーワードです。

参考までに、AVRだとavr/pgmspace.hを読み込ませたうえで、PROGMEM修飾子を使って宣言します。
#include <avr/pgmspace.h> //必要なヘッダファイル
const char pw[] PROGMEM="カウントチ リセット"; //この宣言でSRAMにはロードされない
c=pgm_read_byte(pw); //読み出し。ただしこれでは最初の1字(カ)です。実際はpw+tのような引数でアドレスを変えながら読み込みます
猛牛ロック   2016/02/07(Sun) 13:39 !email! No.735 !ico_edit!
SSR 燃えました 投稿者:TR 投稿日:2016/02/04(Thu) 21:05 No.693

maboさん、こんばんは。
困ってしまいました。
合成写真 左は、掃除機と制御用のOmron製SSR(G3R-OA202SZN)の図面です。
ほんの少し動作したら、掃除機が暴走したので、おかしいと思って、SSRを見たら、燃えていました。
繋ぎ方がおかしいのでしょうか??
原因を教えて下さい。

Re: SSR 燃えました
SSRにカタログです。
赤枠が使用したSSRです。
TR   2016/02/04(Thu) 21:11 !email! No.694 !ico_edit!
Re: SSR 燃えました
あっそうか!
2Aです。
それが原因ですか??
そうだよな〜
P=VI
1000Wとして
1000/100=10A

あ〜、良く調べればよかった。
どこかにSSRをご存知有りませんか?
失敗だ
TR   2016/02/04(Thu) 21:16 !email! No.695 !ico_edit!
Re: SSR 燃えました
TRさん、こんばんは。猛牛ロックさんこんばんは。

被害はSSRだけですか。他に及ぶと大変ですね。
○月に40Aのものがでてますが。

http://akizukidenshi.com/catalog/g/gI-08620/

使ったことはないので、わかりませんが。

配線は添付の配線図のようにするのだと思いますが。
TRさんの写真に、端子のNO書いてないので、ちょと不明ですが。
少し変かも?
mabo   2016/02/04(Thu) 21:43 !email! No.696 !ico_edit!
Re: SSR 燃えました
うわー、燃えたとは、、、
まぁ、SSRだけのようなので不幸中の幸いでしたね。
実際、SSRが大丈夫でも掃除機も熱を持って壊れやすいので注意して下さい。

SSRは秋月のキットが有名です。http://akizukidenshi.com/catalog/g/gK-00203/
ただ、偶然、売り切れのようですね。定番なので直ぐに補充されるだろうと思います。
SSRのコーナーでは更に大容量なキットやチップもあります。
http://akizukidenshi.com/catalog/c/cssr/
(私は25Aキットのような構成で自作しています)
稀に似たような機種(G3MB-202P)も使うのですけど、10Wや20W程度の小さな(シンクロナス)モーターに
使っています。
自作は面倒ですけど、NC(B接点)にも出来るので、大抵、パーツで組んでいます。
猛牛ロック   2016/02/04(Thu) 21:56 !email! No.697 !ico_edit!
Re: SSR 燃えました
慌てて回路図を書いたので、不鮮明となってしまいました。
済みませんでした
回路は、maboさんのものと同じです。

秋月のSSRですが、ヒートシンクは付ける必要がありますか?
http://akizukidenshi.com/catalog/g/gK-00203/

掃除機はモノタロウで、1200Wです。
https://www.monotaro.com/g/00357192/?t.q=%91%7C%8F%9C%8B%40
最近慣れてきて、SSRの定格を気にしませんでした。
TR   2016/02/04(Thu) 22:07 !email! No.698 !ico_edit!
Re: SSR 燃えました
注意書きを見ると、放熱は必須のようですね。
下の商品は、放熱板に直接取り付けがOKのようですが、、、
3本足ですけど、
繋ぎ方を知っていますか?
http://akizukidenshi.com/catalog/g/gK-00210/
TR   2016/02/04(Thu) 22:45 !email! No.699 !ico_edit!
Re: SSR 燃えました
TRさん、猛牛ロックさん、こんばんは。

TRさん、手元にある取説です。これだと、最大35Aの表記がありますね。
でも、掃除機だと、突入電流?がきっと、多いでしょうね。
余裕のあるものがいいかもですね。
mabo   2016/02/05(Fri) 00:03 !email! No.700 !ico_edit!
Re: SSR 燃えました
maboさん、資料のご恵与、有難うございます。
ちょっと面倒そうなのと、サージですか、、、。
やはり、最初にご紹介をしてくださった、↓にしました。
http://akizukidenshi.com/catalog/g/gI-08620/

燃えてしまったSSRで、開閉の動作を確認していますので、
このSSRをかえば、もう大丈夫です。
TR   2016/02/05(Fri) 06:23 !email! No.701 !ico_edit!
Re: SSR 燃えました
maboさん、続けて失礼します。

過日教わった、間欠のプログラムを利用して、
タッチプローブがONでブザーが鳴る。
そして、OFFの後も、少々なる
以上を出来るかと思って、、、
↓を利用しました。
ただし、delay_ms(10)にしました。

// 待ち時間関数}
void Second(int sec){
while(sec >0){
sec--;
__delay_ms(10);
}
}


これで、ブザーが鳴りましました。
でも、OFFの後も、少々なる が上手くできません。
どの様にしたらよいでしょうか??

お手すきの時で結構ですので、
教えて下さい。


PS
プログラムです。
/*****************************
* 間欠タイマー
* 16F627A
* XC8 V1.35
* No481
* RA6←MACHからの入力想定
* RA2←制御機器へ
*****************************/
#include <xc.h>
#define _XTAL_FREQ 4000000 //delay用宣言
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
// CONFIG
#pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
#pragma config BOREN = OFF // Brown-out Detect Enable bit (BOD disabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EE Memory Code Protection bit (Data memory code protection off)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
#define KanketuTime 2
#define DousaTime 1
#define On 0
#define Off 1
int Start;
//関数宣言
void Second(int sec);
void interrupt InterSyori( void ){//TMR0の割り込み処理
if(TMR0IF==1){//割り込みがあったら
if(RA6==0){//MACHからの信号をしらべて0(Low)だったらスタートのフラグを1にする
if(Start==0){
Start=1;
}
}
if(RA6==1){//MACHからの信号をしらべて1(High)だったらスタートのフラグを0にして
if(Start==1){
Start=0;
RA2=Off;//機器の動作を強制的に止める。
}
}
TMR0=0;
TMR0IF=0;
}
}
// メイン関数
void main (void){
OSCF=1;//内蔵発振器 4MHz使用に設定
CMCON = 0x07;// 1,2,17,18端子を入出力端子に設定
PORTA = 0x00;// 電圧レベルの初期設定
PORTB = 0xFF;
// 入出力設定
TRISA = 0b01010000;//RA5は入力専用・RA6は入力他は出力
TRISB = 0b00000000;//RB0は入力
//初期設定
RA2=Off;//MACH
RA6=Off;
Start=0;
//割り込み設定
OPTION_REG=0b000000000;//プリスケラ? 2 5ビット=0 WDTは使わない
TMR0=0; //TMR0カウンターを0に
TMR0IF=0; //TMR0フラグクリアー
TMR0IE=1;//TMR0割り込み許可
GIE=1;//全体割り込み許可
// 永久ループ
while(1){
if(Start==1){//スタートフラグが1なら動作開始
RA2=On;
Second(DousaTime);
RA2=Off;
Second(KanketuTime);
}
}
}
// 待ち時間関数}
void Second(int sec){
while(sec >0){
sec--;
__delay_ms(10);
}
}
TR   2016/02/05(Fri) 07:29 !email! No.702 !ico_edit!
Re: SSR 燃えました
TRさん,おはようございます。頑張っておられますね。

割り込み使わなくても大丈夫だと思いますが、TRさんのアップしてくださったプログラムに多少手を加えでも動作させられると思います。

要は、ブザーが「On→Off」の時だけ、ちょと間を置いてブザーを切ればいいので、ブザーが鳴っていたというフラグを作って判定すればいいと思います。
割り込みの方で、ブザーのOn、Offしてもいいのですが、
割り込みにWait()を入れると、割り込みを使う意味がなくなってしまうので、
main()の方で処理すればいいと思います。

MACHへも出力がないようですが、もし出力するようであれば、割り込みのところにいれれば大丈夫かなと思います。
ちょっと、チャタリングが心配かなあ。
mabo   2016/02/05(Fri) 10:07 !email! No.703 !ico_edit!
Re: SSR 燃えました
> これで、ブザーが鳴りましました。
> でも、OFFの後も、少々なる が上手くできません。
> どの様にしたらよいでしょうか??

言葉で動作を説明出来るようになるのが重要です。
より細かく動作を説明してください。
次に、マイコンの動作として説明してください。
つまり、「エンドミルがタッチプローブに接触したら」→「入力ピンがLになったら」です。
それが出来るようになったら、次にその動作がプログラムでどう配置すれば実現できるか
考えてください。

例、
入力ピンIN---プルアップ、出力ピンOUT---アイドルロー、遅延時間set_time(0.01ms単位16ビット)、0.01msタイマーtimer(16ビット)
<メイン関数>
・入力ピンがLにだったら出力ピンをHにしてタイマーリセット if(IN==0){OUT=1; timer=0;}
・チャタリング対策はしないで、最初の接触で動作させる。(何もしない)
・入力ピンがHだったら、タイマーを見て想定時間以上経っていたら出力L if(IN==1&&timer>set_time)OUT=0;

<タイマー割り込み>
16ビットで0.01msタイマーを作る。→4Mhz(1Mサイクル)で64分周だと156.25サイクルで0.01ms→99にセット
タイマーは50000で停止させるif(timer<50000)timer++;

※タイマーは両関数で扱うのでグローバル変数にする

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 

//周波数等は16F627Aに合わせています。取り合えす、接触が終わった後2秒後に止まります。
#include <xc.h>

// *** CONFIG 略  ***

#define set_time 200 //遅延設定時間
#define IN RA0
#define OUT RA1
unsigned int timer;

void interrupt InterSyori( void ){
if(TMR0IF==1){
TMR0=99; //0.01msごとに割り込み
TMR0IF=0;
if(timer<50000)timer++;
}
}

void main(void){


OSCF=1;//内蔵発振器 4MHz使用に設定
CMCON = 0x07;// 1,2,17,18端子を入出力端子に設定
/* *********************************
TRISA =
TRISB =
*********************************** */

OPTION_REG=0b00000101; //プリスケラを64
TMR0=99; //TMR0カウンターを99にする→0.01msごとに割り込み
TMR0IF=0;
TMR0IE=1; //TMR0割り込み許可
GIE=1; //全体割り込み許可

while(1){
if(IN==0){
OUT=1;
timer=0;
}else if(timer>set_time)OUT=0;
}
}
猛牛ロック   2016/02/05(Fri) 12:44 !email! No.704 !ico_edit!
Re: SSR 燃えました
maboさん、早々のレスに感謝申し上げます。
早速,ビルトしましたが、残念ながら、エラーです。
自分には見ても分かりませんでした。
ご確認して下さい。


それから、
猛牛ロックさん
本日、ブロワを手動で動作確認をしました。
サイコーです!!(^^♪
本当に素晴らしいですよ。
赤枠のLEDは、間欠と同期しています。
これで、モニターもできます。
今後は、掃除機のノズルをML4本体に取り付けたいと思います。

そうそう、明日、秋月のSSRが来ますので、
MACHからの、信号での動作確認もできると思います。
本当に有難うございます。

ブザー用のプログラムは、確認しますね。
TR   2016/02/05(Fri) 20:41 !email! No.705 !ico_edit!
Re: SSR 燃えました
猛牛ロックさんへ

RA0が入力端子で、
RA1が出力端子ですか?
TR   2016/02/05(Fri) 22:21 !email! No.706 !ico_edit!
Re: SSR 燃えました
TRさん、すみませんでした。コンパイラー通していませんでした。

一番最初のコメントアウトの部分が抜けてました。あと、最後の「{」等の整合性がありませんでした。

コンパイル通ってるの、アップしておきます。参考程度にしてください。

MACHへの信号は、いれていません。キットで遊ぼうのLEDで動作、たしかめてみてください。
mabo   2016/02/05(Fri) 22:56 !email! No.707 !ico_edit!
Re: SSR 燃えました
maboさん、レス有難う。

void interrupt InterSyori( void ){//TMR0の割り込み処理
InterSyoriはどういった意味があるのでしょうか?


!!! 追記
思い出しました。
void interrupt 関数名(void){
if(フラグ==1){ 処理 }

これだ
関数の使い方は、多種多様です(参った〜




以下訂正
maboさんへ

>要は、ブザーが「On→Off」の時だけ、ちょと間を置いてブザーを切ればいいので、
ブザーが鳴っていたというフラグを作って判定すればいいと思います。
割り込みの方で、ブザーのOn、Offしてもいいのですが、
割り込みにWait()を入れると、割り込みを使う意味がなくなってしまうので、
main()の方で処理すればいいと思います。


よく見ると 下が追加されています。
これが、「ブザーが「On→Off」の時だけ、ちょと間を置いてブザーを切ればいい」
ということですか?

if(Start==0){
if(Buzer==On){
Second(KanketuTime);
RA2=Off;
Buzer=Off;
しかし、音が鳴りません。
RA2は点灯したままです。
TR   2016/02/06(Sat) 06:07 !email! No.708 !ico_edit!
Re: SSR 燃えました
> RA0が入力端子で、
> RA1が出力端子ですか?

defineの部分を実際の端子に変えてください。INが入力端子、OUTが出力端子です。
無記入にしてもよかったのですが、一応、RA0とRA1を書いただけです。
想定しているのは、ツールセッターの接触(入力)→ブザー(出力)です。
それ以前に、マイコンは16F627Aにするのですか?
この程度の事なら、8ピンの方が場所も取らなくて良いですよ。
勿論、627Aでもサイズと価格以外で問題になる点はありませんけど。

今回の場合は
0.01s毎にカウントアップするタイマーを作って、
入力があれば、出力オン&タイマーリセット0
入力が無くて、タイマーが設定値を超えていれば出力オフ

という簡単なものなのでどちらかというとプログラムよりも設定部のほうが大事です。
周波数設定、I/Oピン設定、タイマー割り込みの使い方などです。
もっとも、私もconfig辺りはコピーして、確認もしないで使いだしています。


※私の好みだと接触したら「短時間」鳴らす、というものです。接触中ずっと鳴らすのは嫌です。
 でも一瞬でも触れた場合は、一瞬ではなく、同じ「短時間」鳴って欲しい。という動作です。

動作をまとめると、
接触したらブザーを一定時間鳴らす
鳴っている時間中に離着があっても無視し、鳴り終わってから離れたらリセット(鳴らす準備)
となります。

プログラムだとメインのループ部は下記の様な感じでしょうか。
while(1){
if(IN==0&&timer==50000){
timer=0;
OUT=1;
}
if(timer==set_time){
timer=60000;
OUT=0;
}
if(IN==1&&timer==60000) timer=49998; //リセット時のチャタリング対策
}
猛牛ロック   2016/02/06(Sat) 06:23 !email! No.709 !ico_edit!
Re: SSR 燃えました
猛牛ロックさん おはようございます。

>それ以前に、マイコンは16F627Aにするのですか?
そうです。

while(1){以下を 709に入れ替えたら、エラーです。
元(704)は、ビルとできますが、
RA0をONとしても、ブザーに見立てたRA2のLEDは点滅しません。
TR   2016/02/06(Sat) 06:50 !email! No.710 !ico_edit!
Re: SSR 燃えました
> 元(704)は、ビルとできますが、
> RA0をONとしても、ブザーに見立てたRA2のLEDは点滅しません。

そのままでは駄目ですよ。ちゃんとマイコンに合わせてI/Oを設定してください。
また、必要に応じて、プルアップ、若しくはプルダウンさせないと駄目です。
627Aなら、Bポートに内部プルアップ抵抗があるので
入力RB0、出力RA0にしました。内部プルアップなので0V入力でオンです

<追記>
709は1字全角空白が入っていました
「if(IN==1&&timer==60000) timer=49998; //リセット時のチャタリング対策」
猛牛ロック   2016/02/06(Sat) 07:48 !email! No.711 !ico_edit!
Re: SSR 燃えました
>そのままでは駄目ですよ。ちゃんとマイコンに合わせてI/Oを設定してください。
今回の提案には、I/Oは、記載されていないのですか?

間欠の時に、下記のようにしましたが、このことですか?

// 入出力設定
TRISA = 0b01100011;//RA0、1はセレクタ、RA6はMACH入力、RA2は掃除機出力、RA3はブロワ,RA7は発光LED
TRISB = 0b11111111;//RBは入力。ロータリースイッチ2個 1=入力 0=出力
TR   2016/02/06(Sat) 08:33 !email! No.712 !ico_edit!
Re: SSR 燃えました
それもそうです。それ以外も使うマイコン+使うピンに合わせる設定です。

> 今回の提案には、I/Oは、記載されていないのですか?

前回はわざと消えるように&目立つようにしておきました(/* ************* */)
間欠の時とは使うピンや方法が異なります。毎回、使うピンや方法に合わせて書き換えます。
場合によってはCONFIG部も書き換えます。
711に627A+入力RB0(内部プルアップ)、出力RA0にしたものを置いておきました。
※627AはBポートにしか?プルアップ抵抗が付いていません

709の全角スペースは直しておきましたけど、その位の修正は出来るようになってください。
猛牛ロック   2016/02/06(Sat) 08:55 !email! No.713 !ico_edit!
タッチプローブ改善 投稿者:TR 投稿日:2016/01/30(Sat) 21:54 No.675

maboさん、こんばんは。
以前、教えていただいた、タッチプローブですが、
SECさんから言われた点があります。
それは、SECさんの場合、
確認用の発光LEDの他にも、
音でも確認できるようにしているとのことでした。

今回、PICを初めて、PICなら、出来ると思い始めました。
方法論としては、
外部割込みでしょうかね〜。
でも、MACHに組み込んである、プログラムを改良するのが、
難しそうですね(苦笑

Re: タッチプローブ改善
TRさん、おはようござます。

タッチプローブに音とLEDですか・・・。MACHの方は、改良しなくても、そのままで、いけると思いますよ。

他の動作がないので、外部割り込み使わなくても、可能だと思います。
音、だと、圧電ブザー等でしょうかね。
http://akizukidenshi.com/catalog/g/gP-03958/
これあたりだと、発振回路内蔵なので、PICからの電源ON・OFFだけで、制御できそうですね。
5Vで5mA程度ですから、抵抗介して、直接ドライブできそうかなと思います。
発信回路内蔵タイプでないと、教科書のように、発信のプログラムも必要でしょうけど、これだと、ON・OFFだけかな。

多分、if( ){ }文だけで、大丈夫だと思いますよ。

 タッチプローブが接触→ブザ−ON
            LED−ON
            MACH−ON(OFF)


おもちゃは、お手本の回路がありましたので、それ、まねしました。

 http://www.piclist.com/images/www/hobby_elec/pic6_21.htm

74HC154が製造中止だったので、代わりに、

 http://www.geocities.jp/team_zero_three/TD4/#replacing_74hc154

を参考に、74LS138を2個×2で都合4個使いました。
mabo   2016/01/31(Sun) 09:59 !email! No.678 !ico_edit!
Re: タッチプローブ改善
>TRさん

私なら、(可能なら)直接ブザーを鳴らして、PICには通さないと思います。
それは、直接なら接触抵抗の具合で「鳴り」が変化するので接触具合がより確認できるからです。
また、PIC動作の確認にもなります。


> maboさん

配線はやっぱり大変だったでしょ?4枚ですからねー
私の「とりあえずブレットボード」配線じゃなくてきっちりされていますね。
動画拝見しました。

多分、予定動作としては
順次1つずつ点灯させていき、最左のマトリクス(M4)の一番左下になったら、最右のマトリクス(M1)の右上から
順次点灯させていく、というものだと思います。

となると
・M4→M1の受け渡し時にM4用のLS138をdisable出来ていない
・M2→M3の受け渡しが出来ていない(M2はdisableされているがM3がenableされていない)
の2点ですね。
逆に言えば、M1→M2は全て上手く処理されている、とも言えます。

両者とも配線の可能性もプログラムの可能性もありますね。
私の失敗(リセット端子やOD端子)も考慮にいれてくださいね。
勿論、破損の可能性もありますけど。

使ったICは74LS138だったんですか。私は専ら「HC」の方を購入することにしています。
138はTRさんの例の学習キットで初めて知りました。
買い物のついでに4つほど入手しました。また、ついでに2色モノhttp://akizukidenshi.com/catalog/g/gI-09878/
も一つ手元にあります。でも前回の配線の面倒さを思い出すと手を付ける気が起きていません(;'∀')
因みに、PICも数種買い求めました。(これで多少の実証もできます)
猛牛ロック   2016/01/31(Sun) 15:59 !email! No.679 !ico_edit!
Re: タッチプローブ改善
maboさん、猛牛ロックさん、レス有難うございます・

電子部サーのご紹介有難うございます。DC5Vで5mA!
これなら、OKですよね?
現在は、SEC基板の出力端子をフォトカプラーで受けて、DC5V〜発光LED〜エンドミル〜プリセッター〜GND
の流れです。
発光LEDと並列に組んでみようかと思います。

moboさん、PIC、なんて無茶ぶりして済みませんでした。


写真は、操作盤の作り直しです。
文字は、掘り直しました。
アドバイスを頂いたので、綺麗に彫れたと思います。
有難うございます。
TR   2016/01/31(Sun) 18:12 !email! No.680 !ico_edit!
Re: タッチプローブ改善
回路の写真です
TR   2016/01/31(Sun) 20:55 !email! No.681 !ico_edit!
Re: タッチプローブ改善
TRさん、猛牛ロックさんこんばんは。

16F1937ですが、日本語のマニュアルがあるようです。

http://www.microchip.jp/docs/41364B_JP.pdf

これだと楽です。

猛牛ロックさん、いろいろありがとうございます。残念ながら、PIC破損です。
原因はVSSに通電させてしまったことです。
ICソケットに刺すときに、一つずらして刺しました。二つとも同じことやって、同じ状態です。
差し直すまでは、正常に動いていました。ちょっと、手直しするのに外して、再び刺すときのトラブルです(ちょっと涙)。

TRさん、やはりCNCの威力ですね。きれいな、仕上がりです。
私の工作は、本当に大人のおもちゃです。それでも、思った通りに動いたときは、うれしいです。
破損のPIC再注文です。お店によって値段段違いです。

   ○月 250円
   ○立 500円
   ○S 296円(最小出荷5個)
   ○ark 210円
    (http://park.jp/items/index?dm=efellows.jq&fid=0101000&icd=MICROCHIP_PIC16F1937_I_P&paid=0031&pid=0000&sk=16f1937

 それにしても、○立はたかい。
mabo   2016/01/31(Sun) 21:08 !email! No.682 !ico_edit!
Re: タッチプローブ改善
> TRさん

その回路でも動作はするような気はするのですが、あまりよくありません。
フォトカプラのLEDに流す電流=表示用LEDの電流+ブザーの電流
になります。LEDは半導体なのでそれと並列にブザーは抵抗値を調整し辛いと思います。
(そのままだと20V程度かかるのでうるさ過ぎるような気がしますし、フォトカプラのLED
は30mA??程度になるので良くないです)

単純に24V-抵抗(ボリューム)-ブザー-エンドミルで試してみる方が良いと思います。


> maboさん

> 差し直すまでは、正常に動いていました。
それなら、破損で間違いない所ですね。「点灯しない」だけならケーブルが抜けた可能性もありますけど
「消灯しない」はケーブル抜けはないですよね?

使ったのは16F1937ですか。○月は不思議と上位の16F1939の方が安いんですよね。
何か理由があるのでしょうか?単にメモリ等が増えているだけのような気がします。
(1939は1個購入しました)

PICはやはり○月が安いですね。ほぼ1択だと思っています。
因みにMISUMIでもほぼ全種扱っています。
1937が382円、1939が460円(税別)です。MISUMIでマイコンも買わないですね。

<追記>
○arkはE-Fellowsですね。 http://efellows.jp/
PICはかなり安めで売っています。16F1939も200円(税込)でした。
品揃えは秋月に遠く及びませんけど良い店のようです。
猛牛ロック   2016/01/31(Sun) 21:40 !email! No.683 !ico_edit!
Re: タッチプローブ改善
図のような感じでしょうか?
電源は、DC5Vにしました。
この場合、可変抵抗は、2KΩ位で宜しいでしょうか?
TR   2016/01/31(Sun) 22:44 !email! No.684 !ico_edit!
Re: タッチプローブ改善
> 電源は、DC5Vにしました。

5Vでも、5V-抵抗-ブザー-エンドミルです。
※本来は
5V-抵抗-フォトカプラ-エンドミル
5V-抵抗-LED-エンドミル
5V-抵抗-ブザー-エンドミル
として、1つずつ最適な抵抗値を付けるのがベターです。
猛牛ロック   2016/02/01(Mon) 00:18 !email! No.685 !ico_edit!
Re: タッチプローブ改善
並列にLEDとブザーを繋ぐのは、×?
TR   2016/02/01(Mon) 06:56 !email! No.686 !ico_edit!
Re: タッチプローブ改善
> 並列にLEDとブザーを繋ぐのは、×?

直列にフォトカプラが入っているのが良くない所です。
全部並列が一番いいです。
枝がわかれるのが良くない所です。
抵抗値(ボリューム)をいじると、フォトカプラの電流とLEDの電流も変化します。
一本(直列)でフォトカプラとLEDならまだ、両者の電流は同じなのでそれでも良いですけど
枝が分かれてブザーとLEDだとブザーの電流+LEDの電流がフォトカプラの電流になり、偏りが
生じます。また、そのようにボリュームをつけて抵抗値を変化させると全ての電圧が変化します。
今回の場合は、おおよそ、それでも動作しそうですけど、わざわざ、誤動作が起こるような回路に
すべきではないです。
音量調整のためのボリュームが電流値調整のためのボリュームになってしまいます。


<追記>

> 私なら、(可能なら)直接ブザーを鳴らして、PICには通さないと思います。
と書きました。その考えが変わった訳ではないのですけど、
例えば、「触れたら一定時間(1,2秒)鳴らして止める」とかならPICも良いかもしれません。
また、ADCが付いているもので電圧値に応じた動作をさせる、とか、あるいは手パがらみになりますけど、
「0.001o下げて通電をチェックして」の動作を高速に繰り返す動作のボタンを付ける、とか
まぁ、色々試してみるのもいいかと思っています。
猛牛ロック   2016/02/01(Mon) 09:36 !email! No.687 !ico_edit!
Re: タッチプローブ改善
猛牛ロックさん、
有難うございます。
お写真でやってみます。

maboさん、
電子ブザーのご紹介に感謝申し上げます。
TR   2016/02/01(Mon) 18:24 !email! No.689 !ico_edit!
Re: タッチプローブ改善
TRさん、猛牛ロックさんこんばんは。

猛牛ロックさん、16F1937にしたのは、特に理由はありませんでした。
一番最初に目にとまったのを頼みました。言われてみれば、16F1939の方が、安くて、メモリーも倍なんですね。失敗です。

TRさん、いろいろ改造ですね。あまり複雑じゃない方がいいかも。シンプルイズベスト、なんて、ね。
でも、細かい改良加えていって、使い勝手は、格段によくなるでしょうね。

明日、追加のPICがきますので、いよいよ、流れる?文字に挑戦です。
どんなにしようかな、なんて、考えています。
いろいろあさると、できあいのものもあるんですね。この辺は、さすが商売だと思います。

 http://www.ministudio.co.jp/Cgi-bin/Order-JP/DetailJp.asp?GoodsNum=204

漢字も処理してるようですが、漢字コードからドットへの変換は、どうしてるのかな、なんて、興味津々です。
mabo   2016/02/01(Mon) 21:20 !email! No.690 !ico_edit!
Re: タッチプローブ改善
TRさん、猛牛ロックさん、こんばんは。

流れるサインボードがいちおうできました。ちょっと不具合があるのですが、それらしく見えます。
ちょっと、動きがぎくしゃくしてますが。

ただ、アルゴリズム的には、どうなのかな、なんて思ってます。
それと、ダイナミック表示なので、LEDがちょっと暗くなります。

しばらく遊んでみようと思います。
mabo   2016/02/02(Tue) 22:38 !email! No.691 !ico_edit!
Re: タッチプローブ改善
maboさん、猛牛ロックさん、こんばんは。
やっと、操作盤が完成しました。
明日は、上手くいけば、実験できます。
もうワクワクで、興奮しています(笑
若し、成功したら、
タッチプローブも電磁ブザーの実験に入ろうかと思います。
想像すると、PICで、プローブが離れてからも、音が鳴った方がいいように思います。


それから、サインボードやりましたね!!
頭の良い人は羨ましいです。
これからやろうとする、プローブのプログラムを考えただけで、頭が痛くなりそうです(苦笑
TR   2016/02/03(Wed) 22:26 !email! No.692 !ico_edit!
続き 投稿者:mabo 投稿日:2016/01/29(Fri) 22:18 No.669

TRさん、猛牛ロックさん、こんばんは。

TRさん,ご質問の件ですが、猛牛ロックさんが、レスしてくれましたね。
補足すると、下記の部分ですが、別な言い方すると、
 
 記憶したPORTBとPORTBが異なる時→時間のロータリースイッに変化があった時

ということでしょうかね。

「||」とか「&&」とか条件判断でよく使いますね。


猛牛ロックさん、やっと、配線が終わりましたが、正しく配線できた自信はありません。
諸兄のようにきっちりとしたものにはできませんでした。
これだと、間違いも多いんですよね。
簡単にチェックのプログラム組んで、動かしてみます。
どうなることやら。

Re: 続き
下に、
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1180180856

「0を正常終了、
0以外を以上終了というプログラムが多いです。」
となっています。

また、無くてもいいとあります。

意味としては、処理を正常終了したということなんでしょうか?
TR   2016/01/29(Fri) 22:24 !email! No.670 !ico_edit!
Re: 続き
> 意味としては、処理を正常終了したということなんでしょうか?

数値に特別な意味はありません。単に状況を関連づけているだけです。
正常終了や異常終了は単なる識別するためのものですから5でも-20でも
何でも構いません。

> if((MODE!=(PORTA&0b11))||(MODE==3&&MACH_sig==0)||(PORTB_save!=PORTB)) return 1;

if(MODE!=(PORTA&0b11))return 0;
else if(MODE==3&&MACH_sig==0) return 8;
else if(PORTB_save!=PORTB) return -3;
にして、正常終了を関数の一番下に「return 123;」
にしても全く構わないです。その戻り値に応じたプログラムを書いていくだけです。

ただ、正常、異常を知らせるだけが戻り値ではありません。

例. 絶対値をもとめるプログラム
int abs(int num){
if(num<0)num=-1*num;
return num;
}

このように計算結果を返すようなものもあります。引数をファイル名のポインタにしてそのファイルの文字数を返したり
使い方は様々です。
猛牛ロック   2016/01/29(Fri) 23:57 !email! No.671 !ico_edit!
Re: 続き
猛牛ロックさん、maboさん、おはようございます。


猛牛ロックさんへ
レス有難うございます。


char Second(unsigned int sec){ //1S→0.1Sに変更。int secに1を入れると0.01秒ウェイト
while(sec >0){
if((MODE!=(PORTA&0b11))||(MODE==3&&MACH_sig==0)||(PORTB_save!=PORTB)) return 1;
//セレクタスイッチが変更された場合とMACH制御でのオフ信号、間欠時間の変更があった場合はwhileから抜ける
sec--;
__delay_ms(10); //この部分を1000→10に書き換えたので1s→0.01s
}
return 0;

2進数でセレクタスイッチを読み込んで、1の時は、returnを1とする。
ただし、
while(sec >0){  左によりループされているので、

return=1を受け、DousaTime=1となり
0.01s待たされて、
sec--のところで、1−1が行われる??

以上の、条件式による場合の待ち時間を作っておいて
更に、メインプログラムの中で

change=Second(DousaTime);
により、1が呼び出された場合、changeに1がとなり、
前途の待ち時間関数により、待つ訳ですか?

流れは、
待ち時間関数を作る



メイン関数に
セレクタが変わった場合、待ち時間関数を実行し、動作を滑らかにする??
ということでしょうか?

どうぞ、宜しくお願いします。
TR   2016/01/30(Sat) 08:14 !email! No.672 !ico_edit!
Re: 続き
> //セレクタスイッチが変更された場合とMACH制御でのオフ信号、間欠時間の変更があった場合はwhileから抜ける

このコメントは以前のままでした。後半部を「・・・変更があった場合は、戻り値1で関数終了」に直してください。

> 2進数でセレクタスイッチを読み込んで、1の時は、returnを1とする

違います。動作はコメントの通りです。それ以外の余計な解釈はありません。
「(MODE!=(PORTA&0b11))」は
MODE→メイン関数内のループで読み取っていたコードスイッチの値
PORTA&0b11→現在のコードスイッチの値を読み取る
です。そして、「!=」は、前項と後項異なっていれば1を返し、同じなら0を返します
つまり、その部分をまとめるとコメントの通り「セレクタスイッチが変更された場合」になります

> ただし、
> while(sec >0){  左によりループされているので、

この辺が全く違います。以前ここで使った「break」ではループを終了なのでもうこのwhileには戻ってきません。
while文の次に飛びます。しかし、while文の次でSecond関数は終わりなので関数も終わります。
今回のreturn文だと直接その関数を終わらせます。

> change=Second(DousaTime);
メイン関数内で上記の形でsecond関数を呼び出しました。
この「=」の意味は右辺の数値を左辺へ代入しろと言う事です。
つまり、「変数changeに、(DousaTimeを引数にした)Second関数の戻り値を代入しろ」です。
別の見方をすれば、second関数(戻り値のある関数)は戻り値を得るために実行されています。
second関数内で「return 1;」が出てきたら1を持ち帰り、処理は次の行の
> if(change==0){
に移ります
猛牛ロック   2016/01/30(Sat) 13:03 !email! No.673 !ico_edit!
Re: 続き
猛牛ロックさん レス有難うございます。
関数も、戻り値の有無により、随分と違うものだと分かりました。
と言っても、自分ではプログラムは組めません。

近日中に、アルミ板なども来ますので、基板を実機組み込めます。
やってみます。



話違って、写真を見て下さい。
以前、サーボアンプが壊れたかと、勘違いした原因が、分かりました。
圧着端子の抜けでした(笑
原因が分かって良かったです。


それと、手パの誤作動ですが、基板をアルミケースに入れれば問題ないのですが、
セラミックコンデンサとフェライトコアを噛ませたら、誤作動を起こさなくなりました。
ただ、セラミックコンデンサだけでは、誤作動を起こしました。
これも、ノイズ対策を向上できて嬉しかったです(^^♪


追伸
電磁接触器のサージですが、現在は、操作コイルに設置しています。
カタログを見ていたら、気が付きました。
電磁接触器には、本回路側にもサージキラー対策品が売っていました。
知らなかったです。
商品を注文したところです。
着たら、早速付けてみます。ノイズとの戦いです(苦笑
TR   2016/01/30(Sat) 21:29 !email! No.674 !ico_edit!
Re: 続き
TRさん、こんばんは。猛牛ロックさん、こんばんは。

プログラムの解説は、猛牛ロックさんの方が、確かですね。
私も、だいたい理解はできますが、細かい所になると、不正確です。

私は、2,3日書けて、おもちゃ作ってました。配線が結構大変でした。
テストプログラム走らせて、配線等の間違い直して、やっと、目的の、と思ったら、PICを破損してしまいました。

動画は、破損したPICの動きです。正常なら、LEDが一つずつ、上から下に行って、右からひだりへと移動します。
大丈夫だろうとたかをくくっていたら、2個もPIC破損です。

TRさんも、いろいろですね。電磁波は、経験ないのですが、やっかいなんでしょうね。
少しずつ改善して、使い勝手よくなるでしょうね。
mabo   2016/01/30(Sat) 22:46 !email! No.676 !ico_edit!
Re: 続き
maboさん、おはようございます。
凄いのを作りましたね!!
流石に熟練者です。

maboさんの解説は助かりますよ。
凄く分かりやすいです。
これからも宜しくアドバイスをお願いします。
TR   2016/01/31(Sun) 06:33 !email! No.677 !ico_edit!
Page: | 1 | 2 | 3 | 4 | 5 | 6 | 7 |

- JoyfulNote v6.02 -
++ Edited by Hamel ++