Raspberry Pi は、電子エンジニアや愛好家向けに設計されたARMアーキテクチャプロセッサベースのボードです。PIは、現在最も信頼されているプロジェクト開発プラットフォームの1つです。より高速なプロセッサ速度と1GBのRAMにより、PIは画像処理やIoTなどの多くの注目を集めるプロジェクトに使用できます。
注目を集めるプロジェクトを行うには、PIの基本的な機能を理解する必要があります。 これらのチュートリアルでは、RaspberryPiのすべての 基本機能について説明します。各チュートリアルでは、PIの機能の1つについて説明します。このRaspberryPiチュートリアルシリーズの終わりまでに、あなたは自分で注目を集めるプロジェクトを行うことができるようになります。以下のチュートリアルを実行してください。
- RaspberryPi入門
- RaspberryPiの構成
- LED点滅
- ボタンインターフェース
- PWM生成
- DCモーターの制御
- ステッピングモーター制御
- シフトレジスタとのインターフェース
- Raspberry PiADCチュートリアル
- サーボモーター制御
- 静電容量式タッチパッド
このチュートリアルでは、RaspberryPiを使用して16x2LCDディスプレイを制御します。 LCDをPIのGPIO(汎用入出力)ピンに接続して、文字を表示します。 PYTHONでプログラムを作成し、GPIOを介して適切なコマンドをLCDに送信し、必要な文字を画面に表示します。この画面は、センサー値、割り込みステータスの表示、および時間の表示に役立ちます。
市場にはさまざまな種類のLCDがあります。グラフィックLCDは16x2LCDよりも複雑です。したがって、ここでは16x2 LCDディスプレイを使用します。必要に応じて、16x1LCDを使用することもできます。16×2のLCDは、合計で32文字、1つので16有する番目のライン及び2における他の16番目の行を。JHD162は16x2LCDモジュール文字LCDです。すでに16x2LCDを8051、AVR、Arduinoなどとインターフェースしています。このリンクをたどると、16x2LCD関連のすべてのプロジェクトを見つけることができます。
先に進む前に、PIGPIOについて少し説明します。
Raspberry Pi2には40個のGPIO出力ピンがあり ます。ただし、40個のうち26個のGPIOピン(GPIO2〜GPIO27)のみをプログラムできます。これらのピンのいくつかは、いくつかの特別な機能を実行します。特別なGPIOは別として、17個のGPIOが残っています。
ボードには+ 5V(ピン2または4)および+ 3.3V(ピン1または17)の電源出力ピンがあり、これらは他のモジュールやセンサーを接続するためのものです。+ 5Vレールを介して16 * 2LCDに電力を供給します。+ 3.3vの制御信号をLCDに送信できますが、LCDを動作させるには、+ 5Vで電力を供給する必要があります。LCDは+ 3.3Vでは動作しません。
GPIOピンとその電流出力の詳細については、以下を参照してください。RaspberryPiによるLEDの点滅
必要なコンポーネント:
ここでは 、Raspbian JessieOSでRaspberryPi2モデルB を使用しています。ハードウェアとソフトウェアの基本的な要件はすべて前に説明しましたが、必要なものを除いて、RaspberryPiの概要で調べることができます。
- 接続ピン
- 16 * 2LCDモジュール
- 1KΩ抵抗(2個)
- 10Kポット
- 1000µFコンデンサ
- ブレッドボード
回路と動作の説明:
回路図に示すように、PIの10個のGPIOピンを16 * 2 LCDの制御ピンとデータ転送ピンに接続することにより、ラズベリーパイをLCDディスプレイに接続しました。GPIOピン21、20、16、12、25、24、23、および18をBYTEとして使用し、データをLCDに送信するための「PORT」関数を作成しました。ここで、GPIO 21はLSB(最下位ビット)であり、GPIO18はMSB(最上位ビット)です。
16x2 LCDモジュールには16個のピンがあり、電源ピン、コントラストピン、制御ピン、データピン、バックライトピンの5つのカテゴリに分類できます。それらについての簡単な説明は次のとおりです。
カテゴリー |
ピン番号 |
ピン名 |
関数 |
電源ピン |
1 |
VSS |
アースに接続されたアースピン |
2 |
VDDまたはVcc |
電圧ピン+ 5V |
|
コントラストピン |
3 |
V0またはVEE |
可変抵抗器を介してVccに接続されたコントラスト設定。 |
コントロールピン |
4 |
RS |
レジスタ選択ピン、RS = 0コマンドモード、 RS = 1データモード |
5 |
RW |
読み取り/書き込みピン、RW = 0書き込みモード、 RW = 1読み取りモード |
|
6 |
E |
有効にする、LCDを有効にするために高パルスから低パルスが必要 |
|
データピン |
7-14 |
D0-D7 |
データピン、LCDまたはコマンド命令に表示されるデータを格納します |
バックライトピン |
15 |
LED +またはA |
バックライト+ 5Vに電力を供給する |
16 |
LEDまたはK |
バックライトグラウンド |
LCDがピンおよび16進コマンドで動作することを理解するために、この記事を読むことを強くお勧めします。
LCDにデータを送信するプロセスについて簡単に説明します。
1. Eがハイに設定され(モジュールが有効になり)、RSがローに設定されます(コマンドを実行しているLCDに通知します)
2.画面をクリアするコマンドとしてデータポートに値0x01を与えます。
3. Eがハイに設定され(モジュールを有効化)、RSがハイに設定されます(データを提供しているLCDに通知します)
4.文字のASCIIコードを証明するものを表示する必要があります。
5. Eが低く設定されている(データの送信が完了したことをLCDに通知)
6.このEピンがローになると、LCDは受信データを処理し、対応する結果を表示します。したがって、このピンはデータを送信する前にHighに設定され、データを送信した後にグランドにプルダウンされます。
さっきも言ったように、キャラクターを次々と送ります。文字は、ASCIIコードでLCDに与えられる(情報交換用米国標準コード)。ASCIIコードの表を以下に示します。たとえば、文字「@」を表示するには、16進コード「40」を送信する必要があります。LCDに値0x73を指定すると、「s」が表示されます。このように、適切なコードをLCDに送信して、文字列「CIRCUITDIGEST」を表示します。
プログラミングの説明:
回路図に従ってすべてが接続されたら、PIをオンにしてPYHTONでプログラムを作成できます。
PYHTONプログラムで使用するいくつかのコマンドについて説明します 。
ライブラリからGPIOファイルをインポートします。以下の関数を使用すると、PIのGPIOピンをプログラムできます。また、「GPIO」の名前を「IO」に変更しているため、プログラムでGPIOピンを参照する場合は常に、「IO」という単語を使用します。
RPi.GPIOをIOとしてインポートします
時々、私たちが使おうとしているGPIOピンが他の機能をしているかもしれません。その場合、プログラムの実行中に警告が表示されます。以下のコマンドは、PIに警告を無視して、プログラムを続行するように指示します。
IO.setwarnings(False)
PIのGPIOピンは、ボード上のピン番号または機能番号のいずれかで参照できます。ボード上の「PIN29」のように「GPIO5」です。したがって、ここでは、ピンを「29」または「5」で表すことにします。
IO.setmode(IO.BCM)
LCDのデータピンとコントロールピンの出力ピンとして10個のGPIOピンを設定しています。
IO.setup(6、IO.OUT)IO.setup(22、IO.OUT)IO.setup(21、IO.OUT)IO.setup(20、IO.OUT)IO.setup(16、IO.OUT) IO.setup(12、IO.OUT)IO.setup(25、IO.OUT)IO.setup(24、IO.OUT)IO.setup(23、IO.OUT)IO.setup(18、IO.OUT)
1: コマンドは永久ループとして使用されますが、このコマンドを使用すると、このループ内のステートメントが継続的に実行されます。
他のすべての機能とコマンドは、「コメント」の助けを借りて、以下の「コード」セクションで説明されています。
プログラムを作成して実行すると、Raspberry Piは文字を1つずつLCDに送信し、LCDは画面に文字を表示します。