while ((SSPSTAT & 0x04) ||(SSPCON2 & 0x1A)); //PENとSENが・・・ 19番のVSSは、接続してもしなくても変わりません。, ブレッドボードがおかしいのか??と思い、新品のブレッドボードでも組んでみましたが、一緒の状況です。 可能でしたら、上記モジュールとLCDユニットのサンプルも作っていただけるとありがたいです。, 1938が無かったので、手持ちのPIC16F1936で組んでみたのですが、最初、20番ピンにVDDを繋いだ時は、うまくいかず・・接触不良かと思い、20番ピンのVDD抜き差していたところ 21番ピンに VDDが接触した際 HELLO PIC WORLD WAK TECH と表示されました。, こんなにあっさりとできるとは 思ってもみなかったので、小躍りして喜びました。 I2CインタフェースのプログラムはMicrochip社のアプリケーションノート(AN982:Interfacing I2C Serial EEPROMs to PIC10 and PIC12 Drivers)を利用し、PIC12F615用に変更、また1Mbit用に拡張。 アセンブラソースです。無保証です。 ‚Æ 12:30:00 ‚ƁA00•b‚ɃŠƒZƒbƒg‚³‚ê‚éB, 12:30:40 ‚Ì‚Æ‚«‚ɂ́A•ª‚ðƒCƒ“ƒNƒŠƒƒ“ƒg‚µA•b‚ð 00‚ɃŠƒZƒbƒg‚µA12:31:00 ‚Æ‚È‚éB. の部分を アマゾンで次の二個を購入しましたが、PICマイコン駆動のネット資料が少なく断念。 に変更して試してみてもらえないでしょうか?, 初めまして。I2CでLCDを制御したいと思い、いろいろ検索してヒットしました。 その状態で動くのは非常に不可解ですね…しかし写真を見る限り確かに21番ピンにVDDが接続されてますね。, ソースコード中の ありがとうございました。, VDD ピンの20番、21番については、何かの間違いだろうと 手持ちの2個の 1936にプログラムを入れてみましたが、やはり同じで、21番ピンに電源を入れないと動きません。 }, サイトでは SSPCON2 & 0x1F でしたが、どうもPENとSENがうまく0にならず、SSPCON2 & 0x1Aだとループに入らずに進んでくれます(LCDには表示されませんが・・・) ありがとうございました。ご本業でのご活躍もお祈りします・・・, と いいつつも・・・ もし・・・・・上記の不可思議な症状・・心当たりがあれば ご教授頂ければ 幸いです。, この状況の写真を 私のブログに載せておきますので、もし、お暇な折でも ご覧になって、ヒントでも頂ければ幸いです。, 田崎様 現在pic18f2550同士で、i2c通信を行いたくアセンブラでプログラミングをしておりますが、教えていただきたい点があります。 ・マスターとスレーブは動作中に入れ替えることはできないのでしょうか? を参考にしてください。 そのメッセージは「_I2C_Master_RepeatedStart」がプログラム中で使用されていないだけで、問題ありません。 ・KKHMF DC 5V 1602 LCD ディスプレイモジュール 16×2キャラクタ LCDブルーブラックライト { お手数お掛けして申し訳ありませんが、宜しくお願い致します。, コメントありがとうございます! 今回使用するlcdは、i2cで接続するためのscl,sdaに加え、電源用のvddとgndの4 前回までは、PIC基礎編でした(おそらく)。主にピンのオンオフのみを使って何かを動かしていましたね。, この記事シリーズで詳しく解説していますが、同じくC言語でPICマイコンを扱うための体系的な書籍「C言語による PICプログラミング大全」が発売されています。まとまった情報が欲しい方はこちらの購入をお勧めします。かなり読みやすいですよ!, 今回は、以下の動画のように「液晶ディスプレイ」に文字を表示していきます。一見すごく難しそうですが、動けばいいという視点でいえば、主要関数はほぼコピペで問題ないので簡単です。, 基礎編からプラスで必要なのは液晶ディスプレイ(LCD)のみですが、一応全て列挙します。, 秋月電子のモデルとは異なりますが、よくある1602系のLCDにI2C変換を施したものも販売されているようです。こちらも基本的に使い方は同じでしょう。下にリンクを載せておきます。,
ありがとうございます。 お時間があるときにご教授ください。宜しくお願い致します。, 1938.c:54:: warning: (520) function “_I2C_Master_RepeatedStart” is never called, と出ます。 (adsbygoogle = window.adsbygoogle || []).push({});
, LCDとは、Liquid Crystal Displayの略で、そのまま日本語に直すと液体結晶ディスプレイ、つまり液晶ディスプレイです。非常に低消費電力で、PICのような小さなマイコンでも駆動することができます。, 暗くても見えるバックライト付きのLCDもあります。これは若干高価なので、今回は導入としてバックライトなしのI2C接続小型キャラクタLCDモジュール(16x2行・3.3V/5V)ピッチ変換キットを使います。, I2Cは、Inter-Integrated Circuitの略で、いろいろな機器間の通信をたった2本の線で実現するすごい方式です(語彙不足)。, I2Cには、命令を送るマスター(主)と、命令を受けて何かをするスレーブ(奴隷)となる機器があります。スレーブには番号(スレーブアドレスと呼ばれる)が付いており、基本的に, という手順を取ります。刑務所で「おい、1番、そこを掃除しろ!」と1番に命令しているのを想像してみれば分かりますね(例えが悪いですね、すみません)。「1番」の時点で他の2番や5番などは「私じゃないな」と分かり、次の「掃除しろ」命令が聞こえても行動に移しませんよね。このような挙動を示すことから、命令を出す側をマスター、受ける側をスレーブと呼んでいるみたいです。, マスターとスレーブは、以下の図のようにSCLと呼ばれる線とSDAという線でつながっています。SCLがLOWの時にSDAがHIGHだとほにゃらら…等の挙動をして、データを送ります。しかし、どれも同じ原理で動くので、コピペしてしましましょう。今回は、そのような方式で行きます。, さらに詳しくI2Cについて知りたい方は、こちらのサイトが参考になるでしょう。I2C通信の使い方, I2CにはSCLとSDAという線があることは上で説明しました。データシートを見てみましょう。, 14番ピンがSCLで、15番ピンがSDAですね。これを、それぞれ繋ぎたいスレーブのSCL,SDAに繋げば、回路は完成です。, 今回使用するLCDは、I2Cで接続するためのSCL,SDAに加え、電源用のVDDとGNDの4本のみで駆動できるようになっています。便利。, しかし、これを実現するためにキットの中に入っている変換基板があるのですが、このはんだ付けが初心者には非常に難しくなっています。細かいところへのはんだ付けの方法をググってから取り付けるといいでしょう。失敗しても吸い取れば直せますので、暖め過ぎにだけ気を付けてください。, この基板上のSCLとSDAを、それぞれPICのそれに繋ぎ、+Vと書かれた部分に5V、GNDは当然0Vへ繋ぎます。これで回路は完成です。, 完成回路は、以下の写真のとおりです。これに、PICkit3を接続して書き込みます。, I2C接続ですが、海外の方が非常に有用で簡潔なライブラリを作ってくれています。これをそのままコピペすれば、I2C接続ができます。, こちらは、私が構成したLCDを動かすための関数群です。これもコピペでいいでしょう。実は、下の関数はI2CLCDの説明書に書いてあるものをそのままPIC用にしただけです(特にLCD_init()はほぼ同じ)。, 文字を表示させるには、上記で作成したLCD_str()に配列を渡すだけで実現できます。LCDに「Hello,world!」と表示させたいときは、, main部分は、LCDの初期化をして、while文の中で”Hello, PIC world Wak-tech”を繰り返すようにしてみました。以下のようになります。, 途中、writeCommand()がたくさん出てきてますね。これは、LCDの機能を呼び出す関数(コマンド)です。次回色々なコマンドを解説します。特に、writeCommand(0x01)はLCDの画面を全てまっさらにするコマンドだということは知っておいて損はないです。, 上記のすべての関数を組み込んだコードです。これをコピペして書き込めば、動画のように文字が表示されるはずです。, 次回は、今回解説しなかったLCDのcommandについて解説します。例えば、文字を一文字ずつ右にずらす等の機能が備わっていて、それをPIC側から使う、ということをしていきます。お楽しみに!, 次回>LCD(AQM1602)のコマンドを使って、文字を移動させてみた【PIC16F1938】, ピンバック: Wak-tech » PIC16F1938で「ようこそジャパリパークへ」を演奏してみた, ピンバック: Wak-tech » LCD(AQM1602)のコマンドを使って、文字を移動させてみた【PIC16F1938】, ピンバック: Wak-tech » タイマー割り込みを使って時計を作る【PIC16F1938 TMR1】, ピンバック: Wak-tech » PICでタッチセンサを使ってみる(mTouch), すばらしいですね。本当にコピー&ペーストでできました。 picとlcd間の通信. こちらのページを参考にLCDを買いなおし、あっさり出来たので拍子抜けしてしまいました。 #include 1.I2Cの使い方; I2Cは、フィリップス社により開発されたシルアル通信の規格です。 シリアル通信には、rs-232、ieee 1394、シリアルataなど多くの規格がありますが、I2Cは主に近距離のデバイス(picやeepromなどのic)間通信に利用されています。 (1) I2Cの概要 記事中に記述し忘れましたが、「プルアップ抵抗」をSCLとSDLにつけてあげると通信が安定します。https://www.macnica.co.jp/business/semiconductor/articles/analog_devices/127585/ 大変助かります。, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, コピペで超簡単!PICマイコンでI2C接続のLCD(AQM1602)を使う【PIC16F1938】, I2C接続小型キャラクタLCDモジュール(16x2行・3.3V/5V)ピッチ変換キット, 超小型スイッチングACアダプター5V2A 入力100V~240V GF12-US0520, ANBE PIC プログラミングキット PICKIT3互換品 PIC マイコン ライター, Aukru 65本セット オス オス ジャンパーケーブル ブレッドボードワイヤー コネクタライン 電子工作用, 青色 LCD1602 IIC I2C TWI 1602 シリアル LCD ディスプレイモジュール Arduino対応 [並行輸入品], PICマイコンにプログラムを書き込んでみよう②~PICkit3での書き込み回路・書き込み方~【PIC16F1938】, 【PICマイコン】RGBフルカラーLEDで電子ホタルを作る【PIC16F1938】, Wak-tech » PIC16F1938で「ようこそジャパリパークへ」を演奏してみた, Wak-tech » LCD(AQM1602)のコマンドを使って、文字を移動させてみた【PIC16F1938】, Wak-tech » タイマー割り込みを使って時計を作る【PIC16F1938 TMR1】. ‚éB, F@EEPROM‚̃ƒ‚ƒŠƒAƒhƒŒƒXãˆÊ‚Pƒrƒbƒgi‰º‹L‚ðŽQÆj. ご教授いただけると幸いです。 私は高専の学生で、マイコンを使う部活に所属しております。今回の活動で、複数のpicを使用することになり、i2c通信を使おうと思っています。そこで、ある問題が発生しました。picによるi2c通信の解説を行っているとある方のサイトには、 I2C自体初めてで、「LCDが表示されない」という現象だけでどこから手を付けていいかも分かりません。 この度は弊サイトをご覧いただきありがとうございました!サイトも拝見させていただきました。無事動くようになり記事を書いた甲斐がありました。 PIC18F2620とXC8 1.45で開発しています。, コピペでいけるか?と思ってやってみましたが、どうも下記関数で無限ループに入っていて、処理待ちになってしまいます。, void I2C_Master_Wait() 2台のブレッドボードで 1936のVDDが21番で 現在 「HELLO PIC WORLD WAK TECH」と表示中です。, ご学業のかたわら、こんなページを作って頂いて 本当に頭が下がる思いです。