PICマイコン電子工作入門〜実践編〜

NO IMAGE

PICマイコン電子工作入門の基礎編と応用編で触れなかった知識を、実践編としてまとめていきます。第1回目は全体像を説明します。実践編のテーマ PICマイコン電子工作入門の基礎編、応用編と進んでこられて、いかがでしたでしょうか。 「いか[…]

IMG

実践編で必要な道具や電子部品、その他部材のリストを作成します。買い物リストの説明の進め方 第2回〜第4回の記事で、実践編で使用する道具や電子部品のリストを作成します。リストは以下のように大きく4ジャンルに分けました。 ハンダ付け[…]

IMG

今回は、ハンダ付け練習に必要な部材を説明します。2. ハンダ付け練習部材 今回は、ハンダ付け練習用の部材を説明します。 センサやLCDモジュールのハンダ付けを行う前に、ハンダ付けの感覚をつかむための練習を行います。練習では以下のよう[…]

IMG

今回は、電子部品とツール関係の買い物リストを作成します。3. 電子部品類 電子部品類の一部は、基礎編・応用編で使用したものを流用できますので、足りないものを購入します。最後に買い物リストをまとめます。買い物リストには秋月電子通商さんの通販[…]

IMG

ハンダ付け練習用の回路図を説明します。練習用回路概要 ハンダ付けの練習で製作するものは、電池ボックスを電源としてLEDを点灯させるものです。 ハンダ付けの練習ですので、失敗した場合に、その箇所がわかりやすい回路にします。具体[…]

IMG

今回は、ハンダ付け作業の手順とコツを確認します。今回の説明内容 実際にハンダ付けを行う前に、そのやり方やコツを説明します。ハンダ付けは、ハンダを溶かしてくっつける、という単純な作業に思えますが、結構奥が深く、早く慣れるためのちっとしたコツ[…]

IMG

今回は練習基板で実際にハンダ付けを行います。ハンダ付け作業の注意点 これからハンダ付け作業を始めますが、2点注意があります。 1つ目は、ハンダこては非常に熱くなりますので、火傷には十分注意してください。ハンダこての設定温度は最初37[…]

IMG

ハンダ付け練習基板にもう1個LEDを追加します。LED回路追加ハンダ付け 以下の部分を追加でハンダ付けします。 ハンダ付け手順は今までと同じやり方で問題ありません。ただ、すでにターミナルブロックやLEDなど高さのある部品をハ[…]

IMG

ハンダ付けにちょっと慣れたところで、センサと液晶ディスプレイモジュールのハンダ付けを行います。ハンダ付けの順番 ハンダ付けにちょっと慣れてきたと思いますので、いよいよセンサ2個と液晶ディスプレイモジュールのハンダ付けを行います。 部[…]

IMG

今回から回路図設計に入ります。最初は使用する部品について確認します。回路図設計を始める前に これからPIC16F18857を中心に、センサやLCDモジュール、LEDを制御する回路を設計します。 回路図設計に入る前に、動作電圧の確認や[…]

IMG

今回は電源回路の設計です。特定電圧の電源 今回製作するシステムでは、各部品の動作電圧を考慮すると3.1V〜3.6Vの範囲内の電源が必要です。 この範囲の電圧は、電池の組み合わせで作ることは難しいですよね。 また、仮に電池の組み[…]

IMG

今回は3端子レギュレータの回路設計時の注意点を説明します。3端子レギュレータの回路設計注意点 前回の記事で設計した3端子レギュレータの回路は、実装編のシステムで使用する上では問題ありませんが、ご自分で設計した回路で3端子レギュレータを使用[…]

IMG

次はPICKitのコネクタ回路です。PICKit3コネクタ PICKitを接続するためのコネクタ周りの回路は、基礎編のPIC12F1822と同じ回路です。そのため、今回の記事はほとんど説明することろがありませんが、以下の回路図を見て忘れて[…]

IMG

今回はSPIセンサモジュールの回路図を設計します。また接続するだけです。温湿度・気圧センサの通信方式選択 今回の温湿度・気圧センサは、通信方式としてSPI通信かI2C通信を選択できます。選択方法について簡単に説明いたします。 以下は[…]

IMG

今回は、I2C通信を行う温度センサとLCDモジュールの回路図を設計します。I2C通信モジュールの端子 温度センサとLCDモジュールの通信方式はI2Cです。前回の温湿度・気圧センサは、SPIかI2Cを選択できましたが、温度センサとLCDモジ[…]

IMG

これで回路図設計は最後です。LEDを接続します。LEDの使用目的 LEDは天気予報の表示に使用する予定です。今回実践編では青と赤の2色LEDを使用しますが、ご自分の好きなLEDを接続していただいて構いません。また接続する位置も、空いている[…]

IMG

今回からブレッドボードに回路を組み立てていきます。最初は電源周りです。回路図確認 最初は電源周りの組立てを行います。まずは回路図の確認です。 この回路をブレッドボードに組立てます。左側の電池は、電池ボックスからリード線をブレ[…]

IMG

今回はプログラム書き込み回路を組み立てます。回路図確認 今回、ブレッドボードに組み立てるプログラム書き込み回路は以下の回路図の赤色の部分になります。 この書き込み回路は、基礎編・応用編のPIC12F1822と同じ回路ですが、[…]

IMG

今回はPICマイコンの電源接続と温湿度・気圧センサの回路を組立てます。PICマイコン電源の回路図 前回の記事でPICマイコンの位置が決まりましたので、電源を接続しましょう。以下の部分を組み立てます。 注意点としては、PICマ[…]

IMG

今回は温度センサとLCDモジュールを組み立てます。 回路図 今回は回路図の以下の部分を組み立てます。最初に温度センサ部分、その後LCDモジュール部分を組み立てます。   PICマイコン使用ピン I2C通信方式[…]

IMG

LED回路を組み立てて、ブレッドボードを完成させます。 回路図 基礎編・応用編でLEDを使いましたが、回路はそれと同じです。以下のようにRB0ピンとRB1ピンにLEDを接続します。   LEDの中身とピン 普[…]

IMG

今回はブレッドボードの回路が正しく動作するか確認します。 動作確認内容 今回は、組み立てたブレッドボードが正しく動作するか確認します。動作確認用のプログラムを書き込み動作確認しますが、このプログラムは以下の動作をします。 […]

IMG

I2CやSPI通信の説明に入る前に、コンピュータの世界の通信とはどういうものか、具体的に考えてみます。 マイコンとセンサやLCDモジュール間の通信 実践編で設計した回路図では、マイコンとセンサやLCDモジュールは以下のように2本、または[…]

IMG

今回からSPI通信の説明に入ります。 時計を持たない通信 前回の記事で検討したデータ通信システムは、データの送信側と受信側でそれぞれ時計を持ち、その時計を見ながらあらかじめ決めた時間間隔でデータの送信と読み取りを行う、というものでした。[…]

IMG

データ通信システムを拡張します。 「シリアル通信」 今まで、2種類の通信手順でデータ通信ができることを確認しました。ひとつは1つの信号で時計を見ながらデータ通信を行う方法、もう一つはクロック信号とデータ信号の2つの信号でデータ通信を行う[…]

IMG

今回のデータ通信システムの検討で、SPI通信の基本形が完成します。 データ通信システムの改装 前回まで検討したシステムで、マスター(リビング)からスレーブ(勉強部屋)に対して情報を送り、その返事をスレーブからマスターに返信することができ[…]

IMG

今回は、実際のSPI通信手順の説明です。今回の説明 前回までの説明で、SPI通信の基本的な考え方をみてきました。今回は実際のSPI通信の通信手順やタイミングチャートを確認します。 「実際のSPI通信」とは言っても、今までの説明から大[…]

IMG

データ通信に慣れてきたところで、チャレンジ課題に挑戦してみます。 コンピュータのデータ通信 前回までの説明で、1つの信号線でデータ通信を行う方法から検討を始めて、SPI通信を行うまで順を追って理解してきました。今まで説明ばかりでしたので[…]

IMG

温湿度・気圧センサの仕様概要を確認します。 BME280のセンサ はじめに、温湿度・気圧センサモジュールについて注意点を説明します。 このセンサモジュールは「温湿度・気圧センサ」となっていますが、実際には温度データは測定環境の気温[…]

IMG

今回はセンサモジュールの詳細仕様を説明します。 今回の説明内容 前回の記事で、センサモジュール内にはメモリがあり、SPI通信を利用してそのメモリを読み書きすることにより動作設定をしたり測定データを読み出したりすることを説明しました。 […]

IMG

SPI通信確認方法 温湿度・気圧データの取得するプログラムは、データ校正部分が結構複雑になります。最初からそのプログラムを作成すると全体の見通しが悪くなってしまいます。そこで、最初はSPI通信の動作確認を行うためのシンプルなプログラムを作[…]

IMG

今回は、センサモジュールのIDを取得するプログラムを作成します。確認プログラム構成 今回作成するプログラムの構成は以下のようになっています。プログラムの中身の説明に入る前に、全体の構成を把握します。 プログラムは、コメントを[…]

IMG

前回作成したプログラムをMPLABX IDEのデバッグ機能を使用して動作させます。デバッグ機能とは? 今までの記事で、いくつかチャレンジ課題に挑戦していただきましたが、一発でプログラムが動作せずに困った経験はないでしょうか。自分の場合、チ[…]

IMG

今回はデバッグの主要な機能を一通り紹介します。今回の説明内容 前回の記事では、典型的なデバッグの手順を説明しました。PICマイコンの処理をプログラムの特定の行で止め、その時の変数の値を確認する、という内容でした。 ところで、MPLA[…]

IMG

SPI通信とデバッグ機能のチャレンジ課題です。SPI通信で湿度データを1バイト読み取る これまでの記事で、SPI通信でセンサのチップIDの値(1バイト)を取得するプログラムを、デバッグ機能を利用して実行しました。 チャレンジ課題の1[…]

IMG

センサ(BME280)のデータシートを元に、温湿度・気圧データの取得プロクグラムを完成させます。測定データ取得の流れ 温湿度・気圧センサBME280の概要の記事で説明しましたが、もう一度測定データ取得の流れを確認します。なお、以前の記事で[…]

IMG

今回からI2C通信手順の説明に入ります。SPI通信の特徴確認 I2C通信手順の説明に入る前に、SPI通信を振り返っておきましょう。 SPI通信を行うには、マスターとスレーブを以下のような信号線で接続しました。 データ送[…]

IMG

I2C通信のハードウエア構成と通信手順の概略を説明します。I2C通信のハードウエア 前回の記事で、I2C通信では1本のクロック信号線と1本のデータ信号線のみの構成で、マスターと複数のスレーブ間でデータ通信を行うことを説明しました。 […]

IMG

基本的なI2C通信手順を説明します。説明内容 I2Cデータ通信はI2Cモジュール(I2Cスレーブ)ごとに異なりますので、この記事では基本的な通信手順を説明します。 基本的な通信手順として、マスターがスレーブを選択した後、マスターから[…]

IMG

I2C通信プログラムを作成する前にPICマイコンの「PPS機能」の使い方を説明します。PPS機能とは? 突然「PPS機能」なんて用語がでてきて、どこ? I2C通信は?、という感じですが、I2Cプログラム作成の前にPPSの理解が必要になりま[…]

IMG

PICマイコンのI2C通信のプログラム作成に入ります。クロック信号の速度 前回の説明で、I2C通信のクロック信号の速度について説明するのを忘れてしまいました。 SPI通信もI2C通信も、データの送受信はクロック信号の変化で読み取る、[…]

IMG

今回からI2C通信液晶モジュールのプログラムを作成していきます。最初は概要の説明です。液晶モジュールの種類 電子部品の通販サイトを見ると、液晶モジュールには多くの種類があることがわかります。 液晶モジュール (秋月電子通商) […]

IMG

今回は液晶モジュール(AQM1602XA/ST7032)の制御方法の説明です。AQM1602XAで表示できる文字 実践編で使用する液晶モジュール(AQM1602XA)はキャラクタディスプレイです。そこで、最初にこの液晶モジュールで表示でき[…]

IMG

今回は液晶ディスプレイに文字を表示するコマンドを説明します。文字表示の方法 前回の記事で説明したように、液晶モジュールに文字を表示する場合は、文字コード表に従って0x40と文字データを液晶モジュールに送信します。 例えば、「A」(0[…]

IMG

液晶モジュールに温湿度・気圧データを表示するプログラムを作成する前に、動作確認目的として簡単な文字列を表示するプログラムを作成します。動作確認で行うこと 温湿度・気圧センサから読み取った値を液晶モジュールに表示する前に、簡単な文字列を液晶[…]

IMG

液晶モジュールの制御方法を確認しましたので、BME280で取得した温湿度・気圧データを液晶モジュールに表示するプログラムを作成します。プログラムする部分 前回までの記事で、以下のプログラムを作成済みです。 BME280から温湿度[…]

IMG

今回から温度センサADT7410から温度データを取得するプログラムを作成します。今回はセンサの概要説明です。センサ仕様概要 最初に、実践編で使用する温度センサADT7410の概要について説明します。 ADT7410は微妙な温度変化を[…]

IMG

温度センサ(ADT7410)の制御では、液晶モジュールとは違ったI2C通信手順が必要です。その通信手順を中心に説明します。液晶モジュール制御と異なるところ 温度センサのI2C通信制御は、液晶モジュールのそれと大きく異なるところがあります。[…]

IMG

今回は温度センサ(ADT7410)の動作設定方法について説明します。動作設定概要 ADT7410の動作設定を行うには、ADT7410内部のメモリのアドレス0x03に1バイトのデータを書き込むことにより行います。 レジスタ0x03に1[…]

IMG

温度センサから取得したデータから、温度を求める方法を説明します。温度センサADT7410の温度データ ADT7410の測定した温度は、メモリマップのアドレス0x00と0x01に格納されています。0x00が上位8ビット、0x01が下位8ビッ[…]

IMG

今回は実践編のプログラムを完成させます。湿度と気圧データはBME280から取得、温度データはADT7410から取得します。温度センサADT7410の動作設定 温度センサの初期化方法とI2Cの通信手順がわかりましたので、ADT7410の動作[…]

IMG

天気予報のアルゴリズムを考える前に、天気と気圧の関係を調べてみます。天気と気圧のデータ 実践編を終えるにあたり、製作した回路で天気予報に挑戦してみます。 以前の記事でも説明しましたが、天気と気圧には関係があります。気圧が上昇傾向にあ[…]

IMG

今回は天気予報のアルゴリズムを考えます。アルゴリズム 天気を気圧変化のみで予報するのはなかなか難しそうですが、それなりに予報できるアルゴリズムを考えてみたいと思います。 前回の記事でグラフ化した2018年3月のデータをもとにアルゴリ[…]

IMG

前回までに検討した天気予報のアルゴリズムを実装します。実装する仕様とアルゴリズム 前回までの記事で気象庁が提供している実際のデータを使用して天気予報のアルゴリズムを考えましたが、今回はプログラムの実装仕様を検討してプログラムを完成させたい[…]

IMG