初めてのPIC 0x12
■ このスレッドは過去ログ倉庫に格納されています
PICを触り始めて比較的日が浅いという初心者のためのスレです。
もちろん、日は経っているが自分はまだ初心者という方も大歓迎です。
PIC選びやPICを使った回路設計は誰でも最初は不安なものです。
恥ずかしがらずに何でも尋ねてみましょう。
なお、PIC関係のスレにはもう1つ「PIC専用のスレ」があります。
質問・回答する際は…
必ずPICの型番と開発環境を明記しましょう。
プログラムはレス内に直接書き込まず以下を利用しましょう。
http://codepad.org/
その際心がけることは…
品格に劣る回答者はスルー(相手すると逆効果)
素人玄人などと上から目線の回答者は無視
良い回答が出るまでしばらく再発言しないのもあり(良回答は後に出やすい)
回答者のアドバイスで後日解決したら結果報告
回答者は初心者に優しく
Atmel買収以降アンチによる荒らしも横行してるので見かけても無視
(特にスレ立て当初はこぞって荒らしに来るのでスルー)
必要なソフトなど(基本無料)
統合開発環境 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以降の型番で始めると無理なく始められます。
最初からPIC32で始めるのもあり。
MCCの利用でハードルはむしろ低いです。
http://akizukidenshi.com/catalog/g/gI-11902/
プログラムの書き込みには書き込み器が必要です。
持っていない場合はPICkit4などを購入しましょう。
なお、eBayやAliExpressで買えるPICkit3の中華クローンも十分な性能が報告されています。
PIC一覧、スペック検索
ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005
ttp://www.microchip.com/maps/microcontroller.aspx
過去スレ
0x11 2018/08/05〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1533446166/
0x10 2018/06/29〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1530265723/
0x0F 2018/05/01〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1525183933/
0x0E 2018/02/13〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1518524799/
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
では、質問どうぞ〜っ 模型にLED検討してる初心者です
コテハンにしたのでNGする方はよろしくです
プログラム組む前に部品接続方法を考えてみました
アドバイス頂けたらと思います
https://i.imgur.com/d77SvJth.png >>553
ここ数年はトラ技やInterfaceですらArduino推し
次いでラスパイ
PIC記事は偶に後閑氏が書く程度やで… マイクロチップテクノロジもPICの将来に不安を感じたからAVRを買収したんじゃないの? >>592
ピンに余裕があるなら、RA5, RB6, RB7は使わない方があとで幸せかも。, >>595
アドバイスありがとう
理由は?
番号は若い順からがいいんだっけ? まずはPIC16F1827のデータシートの6ページ見て考えてみて。 >>592
RA6 のSWをPORTBに移して、内部プルアップ使うと、抵抗不要になる。
RA1,2,3は、LEDパラになってるけど電流値大丈夫かな? >>597
RA5が入力用端子って事かなあ?
本に書いてないので用語が分からない…
>>600
こうですかね?
https://i.imgur.com/NUXDPe5h.png
LEDは定格20mAだと思うのですが並列はまずいですかね?
うーん分からない事だらけだ… >>602
1ピン最大20mA程度、全部合計で100mAちょいくらいかな?
抵抗値を330Ωにしたら全部で10個くらい同時に点灯できる。
ま、ウインカーとかは常時点灯じゃないからいいけど。
220Ωで2個つながってるところはオーバーするかも。
>>595の言ってるピンには特殊用途が割り当てられてるから、
もしピンが足りるなら使わずに置いとく方がいいってこと。 >>597
>データシートの6ページ見て考えてみて。
初めてPICを使ってるんだから素直に教えればいいのに
こういうひねた態度だから誰も質問しなくなるんだよな
ICSPを使った方が便利ということでしょ
http://www.picfun.com/pic18/pic18xx14.html >>601
RB4,5,6,7 もプルアップ指定できるから、抵抗要らないよ。 >>604
教え方のポリシーの問題だろ。
1から10まで付きっ切りで教えるつもりのあんたと、
なるべく早い段階でデータシートになじんだ方が結局は本人のためという>>597の。
俺は意地悪だから>>597寄りだな、安易に教わったものは結局身に付かんよ。
あんたのような奴に限って飽きたら放置するに相場は決まってる。
この質問者は熱心そうだから、自分で解決する手助け程度の方がいい。 並列はやめて抵抗も無しに
https://i.imgur.com/IuCgMt9h.png
これでいけそう?
>>604
組み込んだ状態で書き換え可能になるって事?
今回はピンに余裕がないから出来ないけど便利そう 自分はただリンク張って人任せにしてるだけのくせに
>こういうひねた態度だから誰も質問しなくなるんだよな
とか、喧嘩売りにきてんのか、この小僧は! >>607
>>604のサイトは古いし冗長だから気にしなくていいよ。
データシート見てプログラム書き込み用のピンを空けとけば当面大丈夫。
回路はそんな感じでいいでしょ。
試しはどうやってやる?
ブレッドボードとか使う予定ある? >>610
あたしゃ電源ラインが両側にあるのしか持ってないわ。
http://akizukidenshi.com/catalog/g/gP-00315/
ま、ジャンパ線でどうにかなるか。
では、実践どうぞ。 フルボッコわろた
ID:jrJ/+YKaさんここの雰囲気が分かったでしょ
ID:HWWHnn9fが白状してるように意地悪が多いから注意して質問してね
ICSPは凄く便利だから絶対使った方がいいよ
やろうとしてるのはPICを学習するのにいい題材だと思うから頑張ってね >>613
いやプログラミングを全くやった事ないのでまずは本を見ながら入力してみる
とるあえずMPLAB X IDEとXC8コンパイラをインストールした >>614
色んな人がいるからこその5chだと思うので、多かれ少なかれ教えてくれる人には感謝してる
基礎の基礎までレスポンスよく答えてくれるここの住人は本当ありがたいよ マトリクスとかダイナミック点灯とかもあるから安心して。
まずは1つ点滅させるところまでを目標にした方がいいよ。 アクティブハイはちょっと気持ち悪いな。
今時はドライブ能力同じだとしても。 >>621
>>603参照
>>622
確かに!
ありがとう >>627
バックランプはシフトノブにスイッチ仕込んで、ブレーキは純正ブレーキペダルスイッチで直接光らす予定
あ、そういえばサイドマーカーとナンバー灯もポジション灯と同期だな
>>626
揃ってるけど初プログラミングなのでぼちぼちね 「PICを使ったデータ・ロガーの製作」などの御著書で有名な稲崎氏のサイトが
なくなってしまってる。だいぶ前、最後にメールいただいたときはサイトの
リニューアルをしたいとおっしゃっていましたが、ご病気とかではありませんように。
hexコードを当てにして部品を集めてしまった作例も多かったのに・・・
彼が扱っていたmikroCが要求するシンタクスはこの10年くらいでだいぶ変わったけど
PICを使った作例集としては最大級規模のサイトだっただけに、残念。復活を祈るばかり。
http://www8.plala.or.jp/InHisTime/ >>630
★★★★☆ 入門者には必需品
かなり柔軟で、流用が可能です。参考資料として持っていても邪魔になりません。 >>632
良い評価hしてるのその人だけだね。
あとは、コメントも含めてすべて最低な評価をされてる。 >>633
アマゾン初心者さん?
アマゾンの評価は「5=サクラ」「1=アンチ」で全く参考にならないので
基本的には2〜4の評価だけを見るものなんだよ
そして1と5を除外してみた場合、この本の評価は4のみとなる >>629
もったいぶるも何も手伝って欲しいぐらい…
「電飾しましょっ! 2 PIC編」に載ってるテンプレートを真似することからはじめてる それを言ったらほとんどアンチしかいない
ゴミ著者ってことじゃねぇかw >>634
>初心者さん?
これ、よく見かけるセリフだなあ。
どういう人が好んで使うセリフか、わざわざ書くまでもないくらいw >>635
何も出て来ないから手伝いようがないよ。 >>638
とりあえずやりたい事をまとめてからはじめないと訳わからなくなりそうなので…
プログラミング始めたらまた疑問だらけになると思うのでご助言よろしくです
>>603
これなら電流大丈夫かな?
https://i.imgur.com/cnudtkHh.png このくらいの回路になるなら実体配線ぽい回路図でなく、上を+、下をーに書いた方が判り易いだろう >>639
なんとなくアドバイス。
>>639
・作り始めたら LED の明るさはをューニングしたくなると思う
多分暗くなる側に。その場合抵抗値を変えるという原始的な
方法ではなくソフトで PWM すると良いだろう。
全体の明るさを上げ下げなんてこともできるよ。
・スイッチはCPS機能のあるピンにアサインしておくと、
メカニカルスイッチでなくタッチ電極で良くなる。
>>640
わざわざピンを空けておかなくても330Ω+LEDくらいなら
書き込み器つないだままで動作確認できるよ。
逆に書き込み機能PINをCPS用にアサインすると、書き込み
器を抜かないとCPSが機能しなくなる。 これいつまで続けんの?
これ以上続けんのなら専スレ作れば? >>641
上下?こういう事?
https://i.imgur.com/kdZ2MaPh.png
>>642
・一応今回もフロントウインカーは減光させる予定
・CPS機能というのが分からないのでちょっと調べてみます
>>643
スレの趣旨と違う? このCap Senseが割り当てられているピンに金属繋げばタッチするだけでスイッチになるという事?
凄い機能!ありがとう面白いね
https://i.imgur.com/4jn3gEEh.png >>643
おまえが同じIDでもう一度書き込めたら終わるかも。
自分が出て行けば解決。
>>644
問題ないと思います。 >>646
> >>643
> おまえが同じIDでもう一度書き込めたら終わるかも。
俺もうすうす気づいてたけど
ID変えて攻撃する、という人はいるよねココ 初心者の、準備不足な質問でも、回答する人がいるなら、OKですし。
そんなの自分で調べろ!!!と思う人は静観してればいいと思う。
それでも、>>642 のCPS機能を使ったタッチ電極は思いつかなかったな。
アマの自作でも、作例は、結構あるのですか? >>645
私のイメージだとCap Senceは扱いづらい感じ、回路にもよると思うけど。
全くの初心者なら普通のスイッチで始める方がいい。
ICSP用のピンを専用にするのも同じ理由。
それが可能か不可能かでなく、問題の切り分けが単純になるようにするのがいい、初心者のうちはね。 普通のスイッチでさえチャタリングの問題とかあるからなあ
回路とプログラムが問題なく走るようになってからそこだけ置き換え試すのがいいような なぜ回路図らしきものだけアップして実際の接続の話やプログラムの話が出てこないのか不思議だわ。
俺なんか、まずとりあえず1個点滅させにゃ気が済まないたちなので…w >>649
そうだよね
シンプルな方がトラブルシューティングしやすいからそうする
でも模型だとスペース的にスイッチすら入らないような事も出てくるだろうからタッチ式というのは楽しみ
>>651
手段が目的化しない性格というのもあるけど、工作の方が得意でプログラミングは全くの初心者だから…
なんかせかされているように結構言われるねw
とりあえずこのライト関係は置いておいて1個試験してみるかな
スイッチで赤→緑に切り替えるようPIC12F1822に書き込んでみよう
https://i.imgur.com/Wv0u4JL.gif >でも模型だとスペース的にスイッチすら入らないような事も出てくるだろうからタッチ式というのは楽しみ
逆じゃないかなあ。
ある程度の面積が用意できないとタッチセンサーはうまくないような…。
スイッチは、私の手持ちに限っても一番小さいのは2x3x1mm程度のがあるよ。
あ、でも、模型のボディーそのものにタッチするようにすればいいのか…。 >>653
あ、そうなの?
アンテナみたいに金属棒伸ばしてタッチとかじゃダメなのかな?
30 #include <xc.h>の所が!マークに
何が悪いんだろう
https://i.imgur.com/EZdqPpHh.png >>654
エラーは出ずにビルドはできるでしょ?
コンパイラーのバージョンはいくつになってますか?
参考にしている本と同じにすれば消えると思います。 >>654
環境を書いてね。
うちは MPLABX IDE v5.05、XC8 v2.00とv1.45 の Win10 環境です。
ちなみに、上の警告はv2.00で出て、x1.45にしたら出なくなって、v2.00に戻してももう出ない。
いずれもビルドに問題はなかった。 >>655-657
ありがとう
環境は
Windows 10 Pro (64bit)
MPLAB X IDE v5.10
XC8 (v2.05)
ですね
本は
MPLAB X IDE v3.61
XC8 (v1.42)
です
リンクして頂いた情報でもバージョン違いが原因みたいですね
やり直してみます
最悪本と同じバージョンに入れ直してみる コンパイラは両方インストールしといて設定で切り替えられるから、
最初は本と同じの方が絶対いいですよ。
2.00以降は私でも、てか私も初心者ですが、はあ?ってなることがある。 >>654
> アンテナみたいに金属棒伸ばしてタッチとかじゃダメなのかな?
問題ないよ。指でタッチするならそれなりの間隔が必要だが
鉛筆の芯でタッチするなら 1mm間隔に並べても OK だ。
電線を延ばすと非タッチ時の浮遊容量が増えるので線長に合わ
せてチューニングするか AGC のように自動調整しても良い。
入力の H/L 見るよりは面倒だが AGC処理からチャタフリーまで
丁寧にやってもせいぜい 30ステップくらいだあな。 >>662
おお、お前、素直で気に入った!ww
頑張って回路完成させてくれ、応援してるぞ mTouchをMCCでやってみたらあっという間にできた。
ブレッドボード上に隣り合って立てたピンヘッダに指で触れてちゃんと別々に認識する。
いままでちょっと食わず嫌いだったと反省している。
まあ、MCCのおかげと言えばそれまでだが。 タクトスイッチは結構固いのが多く、たまに押すくらいなら良いが、頻繁
に押すと腱鞘炎気味に指が痛くなる(俺の指がヤワなのかも)。
mTouchはクリック感じがないのがある意味欠点だが、指には優しい。
クリック感の代わりにクリック音をソフトで出すのもありかもしれない。
タッチ電極は革製品に使うカシメを使うのがマイブーム。 これすごくね?
youtube)Simple DIY PCB with a 3D Printer
3DプリンターでPCBができるんだな。
ガチで普通に短時間でゼロから完成品をつくる方法と
全部で3Dプリンタ3万 ドリル2000円 ドリルシャフト1000円 くらい?
基盤発注やらエッチングよりいいのでは?
回路幅は1.5mmくらいなので(エンドミル変えても精度きついか)
Fusionとか1基盤が1週間やら2週間で2500円でしょ?
3万で揃うのでこれいいかもしれない。 で、それガーバーデータ喰わせればプリントしてくれるの? 年がら年中基板作ってる訳ではないので発注でいいや。機材置いとく場所もないし。 >>669
動画見たけど、3Dプリンタじゃないだろ。 >>669
急いでいるときには、便利だけど、レジストのかかっていない、基板は使いづらい。
片面だし、エンドミル、高くて長持ちしないし、うるさいしね。
1週間待てるなら、発注が全然安いよ。 週末なんでプログラミング挑戦中
単に点灯なら本通り打ち込めばいいけどスイッチによる2色切り替えに難儀してる…
https://i.imgur.com/Wv0u4JL.gif スイッチうまくいかないですですね
このRB5ハザードスイッチを押す度にON−OFFを繰り返すようにしたいのですがこのスレで直接プラグラミングについての質問はNGですかね?
https://i.imgur.com/PT3muPDh.png やっぱりチャタリングだったか…
数十msec間を開けて3回連続オンだったらオンにするとかプログラム上の対策が必要 これだとスイッチを押してる間はハザードが点くけど押すごとにON-OFF切り替えにはならない…
void main(void) {
OSCCON = 0b01110010;
OPTION_REG = 0b00000010;
WPUB = 0b00111111;
ANSELA = 0b00000000;
ANSELB = 0b00000000;
TRISA = 0b00100000;
TRISB = 0b11111111;
PORTA=0;
PORTB=0;
while(1){
if(RB5==0){
PORTA=0b11000011;
__delay_ms(500);
PORTA=0b00000000;
__delay_ms(500);
}else{
PORTA=0b00000000;
}
}
return;
} >>684
とりあえずトグルで点灯か消灯かは
LATBbits.LATB0 ^= 1;
を使えば1なら0に0なら1になります。
あと、私なら、
while(RB5==0);
も入れるかな。
ただ、ハザードは点滅を続けるか止めるかだし、
ハザードを点滅させながらヘッドライトのオンオフとかもしたいわけでしょ?
やっぱりタイマー割り込みを勉強してもらった方がいいかもです。
__delay_ms();使わずに点滅させる方が後々楽だと思います。
さらに言えばMCC使った方が手っ取り早いんだけど、話が複雑すぎてここじゃ説明できない。
「XC8 MCC Lチカ」とかで検索してみてください。 >>685
アドバイスありがとう
話の半分も理解出来ないのでぼちぼち検索しながらやってみます
トグルは模型のスケール的にも使いたくないのでプッシュモーメンタリーで考えてます
回路図が全部トグルになってましたね… >>686
トグルって言葉があいまいでした。
モメンタリのスイッチを使い、押す度に点灯・消灯をトグルで繰り返すという意味で使ってます。
A ^= 1;
は、実行するたびにAの値が0/1を繰り返します。
チャタリング対策は別として、基本は
if(B==0){
A ^= 1;
}
とやるだけです。
while(B==0);
は押したスイッチを放したかどうかを判定します。 >>687
情報ありがとう
>>688
あ、ではやりたい事であってますね
わざわざありがとうございます ■ このスレッドは過去ログ倉庫に格納されています