PICマイコン(PIC16F1827)で実現できる機能と解説リンクまとめ

組み込みエンジニア

こんにちは、ENGかぴです。

PIC16F1827を使ってマイコンの基礎であるタイマ・シリアル通信・I2Cなどの使い方を学ぶことができます。PICマイコンの開発支援ツールであるMCCプラグインを使用してPIC16F1827の動作を確認しました。

本記事は動作確認したことのリンクをまとめています。

PICマイコン(PIC16F1827)の機能

PIC16F1827はPICマイコンの中でもミドルレンジの8ビットのマイコンです。マイコンの基礎知識を学ぶには十分のスペックを持っています。

PICマイコンの開発環境をつくる

PICマイコンを開発する場合MPLAB X IDEやPICマイコンに応じたコンパイラーをインストールする必要があります。開発環境であるMPLAB X IDEとコンパイラであるMPLAB XC Compilersのダウンロードとインストール方法・プロジェクトの作り方・メインファイルの作り方についてまとめています。

MCCの追加と使い方

MPLAB Code Configurator(MCC)はGUI(Graphical User Interface)を使って選択したPICマイコンデバイスのクロックなどのシステム設定や周辺モジュールの初期化処理が自動で行えます。

MPLAB Code Configurator(MCC)の追加と使い方

ユーザーはレジスタの設定などのコーディングを意識することなく画面に表示された項目を選択するだけで簡単に設定できるため、マイコンの初期化処理に伴う煩わしさを感じることなく開発が行えるのが特徴です。

タイマ管理でソフトウェアタイマを作る

PIC161827のタイマー機能を使用してベースタイマを生成しオーバーフローした回数を管理することでソフトウェアタイマを作ることができます。8ビットタイマであるTMR0を使用していますが、タイマーであれば同様の考え方でソフトウェアタイマを構成することができます。

自分が管理したいタイマーの変数を宣言し、変数に数値をセットするだけで任意の値でタイムアップさせることができるようになります。

DIピンのチャタリングを防止

DIピンに入力されるDI信号がスイッチのON/OFFの切り替え時にチャタリングのため安定しないことがあります。チャタリングの影響を受け誤動作する可能性もあることからフィルタによる誤動作防止が必要な場合もあります。

タイマ管理でソフトウェアタイマを生成し任意のタイミングで取得したDIデータが複数回一致した場合にDIが安定したとみなすことでチャタリングを防止しています。

シリアル通信で外部機器と通信する

I2C通信で温湿度センサーの情報をLCDに表示

I2C通信はMSSP機能に含まれています。MCCを使用してMSSPの設定を行い、LCDに文字を表示しました。MCCが生成した関数の使い方と実装例をまとめています。実装例としてストップウォッチのソフトを製作して動作確認を行いました。

SHT35-DISの温湿度の情報をI2Cで取得してLCDに表示しました。CRC-8の計算方法や温湿度情報への換算方法についてまとめています。

AD変換を実装する

PIC16F1827はADC機能を持っておりセンサーの電圧をアナログ情報として取り込むことができます。MCCでADCの実装例として温度センサーと照度センサーの値をアナログデータとして取り込んで動作確認を行いました。

温度センサーを指で触れると測定電圧が変化しLED(赤)が点灯し照度センサーに手をかざすとLED(緑)が点灯しました。LEDの点灯/消灯はAD変換の値を一定値と比較して行っているためAD変換できていることが分かりました。

コンパレータを実装する

PIC16F1827はコンパレータ機能を持っており基準電圧に対して入力電圧が高いか低いかを判断した結果を出力することができます。MCCでCMP実装し基準電圧にFVRを使う方法とDACを使う方法の2通りの動作確認を行いました。

基準電圧にDACを使ってヒステリシス特性の拡張を行っています。周辺回路で外来ノイズをカットすることが望ましいのですが、マイコンに搭載されているヒステリック特性よりも大きくしたい場合に有効な方法です。

PWMを実装する

PWM機能の確認はブザーを鳴らす事で行い、EPWMの動作はAD変換によって取得した値を基にデューティー比を調整することでLEDの明るさを変更し、DCモーターを動かすことで動作確認を行いました。

PICマイコン関連で使用している書籍

PICマイコンの基礎をC言語で学習する際に参考になる書籍があります。PICマイコンをC言語で開発してみたいけどどうしたらよいかわからない場合は参考になると思います。

まとめ:PICマイコンで基本動作が学べます

PIC16F1827を使用してマイコンの機能であるタイマやシリアル通信など基本となる動作についてまとめてきました。各リンクで紹介している方法は他のマイコンを使用する際にも有効な方法で私が担当している製品にもよく使用している方法です。

開発支援ツールはメーカーによってMCCなどのプラグインが実装されレジスタの設定など細かな内容が分からなくても基本動作が確認できるようになりつつあります。

レジスタの設定方法を理解しておくことは重要ですが、まずは動作させて楽しむことが大切だと感じています。慣れてくるとMCCが実装したレジスタの設定の意味が分かるようになりあなたなりの追加修正ができるようになることでしょう。

マイコンのレジスタ設定を理解することはArudino環境などにおいてライブラリを作って提供する側になれます。

プログラミングの教養を身に着けておけばPICマイコンのみでなくArduinoやそのほかの開発環境においてもソフト開発ができるようになります。

GEEKJOB-未経験からITエンジニアに【オンライン無料体験】

言語は何であれ一つ身に着けておくと他の言語にも共通する考え方応用することができます。マイコンのソフト開発をしてみたいIoTモジュールを動かしてみたいという好奇心やチャレンジ精神が大切だと思います。

関連リンク

PIC12F675を使って動作確認したことについてまとめています。PIC12F675はMCCに対応していないためレジスタ設定などの初期化処理を実装する必要があります。レジスタの設定の考え方などについてまとめています。

PICマイコン(PIC12F675)で実現できる機能と解説リンクまとめ

下記記事ではIoT社会実現と組み込みエンジニアの職種との関係についてまとめています。

組み込みエンジニアはIoT社会実現のために需要が高い職種

Arudinoを使った開発環境を作り方やライブラリを使って各種モジュールを動作させています。Arduinoを使って動作確認したことについてリンクをまとめています。

Arduinoで学べるマイコンのソフト開発と標準ライブラリの使い方

IoTモジュールであるトワイライトでソフト開発と無線通信を行い動作確認したことについてリンクをまとめています。

トワイライト(TWELITE)のソフト開発と無線通信でできること

最後まで、読んでいただきありがとうございました。

タイトルとURLをコピーしました