PICマイコン電子工作入門〜応用編〜

NO IMAGE

PICマイコン電子工作入門の応用編です。最初に全体像と製作するもの説明します。応用編の進め方 PICマイコン電子工作入門の基礎編では、PIC12F1822を使用してタイマーを製作しました。 応用編では、製作したブレッドボード回路とプ[…]

IMG

最初に「PWM」とは何かを理解します。PWMとは PWMとは「Pulse Width Modulation」の略で、変調方式の一つです。。。。。。。 って感じで説明を始めてもさっぱり...って感じですよね。ということで、「PWM」とは何か[…]

IMG

今回はLEDをPWM制御するプログラムを作ります。今回やってみること 前回はPWM制御の概要を確認しました。 今回は、PWM制御のプログラムを作成して実際にLEDの明るさを調整してみます。今回は以下の手順で進めます。 回路[…]

IMG

今回はPICマイコンのPWM機能を使ってLEDの明るさを調整します。PWM機能? 前回はLEDをPWM制御して明るさを調整しました。PWM制御ってプログラムで簡単に実現できることがわかりましたよね。 ところで、PIC12F1822に[…]

IMG

今回は、基礎編で製作したタイマープログラムにPWM機能を実装します。実装する内容 前回までに、PWM制御方法を二通り確認しました。一つは、__delay_us()を使用して時間制御を含めて全てプログラムで制御する方法、もう一つは、PICマ[…]

IMG

今回はPWM制御に関するチャレンジ課題です。PWM制御プログラム2通り PWMの最後はチャレンジ課題で締めくくりたいと思います。 前回までに、LEDを2通りの方法でPWM制御しました。PWMの原理自体はとても簡単だったと思いますが、[…]

IMG

今回からADコンバータについて説明します。ADコンバータとは 基礎編では基本的なタイマーを製作して、前回までの応用編ではPWMを説明するために、無理やり感満載って感じでタイマーにPWM機能を実装しました。今回も最初からそんな雰囲気が漂います[…]

IMG

今回はADコンバータ機能を利用する回路を設計します。追加する機能の説明 基礎編で製作したタイマーは、タイマーの時間を変更したい場合、プログラムを変更してPIC12F1822に書き込む必要があります。時間を変えるたびにプログラム変更→書き込[…]

IMG

今回は、ADコンバータを利用する回路をブレッドボード上に実装します。回路図の確認 前回の記事で、「次回はプログラムを作ります」なんて終わり方をしましたが、すみません、回路をブレッドボードに追加実装する必要がありますよね。ということで、今回[…]

IMG

今回は、ADコンバータプログラムの設定部分の解説です。ADコンバータプログラム概要 ADコンバータ機能を利用したスイッチ回路の設計と実装が終わりましたので、今回からプログラムの作成をします。 第7回の説明で、ADコンバータ機能を利用[…]

IMG

今回はADコンバータ機能を利用したプログラムを完成させます。ADコンバータプログラムまとめ ちょっとしつこいですが... ADコンバータ機能を利用するための必要なことをもう一度確認しておきましょう。 ADコンバータを利[…]

IMG

今回はチャレンジ課題です。ADコンバータの設定を変えてみよう ADコンバータの設定のところで、結果の値をADRESに右詰にするようにしました。 この設定を左詰にすると、プログラムをどのように変更すればよいか検討してみてください。左詰[…]

IMG

今回からEEPROMを使ったプログラムを作成してみます。現在のタイマー機能の問題点 前回までのプログラムで、タイマー時間を設定する機能を追加することができました。 ところで、まだちょっと機能が足りませんよね。すでにお気づきかもしれま[…]

IMG

今回はEEPROMを利用してタイマー設定時間を保存する機能を追加します。追加機能の仕様を決める EEPROMのデータ読み書き、初期設定の方法がわかりましたので、早速これらの機能を使ってタイマー設定時間の保存機能を追加しましょう。 […]

IMG

EEPROMに関するチャレンジ課題に挑戦してみましょう!timeValueの問題点 前回のプログラムで、タイマー時間を管理する変数、timerValueは、EEPROMの読み出し、書き込みに合わせて1バイト(unsigned char)に[…]

IMG

今回から割込み処理を実装していきます。割込み処理とは マイコンを使った電子工作の情報をネットで検索していると、「割込み処理」という言葉がよく出てきます。マイコンを使っていく上で、この割込み処理はとても重要な機能ですので、しっかり理解してぜ[…]

IMG

割込み処理プログラムの基本構造について説明します。これから行うことの説明 割込み処理プログラムの説明をするために、今まで作成していたタイマープログラムはいったん脇に置いておいて、簡単なプログラムを作成して割込み処理プログラムの基本構造を確[…]

IMG

今回は、PICマイコンの割込み処理の仕組みと必要な設定内容について説明します。 PICマイコンの割込みの仕組み 割込み処理の実装を行う前に、PICマイコンの割込み処理の内部の様子を理解しておきましょう。 割込み処理の説明の最初で、[…]

IMG

今までの内容を踏まえて、タイマープログラムに割込み処理を実装します。 動作仕様 それでは今までの内容を元に、タイマープログラムに割込み処理を追加しましょう。 タイマー動作としては以下の仕様とします。 スタートボタン(RA3ピン)が押[…]

IMG

応用編の最後として、タッチセンサ機能を実装します。タッチセンサ機能を実装しよう! 最近はスマホが必需品になっていて、スマホの画面を当たり前のようにタッチ操作している方も多いと思います。スマホを操作するとき、どういう仕組みで指が画面にタッチ[…]

IMG

前回はコンデンサの原理について説明しました。今回はその原理をどのように利用すればタッチを検知できるか説明します。復習 タッチ検知の仕組みの説明の前に、前回の説明を簡単に復習しておきましょう。 コンデンサは2枚の金属板を向かい合わせに[…]

IMG

今回は、PICマイコンでタッチ検知をするためのプログラムの基本構造を説明します。タッチ検知プログラムの基本構造 タッチ検知プログラムの詳細を説明する前に、プログラムの基本構造について説明します。 PICマイコンでタッチセンサを使用す[…]

IMG

今回は、タイマープログラムのスタートボタンをタッチスイッチに変更します。変更内容 前回の記事で、タッチセンサの基本プログラムを作りました。今回は、タイマープログラムのスタートスイッチをタッチスイッチに変更します。 現在、RA3ピンに[…]

IMG

実用的な電子工作をする際に、タッチセンサを使用する場合の注意事項などの補足を説明します。タッチセンサ値の計測時間 前回までの記事では、タイマープログラムに実装したタッチ判定は、100msの時間間隔でタッチセンサ値を計測しています。 […]

IMG

この応用編の最後として、MPLABXのプラグイン機能である「MCC」について説明します。MCCとは MCC (Microchip Code Configurator)は、一言でいうとプログラムの基本部分を自動生成してくれる機能です。そうは[…]

IMG

今回は、MCCと比較のための手書きプログラム(?)を作成します。手書きの場合のプロジェクト構成 次回以降の記事で、MCCを使用したプログラムを作成しますが、比較のために同じ内容のプログラムを自分で書いた場合どうなるか、確認しておきます。 […]

IMG

今回からMCCを使用してADコンバータを利用したプログラムを自動生成? 作成?していきます。説明の進め方 今回の記事ではMCCの画面構成の説明と、おおざっぱな作業の流れを説明します。 MCCの概要がだいたいわかったところで、次回(第[…]

IMG

今回はMCC設定画面で、マイコンの基本設定を行います。設定の流れ これから、デフォルトで表示されている機能モジュール、「System Module」「Pin Module」「Interrupt Module」の設定を順に行います。 […]

IMG

今回はMCC上でADコンバータ機能を追加します。今回行うこと MCCの例題としてADコンバータを使用しますので、今回はMCC上でADコンバータ機能を追加します。 前回の基本機能設定では、すでに「Project Resources」の[…]

IMG

今回は自動生成されたプログラムの内容を確認します。MCC生成コードの構成 それでは再度MCCが生成したプログラムコードの構成を確認しておきましょう。 それぞれのファイルの概略は以下になります。 ファイル名内容 m[…]

IMG

今回は自動生成されたプログラムを利用して、スイッチとLEDを制御します。動作仕様 何度も確認してすみませんが、今回作成するプログラムの動作仕様を再度確認します。 RA2ピンに接続された片方のスイッチが押されるとLEDをON、もう片方[…]

IMG

応用編の最終回です。説明内容 今回でMCCの説明は最後になります。また応用編の最終回です。 今までMCC上で一通りの設定を行い、プログラムを自動生成し、最後にプログラムを仕上げました。ただ、ここまで作業を行っても変更をしたい場合は必[…]

IMG