初めてのPIC 0x0C [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
_ _ PICをさわるのは今日が初めて、という超初心者のためのスレです。
(O>――<O) PIC選び、PICを使った回路は、誰でも最初は不安なものです。
/ (・) (・) ヽ 恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
○ /▼\ ○ 質問のしかたは、初心者質問スレの発言1を見てくださいね。
|(ヽ二フ ) |
/  ̄ ̄ ̄ ヽ
f ヽ / | PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
ヽ \ / ノ ・PIC専用のスレ
| \_ )(_/ ! 本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
| | ここの話がわかるようになれば、あなたはもう一人前のPICerです。
| | ・マイコンソフト 悩み事相談室
| | ̄ ̄| | マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
(_ノ ヽ_)
質問する時のコツ
・性格の悪い回答者はスルーしよう(相手すると逆効果)
・素人玄人などと 上から目線の回答者は、無視してください。相手してはいけません。
・そこそこ良い回答が出るまでしばらく再発言しないのもあり(良回答は後に出やすい)
・回答者のアドバイスで後日解決したら、結果報告しよう(とても喜ばれる)
・回答者は、僕たち初心者に優しくしてください。あなたも通ってきた道のはずです。
さ、質問どうぞ〜っ
0x0B 2017/05/08〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1494235320/
0x0A 2017/01/04〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1483498857/
0x09 2016/09/07〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1473238791/
0x08 2016/04/30〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1461994030/
0x07 2016/02/05〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1454648249/
0x06 2015/07/18〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1437151298/
0x05 2015/04/07〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1428391368
0x04 2015/01/02〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1420205108
0x03 2014/09/22〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1411314715
0x02 2014/05/20〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1400522979
0x01 2013/11/17〜 ttp://ai.2ch.net/test/read.cgi/denki/1384626558 >>895
>みっともないです。
>垣間見えてて面白いです
も立派な人格批判の一種だが、根拠は示さなくていいの? >最初の書き方だとき2行なので一瞬両方の端子が1や0と重なる事が問題だと理解しました。
これが理解できないな。
原因は他にあったのでは? >>898
ここの人たちは何だか書き方が回りくどい。
最初の
PORTA.B0 = ~PORTA.B0;
PORTA.B1 = ~PORTA.B1;
は、タイポなのかコンパイラーの違いなのか判らんところも含めて間違ってる。
とりあえずRA0とRA1を使うとしてXC8仕様で書くことにするけど。
まずタイポっぽい点を修正すると、
PORTAbits.RA0 = ~PORTAbits.RA0;
PORTAbits.RA1 = ~PORTAbits.RA1;
ただ、これだと>>891の指摘の通りマズイので、
PORTAbits.RA0 = ~PORTAbits.RA0
PORTAbits.RA1 = ~PORTAbits.RA0
とすればいいと思う。
1と5なら
PORTAbits.RA1 = ~PORTAbits.RA1
PORTAbits.RA5 = ~PORTAbits.RA1
信号の切り替わり時の数マイクロはこの際関係ないと思う。
圧電素子の応答速度が分からないけど少なくともマイクロ秒オーダーでは影響ないと思う。
少なくとも音が鳴らないってことは無いし、音量の差も確認できる。 2行に分けられた処理のうち、先の方が、赤、あとの方が青として(1)のようになっているということだと思います。
確かに、両方がHの期間、両方がLの期間があるわけですが…
圧電素子を駆動する周波数が10kHzだと仮定すると、図のAは100u秒です。
Bはおそらく数マイクロ秒程度なんですよね?
この図では、割と両方が同じレベルの期間があるように見えますが、実際は、もっと狭い期間になるはずです。
(2)は赤を基準に青の電圧を見たグラフなのですが、これだったら鳴らない、ってことはありません。
何か見落としがあるように思います。
振幅で見れば一目瞭然
>>904
この180位相がズレた0-5Vの二つの信号を、例えばRS485トランシーバICの差動入力で受ければ
出力は5V一定になる。
(実際にはRS485用ICは正論理・負論理入力なので、同相入力で出力0Vになるが)
音が大きくなる理由はICと圧電スピーカーは違うから、という事になるけど、
機械的な動作部分まで含めた圧電スピーカーの等価回路はどうなっているんだろ? ピエゾ(圧電)効果で結晶が電圧に応じて歪む現象だから、単一方向の電圧の場合に比べて逆相でドライブすると、歪みの方向が入れ替わることで振幅が大きくなるね。 >>906
等価回路って…。
金属板にセラミック貼ってあるだけ。 >>906
基本的にはピエゾ素子の等価回路は、水晶と同じくLCRの直列回路のみでL分が少ないので
ハイインピーダンスの抵抗を通して容量をドライブしているだけ コンデンサか・・・じゃ半波倍電圧整流回路なんかをイメージすれば
当たらずもも遠からずなのかな? >>912
デジタル脳はわかんないなら口出ししないで >>912
ん?
等価回路まではググれば誰でも見つけられるので、
その先のご高説をお待ちしているんです。
アナログ脳的にはそこまでで終わりですか? >>906
>この180位相がズレた0-5Vの二つの信号を、例えばRS485トランシーバICの差動入力で受ければ
>出力は5V一定になる。
一定にならないよ。
正入力がH、負入力がLのときは出力はH。
いれかわって、
正入力がL、負入力がHのときは出力はL。 http://akizukidenshi.com/catalog/g/gM-09086/
こういう出力が1組しかない電源の場合に出力端子を増やすにはどうやるのがいいのでしょう?
おススメというか定番というかそういう方法があったら教えてください。 >>918
「絶縁端子」に必要な本数の配線をまとめて電源の接続端子にネジ留めする。
または必要回路数のネジ留めの「端子台」を設置して各々配線する。
電源を必要とする箇所を「わたり線」で数珠つなぎに配線する。
等々。 >>919
ありがとうございます。
そういときはコレ、というような定番の物がある訳ではないんですね。
「わたり線」というのは初耳でしたが、こんなものを使うのはその方式でしょうか?
このパーツ自体が初見なんですが、よくある方法?
http://www.ebay.com/itm//112489801074 >>920
わたり線はそういう数珠繋ぎの技法を指す用語で特定の製品の事ではありません。
電源(装置)と電源を必要とする相手との関係は千差万別で、電気的、機械的仕様を満足していればある程度は経験と好みというところもあります。 >>918
そもそも、分岐したい総線数と1線あたりの最大と最小電流は? >>917
申しわけない、改行も含めて誤解されるような書き方をしてしまった。
例えばRS485トランシーバICの差動入力で受ければ出力は5V一定になる。
→RS485トランシーバICの差動入力で受ければ例えば出力は5V一定になる。
御指摘のように、入力のHLに従って出力のHLが変わるのは当然です。
面倒がらずに入力レベルと出力レベルの関係も真理値表のようにきちんと書けば良かった。 すみません、説明の補足を。
RS485レシーバーは同相パルスを入力すると出力が一定レベルになる。
でないとコモンモードノイズをキャンセルできない。 テレビのリモコンの待機電力しらべたらほぼゼロでした
picだとほぼゼロに近づけることはむりなんでしょうか? >>930
「ほぼゼロ」とは何Aくらいのこと?
SLEEPさせれば数μA程度にはなるけど。 >>931
> 「ほぼゼロ」とは何Aくらいのこと?
自分でもしらべてみてください、すぐわかりますよ あなたの話ですよ。
調べたのでしょう、何アンペアって書くだけでいいんですよ。 >>937
なんか質問するとすぐ自分でやってみたのか文句いうくせに
どれくらいあるのか見当もつかない人が答えられるとは、おもわないんですけどね 自分で調べたこともない人が、よくえらそうに書き込めるもんだわ ID:XX5G4+Ttさん。
質問する人が、回答してくれる人にできるだけ手間をかけさせないようにするのがマナーです。
ですので、まず自分でやってみるべし、と言われるのは質問者ですし、
既に調べたことを開示して、質問に具体性を持たせるのも質問者の責任です。
そもそもあなたの質問の核は「PICでテレビのリモコンの待機電力ぐらいの消費電力を実現できるか?」でしょう?
たとえばテレビのリモコンの待機時電流が50μAだとわかっていれば、
「PICで50μAぐらいの消費電流を実現できるか?」
と具体性を持った質問にすることができます。 >>932
> 32768Hzで動かす
これでリモコンの38kHzの信号つくれるんですか? >そもそもあなたの質問の核は「PICでテレビのリモコンの待機電力ぐらいの消費電力を実現できるか?」でしょう?
ではなくて、
「PICでテレビの市販のリモコンと同等の待機電力のリモコンを実現できるか?」
だったみたいだ。
できるよな。
ともかく、質問する人が回答者を減らす努力をやらかしてしまうのはなんとも残念。 >>943
何でそんなことお前の質問のために調べなくちゃいけないんだ阿呆
最低2万円から以降時間当たり5千円、お前が払ってくれるなら調べてやってもいいぞ >>946
んー。たぶん、なんか行き違いがあります。
>>943は、質問者に「それぐらい自分で調べてください」って言ってます。
元の質問者が「これでリモコンの38kHzの信号つくれるんですか?」って重ねて尋ねているのに対して、
「自分でしらべて」って言ってるわけですし。 >>947
行き違いじゃなくて、お前の気が違ってるだけだ 俺も>>947の言う通りだと思う。
まあ、>>ID:ivsL57h8=>>ID:XX5G4+Tt ってことなのかもしれんが…。
その場合は、どっちも精神を病んでいるかわいそうな人に違いはない。 で、結局、テレビのリモコンの待機電力はどんくらい? こういう電流にゼロっていうことはなくて「どんな測定器で測ったときに測定限界」ってことだろなあ。 @ボタンの押下でスリープから復帰
AWDTで定期的に起こしポーリングでボタンをチェック
Bスリープさせない
Cいづれかのボタンの押下により電源供給
どれなんだ?
@なんだろうけど、実装が思いつかない。 ボタンを押さないと全く通電しない回路
ってのが作れるんだけどね
もちろん電池の自己放電はあるだろうけど
これは待機電力ではない
普通の小さなリモコンの乾電池駆動だと、
まともな設計であれば
待機電力よりも電池の自己放電や寿命の方が先に来るから
その辺はどうでも良い 消費電力が気になって、たまにしか使わないなら
普通に電源スイッチを付けておけば
頻繁に使うなら、待機電力よりもLEDの電力を気にしないと >>954 >>957
ボタン一個ならそのまま押しボタンを電源スイッチにしてしまえばいい
ボタンが複数あったらちょっと複雑になるけど 絶縁体に流れる電流
とかまで考えるとゼロじゃないんだろうけど >>957
2回路押しボタンスイッチなら1回路分を電源系統、もう一つを入力で出来るじゃん。 >>953
かなりの多ピンのモデルならPICでも可能。状態変化割り込みで処理。 キーはマトリクスで組むだろうし、復帰用の割り込みに3〜5ピン程度が使えればそれで処理できるんじゃないですかね。 ボタン押してスリープ解除してから送信開始するまでけっこうかかりませんか
100msはかからんかな XC8を使っていますが、コンパイラのROM領域の設定で
--ROM=default,-380-3FF
という形で380hから3FFhの領域を予約した際に、この領域の初期値を
フラッシュ書き込み時に設定することは出来ませんか?
EEPROMであれば _EEPROM_DATA() で初期値を与えられるのですが。 xc8だけで良いから無料にしてくんろ
みんなarmに流れてしまうよ 今だって無料じゃん?
8bitは競争相手がどんどん衰退してるからそんな施策の必要がない。
XC32の最適化を無料にすべき。 16F628Aに書き込むと
Target Device ID (0x0) is an Invalid Device ID.
Please check your connections to the Target Device.
となって、どうゆうわけか最近書き込めなくなったんですが、なんででしょうか
以前は書き込めたのに
しょうがないので、同じようなピンの構成の16F1827でしのいでいるんですが
在庫を結構かかえてるんで活用したいんですが
尚、PIC KIT3,MPLAB X IDE v3.51で書き込んでます 基板の電源をpickit3から取ろうとした時のpickit3の電流キャパオーバー? 古いデバイスはMCLRに12.5V必要だったけど今は3Vでも書けるから昇圧不足かな >>974
「最近」と「以前」との違いを自分で見つけるしかないかな。
うちの環境でそのメッセージが出たら、
データシートの通りの配線に直す
USBを抜き差しする
のどちらかで解決するけど。 >>974
僕も16F88で同じようなことがありました。 >>978
> 「最近」と「以前」との違いを自分で見つけるしかないかな。
いろいろ考えたら一つだけ見つかった
以前はMPLAB IDEで書き込みしてた
戻すのはいやだなあ、使い方わすれたし 旧いデバイス使うなら闇雲に新しい環境にしない。これ鉄則 >>980
PIC16F628A、648Aは使ったことあるけど、無印MPLABは使ったこと無いよ。
つまり、それが原因とは言い難い。 >>975
ライター壊れるのもったいないから、面倒でも別電源を用意する
パソコン壊れるのもったいないから、usbハブを経由させる
動くとは思うが、Lチカ、シリアルくらいにしとけば? アップデート多すぎないか?
やる気は感じるけどペース落としてくれ picのブランクチェックが成功しない
pic18f2320でeraseは上手くいくけどblank checkで失敗する
助けてくれ こんにちは
CR20321個でボタン2つの赤外線リモコンを作りたいのですが
12LF1822みたいにディープスリープからの復帰ピンが1本しかない場合
こんな感じの回路しかないでしょうか?
もっと簡単な感じのはないでしょうか?
ttps://jisaku.155cm.com/src/1508884991_38413daddeb62cd16c37a2ad4efca24fc799172c.jpg 👀
Rock54: Caution(BBR-MD5:f68c41b6bce4f8b76d46a9fc61dd270c) >>987
状態変化割込み使えば、PORTAの5本どれでもDeepsleepから復帰できる >>988
ご指摘いただいて改めて英語と日本語のデータシート読み返していますが
1822-1827にdeep sleepという単語や概念がないようです
状態変化割り込みなら話も配線も簡単になりそうです
>>987添付画像だと、ボタンoff時に電位が浮くので消費電力が増えるかもしれません
しかしスリープの実装例にアセンブラが多いのは、初心者を「排除」して「希望」が無くなってしまったような気がします μAオーダーでDeep-sleepを標榜するチップもあるからな。
呼び方なんて何の意味もない。 >>987
その回路だと、どっち押しても同じでは? どっちを押してもスリープから復帰できて、なおかつアナログで読んだ時に区別できるようにならんかな。
https://i.imgur.com/nlgKyVe.jpg >>990
PICはSleep命令でPowerdownモードに入るだけですね
12LF18xxなら25℃のIpdが30nA(typ)だからCR2032でも数十年は持つでしょ
ボタンSW切の状態で内部弱プルアップもできますが、電位はVdd側に吊られ
電流は逃げ場が無いので消費電流は増えないですよ A/D読みなんてメンドウなことしなくても
SWを2ポートに割り付け、状態変化割込みでスリープ復帰
LEDを2ポートに割り付け、SWに応じて発光送信してスリープ
だけで実現できる キーが2個で復帰入力が一つのとき。
キー読み込み時は
Aは入力、BばL出力
スリープに入って復帰要因を仕掛けるときには
AはH出力、Bは復帰割り込み入力。
やかましくなければ、上の抵抗を小さくしておけば、Aは入力のままでも大丈夫。
>>987のダイオードORなら
PIC18の割り込み処理中の割り込み処理(割割処理)について質問さしてください
処理Aを低位割り込み(低割)で処理中に高位割り込み処理B(高割)が発生した場合は、
処理Aの途中であっても処理Bに遷移する(処理Bが終わったら処理Aが中断された
ところから再開する)というふうに思ってるんですが、
低割処理中(処理A)にさらに別の低割処理(処理2)が発生したらどうなるんでしょうか?
処理Aの処理が終わると同時にすかさず間髪入れずに割り込みが発生するんでしょうか?
それとも後から発生した低割2は無かったことにされるんでしょうか? >>999
その割込みが発生したというフラグは残っているから、処理Aの割込みが終了したら(割込み許可しているのが前提)処理2の割込みが発生する。 レス数が1000を超えています。これ以上書き込みはできません。