初めてのPIC 0x0e
■ このスレッドは過去ログ倉庫に格納されています
.
_ _ PICをさわるのは今日が初めて、という超初心者のためのスレです。
(O>――<O) PIC選び、PICを使った回路は、誰でも最初は不安なものです。
/ (・) (・) ヽ 恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
○ /▼\ ○ 質問のしかたは、初心者質問スレの発言1を見てくださいね。
|(ヽ二フ ) |
/  ̄ ̄ ̄ ヽ
f ヽ / | PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
ヽ \ / ノ ・PIC専用のスレ
| \_ )(_/ ! 本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
| | ここの話がわかるようになれば、あなたはもう一人前のPICerです。
| | ・マイコンソフト 悩み事相談室
| | ̄ ̄| | マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
(_ノ ヽ_)
質問する時のコツ
・性格の悪い回答者はスルーしよう(相手すると逆効果)
・素人玄人などと 上から目線の回答者は、無視してください。相手してはいけません。
・そこそこ良い回答が出るまでしばらく再発言しないのもあり(良回答は後に出やすい)
・回答者のアドバイスで後日解決したら、結果報告しよう(とても喜ばれる)
・回答者は、僕たち初心者に優しくしてください。あなたも通ってきた道のはずです。
必要なソフトなど(基本無料)
統合開発環境 MPLAB X ttp://www.microchip.com/mplab/mplab-x-ide
コンパイラ (XC8 XC16 XC32) ttp://www.microchip.com/mplab/compilers (高機能版は有料)
コード生成プラグイン (MCC) ttp://www.microchip.com/mplab/mplab-code-configurator
マイクロチップ ライブラリ (MLA) ttp://www.microchip.com/mplab/microchip-libraries-for-applications
必要なハードなど
初心者はPIC16F1、PIC18F1以降の型番で始めると無理なく始められます。
プログラムの書き込みには書き込み器が必要です。持っていない場合はPICkit3(中華クローンでもまず大丈夫)を使いましょう。
PIC一覧、スペック検索 ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005
さ、質問どうぞ〜っ
0x0d 2017/10/25〜 ttp://rio2016.5ch.net/test/read.cgi/denki/1508935254/
0X0C 2017/07/27〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1501157324/
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 別に知りたいわけじゃないんだが
そんなもん無いだろアホが
ってこと >>264
>そんなもん無いだろアホが
と、過去に思っていた、という話だよな。>>262で、存在することはわかっただろ?
良かったじゃないか。自分がそれを使うことがないとしても、知らなかったことを知るようになったんだし。 井の中の蛙に教えてやろう
amazonでattiny85で検索すると出てくる274円
ハードはこれだけで開発できる
ソフトは無料のarduinoIDE
PICにもこういうのがあるといいね ebayまで足を延ばせば ARM(STM32)環境だって数100円だ
ST-Link 239円
STM32F103C8T6 ボード226円
SW4STM32 IDE 無料
500円でおつりがくるな
大海を少しは知れたかな? しかもARMの方はこれでソースレベルデバッグまでできる本格派
(PICでいえばICDあたりの環境?)
スレチと言われればそれまでだが不毛なカスの無価値な議論よりは
役に立つ情報だろうから書いてみた ところで
「PIC」で一括りにしているけど、8ビット、16ビット、32ビットでスレを分けた方が良くないか?
違いが大き過ぎる 良いよ分けなくて
どの話をしてるのかわかればそれでいい
ビット数で分けても
PIC10とPIC18じゃ大違いだし
MMとMZでも大違い 叩きたい人は分けて有ろうが百羽一絡げに叩くから意味なし >>268
おまえがPICでデバッグしたことないのは良くわかった >>254
作り話じゃないです…
私企業の化学者でして、今後のことを見据えて少しずつ実験を機械化していきたいのです。
で、データロガーに取り込むときにはアナログ信号の方が都合がいいのですが、電子天秤の電送出力が軒並みシリアル通信でして。しかも十進数の測定値をそのままascii文字列で送るというクソ仕様。
しょうがないので自分で作るか、と。 そんなのをアナログのデータロガーで取ろうというのが前時代的
そのままパソコンのシリアルに繋いで記録取りゃいいじゃないか
後処理でそのデータからグラフでも何でも書けるだろうに
次にはPWMDACのキャリアとサンプリング定理とダイナミックレンジとノイズについて・・・
いや、なんでもない。 企業の化学者がろくな精度も出ないそんなもの作ろうとして、それを5chで質問してる時点で
お前はむいてないからさっさと転職しろ ここの雰囲気はホントに殺伐としているね。
桜の便りもチラホラ聞かれる今日この頃なのに
「物言えば唇寒し秋の風 」 PICスレは民度が低く嫌味な人が多い。
その用途ならPIC関係なくArduinoかラズパイのスレの方が
優しく教えてくれるよ。 >>277
いやいや、とりたいのは天秤データだけじゃないんですって。温度は基本的にK熱電対の電圧を直接取り込みますし、その他もろもろ、アナログ信号出す機械が多いんですって。
シリアルを直接PCに取り込むソフトならなんぼでもありますが、あの機械はこのソフト、その機械はあのソフト、温度はデータロガー…とかやってたら、後で時間揃えてデータを統合するのが死ぬほどめんどくさいでしょ?
だから全部アナログ信号に直して、1台のデータロガーでまとめて収集するのが一番楽なんです。
デジタルよりアナログの方が精度劣るのはわかりますが、この際気にしません。 匿名という保険を掛けつつマウント取りたがる人間には居心地がいいんだろ
普通に作って教え教えられてならSNSの方がいいのかも >>281
目的を聞けば聞くほどarduinoを進めたくなる。
でもそれはマイコンを使う必要あるんだろうか
データ➡rs232c➡usbシリアル変換➡usb➡pc
pcでそれぞれのポートの固有番号がわかるから、番号ごとに定期的に時間とデータをエクセルにでも追記したら。適当なソフトは分からないけど他で質問したらどうでしょう 概してマイコンのDAはADより貧弱(PWMでやるとか)なので、
出力をフィルタするとか必要ならオペアンプ類でデータロガーの電圧レンジに
合わせ込むとかしなきゃいけない キャリブレーション不要ってことは無いでしょう?
DCレベルだからオフセットの調整もある。
独立した用途に合ったDACを外付けしたほうがいいかもしれない
マイコン/アナログ両方の知識が要るから0からちょっと質問して出来るようなものではないと思うよ
既成品があるか知らないが、まずそういうものがあるかどうか調べたら? >>281
このスレに来たってことは、
PICでやるって決めてるって事だよな
シリアルのフォーマット、送信間隔
必要な出力チャンネル数
必要な電圧
必要なビット数
を書けば設計してやるから書いてみな 交流成分だけで良ければアナログ音声出力を使うのが簡単だけど
そういうわけにはいかないよね? >>287
アナログ出力インピーダンスと
電源電圧も おおう!さよならした途端にみなさん優しくなった!
>>284
arduinoも考えてみますね。聞きかじったところだとunixも動かせるとのことで、そりゃいくらなんでもオーバースペック…と考えておりました。 熱電対を入力出来るから、
ロガーでいくらでも調整出来るとは思うけど...
まあわかることは出来るだけたくさん書いて >>286
データロガー側は±1V, ±5V, ±10Vのマルチレンジ対応です。オフセットはデータロガー側で設定できます。たしか。
DAC外付けはちょっと考えてました。分解能8bitじゃ足らんよなあ、と。
dsPIC33FJ64GP802 じゃだめですかね?
12bitでぎりぎり足りるかな…ってところですが、本音をいうとも少し欲しいので、16bitのDAC載ってるやつです。 >>287
エクストリームありがとうございます!
明後日出社したときに、天秤の取説コピーしてきます。
んでもってやりたいことをもっと明確にしますので、少々お待ちくださいませ。 >>281
うちの会社でも電子天秤はRS-232Cなので0-5Vに変換して圧力やら、Pt100Ωやらと一緒に記録計で記録してます
PICでやるより、Arduinoの方が簡単確実です
UNOには、D/Aが無いので、10bit I2CのD/AコンバーターICをつなげて、使ってます
そういう研究所やら、企業は結構在りますよね あと、四方から「PCでやれよ…」という幻聴が聞こえますので言い訳すると、
1. PC置くと作業スペースが減る。
2. PCを実験台上に置くと、1週間以内に有機溶媒をディスプレイやキーボードに垂らして( ;∀;)…
のため、あまりPCを近くに置きたくないのです。 8pinのPIC(PIC12F1822)とSPIのDAC(MCP4922)位か
DACの出力がシングルエンドで良いなら簡単にできそうだ なぜPIC12F1822?
8pinならPIC16F18313だな
秋月に無くていいなら15313でも >>296
私が作りましたが
4-20mA出力も可能です
部品代で2kくらいかな
ググってご自分で作って下さい
売るなら8万くらいかな 必要なチャンネル数くらいすぐに書けると思うんだけど PICはUARTがあれば何でもいいな
あとはMAX3232とかも要るかな
電源は5Vから3.3Vに安定化した方がいいか
あとはDACの出力をバッファするかどうかだが
秋月だとNJM27463辺りか これはSOPだが
もうこれで回路出来るな 基板上なら千円程度でおつりがくるな
まともなケースに入れるとケース代が一番かかる なんでも良いのになぜPIC12F1822と書いたのか気になる 12F1822は、出た当初、結構人気があった。
今はもっと選択肢が増えているからそうでもないが、
未だに最初に頭に浮かぶ人は結構いそう。
という程度な意味くらいしかない。 UARTもSPIもI2Cも使えて便利だから今でも1822を最初に選んでるな
ちょっとピン数が増えたりプログラムが大きくなりそうなときは14ピンの1825がセカンドチョイス >>244
スマホからですみません
勉強用にとりあえず今使えればいいので、古いバージョンでやってみます >>245
スマホからですみません
僕が見たときはエラーだったんですが(泣)
とりあえず勉強で軽く触ってみたかったので、古いバージョンでやってみます PICで教えてください。
UARTを2ch使いたいのですが、XC8やXC16では、printf()はUART-No.1側に固定のようです。
fprintf(ch1, "hello");
fprintf(ch2, "hoge");
など、出力先を切り替えて使いたいのですが、どうしたら良いでしょうか? stdoutとstderrで分けるとか
printfの出力先を切り替える関数を追加するとか
sprintfで文字列に変換してからUARTドライバを直接たたくとか >>311
printfはputc()に書くので、putcを自分で書いて、出力先を切り替えるようなフラグを盛り込めばOK >>281
おまえら研究レベルで、k熱の電圧直接取り込みとか言う時点で気づけ。
この手は、精度は関係ないとか言って、後から精度が出ないとか泥沼に引きずり込まれるパターンだね
しかも16bitアナログだってさ ここでアイデアを出したって、最終結果に責任を持つのは本人だよ。
>泥沼に引きずり込まれるパターンだね
協業した人に引きずりこまれた経験は誰しも大なり小なりあろだろね。
「自分だけが見通せているエライ人」みたいな振る舞いはどうなんだろう。 >>315
アマチュアレベルだとそう考えるんだろうな
工業ようデータロガーがどんなものか知らないんだろう
PtじゃなくK熱でんついで測定だから
ラフでいんだよ
と、読めない
もっと幅広く勉強したらどうだ >ど初心者です。アドバイスください。
なんだ、やっぱりいつものパターンか >>312-314
ありがとうございます。
そのレベルで操作するのですか。
XC8, XC16では、fprintf(,)は使えないのでしょうか?
出口フラグ = 1;
printf("test\r\n");
void putc(unsigned char c)){
if( 出口フラグ==0 ){ TXREG.0 = c; }else { TXREG.1 = c; }
}
こんな感じでしょうか? 自分で_fprintfとか作って、その中でハードに合わせた処理を書けや それをやってくれるのがコンパイラーさんだと思うけど。 fprintfは関数なのでコンパイラの仕事でなく関数を書く人間の仕事だ
予めコンパイラに関数が登録されている事もあるが、無ければユーザーが独自に書く必要があある >>321
fprintf(stdout, ...)
fprintf(stderr, ...)
で切り替えろってこと
#define ch1 stdout
#define ch2 stderr
で希望通りになる 関数のオーバーライドできるの?
ライブラリのソースってあったっけ それなら、X Cコンパイラ作った人がサボったってこと? >>326 >>327
なるようにするんだよ
writeを自作するだけだ 通常は関数名の前に_(アンダーライン)とか付けて同一の名前にならない様にするが、該当の.hファイルをincludeしなければ標準関数と同一の名前は作成出来る
標準関数はあくまで関数であって文法ではない トンチンカンが現れた
インクルードするかどうかとリンクするかどうかは関係無いし
ていうか、fprintfから自作するつもりか? リンカで指定しているライブラリ中のコードと自分のコードのシンボル名が重複したらどうなる?
ということだな
PICは良く知らんのだがarmとかだとweakと指定してあれば重複しても指定していない(強い方)
シンボル使ってリンクしてくれるのだが(C++とかのオーバライドのことではなく、リンカの機能)
こんな機構が処理系にあれば、気軽に低レベルI/O関数のwrite等をユーザー定義の関数に
すげ替えられる。
それが無いと標準ライブラリから特定のオブジェクト抜き出して使用するとかしなけりゃならない
(何らかのフック機構が用意されていればいいけど)
で、PICのXCの場合はどうなん? 上書き出来ないわけが無いだろうが
組み込み初めてか?
あと、>>331に対する>>332の意味はわかるよな? グズグズいうまえにやってみればいいのに。
普通にできる。 >>317
さすがです。その通りです。
まあそもそも、化学業界でPtなんて、オーバースペックもいいところだと個人的には考えてますが。使いにくいし。
それこそ分野によるのでしょうが。
仕様はも少しお待ちくださいな。今帰宅中ですので。
飯食って風呂はいってから、、、疲れて寝るかもしれませんが。 >>336
化学プラントではPt100Ωが標準的に使われてるけど…
ラフな温水調節とかでは熱でんついが多い
医薬品プラントはほぼPtだよ
5chでこんなこと書いてるなんて
余程レベルが低い会社にお勤めなようで
俺もだが >>338
そりゃ知ってますよ。
Pt100はドリフトせず、断線するときは基本的に即死しますから、異常検知しやすいんです。壊れにくいしね。
K熱電対はドリフトしやすく、壊れやすい。異常検知が難しいのでプラント向きじゃないです。
ただ、精度の観点でいえば、Pt100じゃないと!ってのはダウトですね。Pt100とK熱電対の精度を語る前に、槽内循環改善しろって話です。
さて、ご飯食べてきますね。 >精度の観点でいえば、Pt100じゃないと!ってのはダウト
熱電対と比較して? >>287
お待たせしました。仕様書きました。よろしくお願いします。
【天秤仕様】
ボーレート: 150, 300, 600,1200, 2400, 4800, 9600から選択可能
パリティ/ビット: 8bit, 7bit/パリティなし, 偶数, 奇数から選択可能
ハンドシェイク: 無し, ソフトウェア, ハードウェアから選択可能
【天秤からの伝文】
"S" (スペース) [A-Z] (複数のスペース) (測定値) (スペース) "g" [CR] [LF]
これがひたすら天秤から投げつけられ続けます。
送信間隔は不明ですが、もともとプリンタへの出力を想定した端子なので、せいぜい1秒だと思います。
(測定値)は小数点を含む数字です。負数の場合のみ"-"が付きます。
浮動小数点数型みたいな気の利いた型ではなく、ただの文字列です。
なお、天秤のオーバーレンジ、アンダーレンジの場合はそれぞれ以下の伝文になります。
"S" (スペース) "+"
"S" (スペース) "-"
【DA変換仕様】
分解能別に12bit, 14bit, 16bitの3ケース示します。もちろん高いほうが嬉しいです。
12bit: 測定値の絶対値を返してください。出力レンジは0〜409.6g, 1LSB=0.1g
14bit: 出力レンジ-409.6〜+409.6g, 1LSB=0.05g
16bit: 出力レンジ-655.36〜+65536g, 1LSB=0.02g
出力電圧は、12bitの場合0〜5V, 14/16bitの場合-5〜5Vでお願いします。
【その他】
Ch: 1
PICkit4買いました。
よろしくお願いします。 >>347
「選択可能」の意味は?
オーバーレンジ、アンダーレンジ、範囲外の場合の動作は?
ハンドシェイクの意味は?
(受信だけだし速度も遅いのでビジーにはならんでしょってこと)
レンジがおかしいので修正を >>349
選択可能の意味は、天秤側は設定で変えられますんで、作る人がやり易い方法でお願いします、という意味です。ハンドシェイクも同様。…書かなかったら書かなかったで文句いうくせに。
オーバーレンジ、アンダーレンジ、範囲外の時は、近い方のレンジ端で出力してください。っていうかアナログ出力なんで、それ以外の表現方法ないですよね?
レンジがおかしいってのは、1ビット分多いぞごるあ!ってことですか?好きな方切っちゃってください。ユーザー側からしたら、どっち切っても同じことです。だってアナログですから。
よろしくお願いします。 >…書かなかったら書かなかったで文句いうくせに。
「選択可能」という言葉を書かなかったら文句が出るでしょうけど、そうではなくて、
「選択可能」の意味を書かないといけないですよ。
>ボーレート: 150, 300, 600,1200, 2400, 4800, 9600から選択可能
は、少なくとも下の2つの解釈ができるのです。
・このうちのどれでも作りやすいのでいいです(>>351の説明でこれだとわかった)
・なんらかの設定で150, 300, 600,1200, 2400, 4800, 9600を任意に設定できるしくみになっている。 >それ以外の表現方法ないですよね?
オーバーレンジ、アンダーレンジを受け側で判断できるようにしなければいけないようなもので
0-5Vの出力を持つもののとき、
正常測定範囲を0.5V〜4.5Vに振って、アンダー、オーバーその他トラブルのときに、範囲外電圧を出力する、
という要求は見たことがあります。 どれぐらいの意味があるかは用途次第ですけど。 やっぱりシリアルロガー作ってデータ編集はPCでやったほうが楽な気がする そだねー
全体的にラボのシステム見直すべきと思うな
PC置くと液体で汚れるからイヤだ?
データロガーなら汚れてもいいのか?
自分だったらアナログで統一なんて「大バカ」なことはせずに
デジタルで統一して記録するがな >>351
あんまり態度が悪いと放置するぞ
PIC32MM0064GPL028 175円
PCM5102A 500円
ICL3232CPZ 130円
出力は±3Vで良ければDACからそのまま出せる
電源は3.3V単一
±5Vが必要なら追加の部品が必要
DACはオーディオ用なのでDCの質は未知
あとは基板、コネクタ、抵抗、コンデンサ、ケース、電源が必要
とりあえず、±3Vくらいで良いかどうか書いて エラー通知の方法はいくらでも方法がある
アナログ出力からパルスを出すとか
別のポートから出すとか 自分だったらESP8266でも使って隣室のPCにデータ飛ばすな
作れないなら売ってる
例えば、
>「Wi-Fi RS-232C 変換アダプター REX-WF60」
>離れた場所にある電子天秤などの計測系にもiPad・Android端末にも利用できる、
>WiFi to RS-232C 変換アダプター。
電子天秤が広告文面でてきてワロタ
まともなやつが使ってるのはこういうものだ dsPIC33FJ64GP802 480円
でもいいか
0V〜3.3V出力で良ければそのまま出せるし
±5V必要なら出力段の回路が必要 PWMのDACでいいなら8pinのPICでできるけどな
予算\500
コネクタ+基板+PIC+CR少々+ケースは100均のタッパ
ああ、RS232の12Vは適当にDi+抵抗で受ける ■ このスレッドは過去ログ倉庫に格納されています