PICで遊ぶ電子工作

更新日2012.5.20 

contents
PICの概要
PICで遊ぶ手順
動かしてみる
PICの基礎

色々な実験
 LED各種
 液晶ディスプレイ
 ひとセンサ
 正弦波作成
 各種モータ制御
 超音波で距離測定

実用品&おもちゃ
 テストボード
 拍手スイッチ
 人が来たら点灯
 バッテリ放電器
 永久回転こま
 シリアル制御LCD

基礎知識など
 PICの種類
 2進数,16進数
 ビット,バイト
 オームの法則
 合成抵抗


多機能PIC
 PIC12F683編
 PIC16F88編

 PIC18
 PIC24/dsPIC編


C言語
 PICC-Lite編
 MPLAB C18編
 MPLAB C30編
更新履歴
掲示板
索引
このページについて
出番を待つもの達
PICとは、1チップのマイクロコンピュータです。
1チップのICにCPU,メモリ,IOインタフェースが全て内蔵されていて、少ない部品で簡単に 電子回路を作る事ができます。

少しだけ道具を揃えれば、色々な実験が可能です。
 ・LEDの点滅制御
 ・3色(フルカラー)LEDで無限の色を表示
 ・モーターの制御
 ・バッテリの電圧チェック

実験で使い方を理解したら、次は実用品やオモチャ作りにチャレンジしましょう。
 ・夜、人が近づいたら明かりを付ける
 ・拍手で蛍光灯の点灯制御
 ・障害物を避けて走る自動車
 ・バッテリ放電器

色々なセンサーを組み合わせる事で、楽さは更に広がります。
このページでも幾つかの実験をします。
Cdsセル明るさを検出
フォトトランジスタ明るさを検出(Cdsセルより高速)
焦電型赤外線センサ人の動きを検出
超音波センサ(10cm〜5m)距離を測ったり障害物を検出したり
短距離センサ(10cm〜80cm)ロボット向け(高速に距離測定)
赤外線LED/センサテレビなどのリモコンとか
マイク音を検出
温度センサ温度測定
湿度センサ湿度測定
圧力センサ圧力測定(体重計とか)
加速度センサ加速度を検出


最近の更新
2012.4.222章共通更新MPLAB IDEのダウンロード最新化(v8.84)
2012.4.222章共通更新MPLAB IDEのインストール最新化(v8.84)
2012.4.22C18共通更新MPLAB C18のダウンロード最新化(v3.41)
2012.4.22C18共通更新MPLAB C18のインストール最新化(v3.41)
2012.4.22C18共通更新MPLAB C18の使い方最新化(v3.41)
2012.5.20XC8共通新規MPLAB XC8編を新規開設



目次

1章から5章(5)までは、順に読み進めることを意識して作成しています。
それ以外は、興味があるページを自由にご覧下さい。

1章.PICの概要
(1)PICとは
(2)PICでできる事

2章.PICで遊ぶ手順  Update 2012.4.22
(1)概要
(2)最初に準備するもの
・開発ツール(MPLAB)やPICライタ
・工具
・最低限必要なパーツ
など

3章.第1ステップ(動かしてみる)
LEDを使った簡単な回路で、プログラムの作成,PICへの書き込み,実際の動作確認を行います。
(1)必要なパーツ
(2)実験回路を作る
(3)プログラムを作る
(4)プログラムをPICに書き込む
(5)さあ動作確認

4章.PICの基礎
(1)PICの仕組み(ピン配置,メモリ構造)<PIC16F84A>
(2)PICの命令とアセンブラ命令

5章.第2ステップ(色々な実験) <PIC16F84A>
(1)LEDを点滅させる
(2)2つのLEDを交互に点滅させる
(3)LEDの明るさを序所に変える (ソフトウェアでPWM制御)
(4)スイッチでLEDの点滅パターンを変更 (スイッチのノイズ(チャタリング)を除去)
(5)LEDを点滅させる (TMR0割込みを使用,割込みとは?〜プログラム作成)
(6)LEDの明るさを序所に変える (TMR0割込みを使用)
(7)暗くなったら明かりを点ける
(8)人が近づいたら明かりを点ける
(9)人が近づいたら明かりを点ける (RB0/INT割込みを使用:省電力待機)
(10)スピーカをつなげて音を出す
(11)スピーカをつなげて大きな音を出す (アンプで増幅,ドレミ〜を演奏♪)
(12)正弦波(sin波)を作る (ラダー回路でD/A変換)
追加実験1 64分割と128分割の波形比較
追加実験2 32分割,16分割,12分割の波形比較
追加実験3 CR発振回路との波形比較
追加実験4 周波数を可変にする(PIC16F88,PIC16F873) 
簡易版
(13)3色LED(フルカラーLED)を使う(動作確認)
(14)3色LED(フルカラーLED)を使う(イルミネーション)
(15)
EEPROMを使う 
簡易版
(16)7セグメントLEDを使う(3桁固定数字の表示)
(17)液晶ディスプレイを使う(まずは表示してみる(4ビット操作))
(18)液晶ディスプレイを使った時計(正確に時を刻む)
(19)ステッピングモータの制御(ユニポーラ型)
(20)簡単にできる簡易A/D変換(積分回路の応用)
(21)DCモータの制御(ON/OFF,スピード制御)
(22)DCモータの制御(正転/逆転,スピード制御)
(23)サーボモータの制御
(24)超音波を扱う(送受信の動作確認)
(25)超音波を使った距離測定(意外に正確)
(26)赤外線を使う
(27)フォトトランジスタ(光を検出)を使う
(28)照度センサ(明るさを周波数変換)を使う

6章.第3ステップ(実用品・おもちゃ・その他の実験)
(1)PICテストボード(スイッチ,LED) (PIC16F84A,PIC16F819,PIC16F88,PIC16F648Aなど)
(2)拍手スイッチ・音で電源ON/OFF<PIC12F683>
・ハードウェア編 (回路の考え方と実際の回路)
・ソフトウェア編 (プログラムの考え方,処理フロー,ソース)
・実践編 (蛍光灯に取り付け拍手で点灯制御を行う)
(3)バッテリ放電器 (バッテリを長持ちさせる)<PIC16F873> 
(4)夜、人の動きを検知したら明かりを点ける(単三乾電池1本のサイズ) <PIC12F683>
(5)1ピンで液晶ディスプレイを制御 (シリアル制御LCD)<PIC16F84A>(PICC-Lite)
(6)永久回転こま (一度回すと回り続けるふしぎなこま)<PIC16F648A>(PICC-Lite)

7章.基礎知識など
(1)使用する機能に対応して設定するレジスタ (PIC16F84A)
(2)PICの命令
(3)PICの種類とこのページで扱う機種 機能比較など
(4)PIC16F87xシリーズの比較
(5)18ピンPICの比較

(6)2進数と16進数(と10進数)
(7)ビットとバイトとワード
(8)論理演算(AND,OR,NOT,XOR)とPICの命令 
(9)オームの法則 (電流(A)・電圧(V)・抵抗(Ω)の関係)
(10)合成抵抗 (抵抗の直列,並列接続)
(11)直列,並列接続した抵抗と、電圧・電流の関係
(12)単位と記号 (V(ボルト),A(アンペア),Ω(オーム)や、m(ミリ),μ(マイクロ)など)
(13)ラダー抵抗回路によるD/A変換の仕組み

8章.機能が豊富なPICを使う(PIC16ファミリー)
PIC16F84Aは機能が少ない分扱いやすく、入門用としては最適です。
ですが、いずれ物足りなくなります。そうなったら、より多くの機能を持ったPICを使って実験をして見ましょう。
こちらでPICの種類と機種を簡単に分類しています。

1.PIC12F683 <小さな力持ち(省電力で小さく多機能)>
(1)PIC12F683のピン配置とメモリ構造
(2)PIC12F683を使うための準備と留意点
(3)内部クロックで動作させる (まずは動かしてみる)
(4)内部クロックで動作させる (追加実験)
(5)ひとの動きを検出したら明かりを点ける (省電力実用品,単三乾電池で1年動作)
(6)PWM機能を使ってスピーカを鳴らす (単音を出してみる)
(7)PWM機能を使ってスピーカを鳴らす (ドレミ〜を演奏)
(8)ピン変化割り込みを使う
(9)A/D変換を使う(ボリュームで音の高さ(周波数)を変える)
2.PIC16F88 <PIC16F84Aとピン互換でより多くの機能を持つ>
(1)18ピンPICの比較
(2)PIC16F84Aからの移行方法
(3)A/D変換を使う(結果を7セグメントLEDに16進表示)
(4)温度センサを使う(LM35D,A/D変換,7セグ)
(5)温度計に仕上げる(LM35D,A/D変換,7セグ,LM336-2.5,BCD変換)
(6)汎用PWMコントローラ(パルス幅と周期を自由に設定)
(DCモータ,サーボモータ,LED,スピーカなどの制御)
(7)RS232Cでパソコンと通信

9章.PIC18編
PIC16ファミリーの上位モデルであるPIC18ファミリーを使った実験です。
同じ8ビットコアであり、命令も下位互換があるため移行も容易です。
また、PIC16に比べ多くの面で使いやすくなっています。

PICライタやMPLABの使い方はPIC16と全く同じで、使う機種を選択するだけです。

PIC16よりも命令数が増えていたり、メモリ構造が変わったりと言う点はありますが、まずは単純な機能から実験して行きます。

1.PIC18F1320 <18ピン>
(1)18ピンPICの比較 (PIC16F88編の内容と同じ)
(2)スイッチ操作でLEDを点滅させる
(3)1秒毎にLEDを点滅させて見る
(4)40MHzで動作させる(250ミリ秒毎にLEDを点滅)
(5)内部クロックで動作させる(10秒毎にLEDを点滅)
(6)PORTレジスタとLATレジスタ
(7)TMR0割込みを使う(8ビットモードと16ビットモード)
(8)PORTBピン変化割込みを使う
(9)優先/非優先割込みを使う(割込み処理中の割込み)

2.PIC18F2320 <2550よりI/O数が多い、28ピン>
(1)液晶ディスプレイ(LCD)を使う
(2)A/D変換を使う
(3)2つのPWM機能を同時に使う

3.PIC18F2550 <最大クロック48MHz、USB内蔵、28ピン>
(1)48MHzで動作させる

C言語編
フリーのCコンパイラを使った実験コーナーです。
(1)MPLAB XC8編 (PIC本家のマイクロチップテクノロジ社,PICC/PICC18の後継)  New 2012.5.20
下記PICCの後継コンパイラです。
(2)PICC Lite編 (HI-TECH Software,PIC10/PIC12/PIC16)
これからC言語を始める場合は、上記MPLAB XC8編を参照下さい。
(3)MPLAB C18編 (PIC本家のマイクロチップテクノロジ社,PIC18)  Update 2012.4.22


掲示板 更新履歴 索引 ueno.mitt@gmail.com