展示:プライマルディスプレイ
展示:プライマルディスプレイこの非常にシンプルなヒントは、LCDをRaspberry Piに接続して、温度センサーからの読み取り値など、必要なデータを表示します。
ストーリー
はじめに
LCDは、あらゆるプロジェクトへの非常に便利なアドオンです。この非常にシンプルなヒントは、LCDをRaspberry Piに接続して、必要なデータを表示します。この例では、温度センサーからの読み取り値を表示します。
ハードウェア
安価なHDD44780互換LCD、Raspberry Pi 3、温度および湿度センサーDHT11、マイクロSDカードと電源、1〜2個のポテンショメーター、ブレッドボード、およびいくつかのワイヤーが必要です。このキットには、LCD、ブレッドボード、ワイヤー、ポテンショメーター、センサーが含まれています。 6つのGPIOピンを使用してLCDを接続します。 I2Cを使用して接続する方法はありますが、これは最も直接的な方法であり、重要な利点があります。
- 安価なLCDを使用可能 使用する
- I2Cドライバーは必要ありません
- 唯一のシリアルポートを盗むことはありません パイで。
配線する
LCD画面を接続するいくつかのオプションがあります。コントラストと明るさを処理する1つのポテンショメータを備えたシンプルな4ビット接続と、2つのポテンショメータを使用してコントラストと明るさを高度に制御するもう少し複雑な8ビット接続です。ポテンショメータは、1Kまたは3Kオームの抵抗に置き換えることもできます。
各文字とコマンドは、1バイト(8ビット)のデータとしてLCDに送信されます。したがって、4ビットモードでは、バイトは4ビットの2つのセットに分割され、4つのデータワイヤを介して次々に送信されます。理論的には、8ビットモードは4ビットモードの2倍の速度でデータを転送します。これは、バイト全体が8本のデータワイヤを介して一度に送信されるためです。ただし、LCDドライバはデータの処理に比較的長い時間がかかるため、どのモードを使用していても、8ビットモードと4ビットモードのデータ転送速度に実際の違いはありません。
LCDピンのレイアウト
レジスタ選択ピン (RSピン4)には2つの用途があります。低く引くと、LCDにコマンドを送信できます(画面に移動したり、画面をクリアしたりする位置など)。これは、命令またはコマンドレジスタへの書き込み、または画面へのデータの送信と呼ばれます。
enablepin (Eピン6)は、レジスタにデータを書き込むために切り替えられます。
シンプルなLCD接続
- LCDのピン#1がアースに接続されます(黒いワイヤー)
- LCDのピン#2は+ 5V(赤いワイヤー)になります
- ピン#3(Vo)は、ポテンショメータ(オレンジ色のワイヤ)の中央に接続します
- ピン#4(RS)はコブラー#37(黄色のワイヤー)に接続します
- ピン#5(RW)はアースに接続されます(黒いワイヤー)
- ピン#6(EN)はコブラー#35(オレンジ色のワイヤー)に接続します
- LCDピン#7、#8、#9、および#10をスキップします
- ピン#11(D4)はコブラー#33(白いワイヤー)に接続します
- ピン#12(D5)はコブラー#31(灰色のワイヤー)に接続します
- ピン#13(D6)はCobber#29(紫色のワイヤー)に接続します
- ピン#14(D7)はCobber#23(青いワイヤー)に接続します
- ピン#15(LED +)は+ 5V(赤いワイヤー)になります
- ピン#16(LED-)はアースに接続されます(黒いワイヤー)
シンプルなLCD接続回路図
- LCDのピン#1がアースに接続されます(黒いワイヤー)
- LCDのピン#2は+ 5V(赤いワイヤー)になります
- ピン#3(Vo)は、ポテンショメータ(オレンジ色のワイヤ)の中央に接続します
- ピン#4(RS)はコブラー#37(黄色のワイヤー)に接続します
- ピン#5(RW)はアースに接続されます(黒いワイヤー)
- ピン#6(EN)はコブラー#35(オレンジ色のワイヤー)に接続します
- ピン#7(D0)はコブラー#40(青いワイヤー)に接続します
- ピン#8(D1)はコブラー#38(青いワイヤー)に接続します
- ピン#9(D2)はコブラー#36(青いワイヤー)に接続します
- ピン#10(D3)はコブラー#32(青いワイヤー)に接続します
- ピン#11(D4)はコブラー#33(白いワイヤー)に接続します
- ピン#12(D5)はコブラー#31(灰色のワイヤー)に接続します
- ピン#13(D6)はCobber#29(紫色のワイヤー)に接続します
- ピン#14(D7)はCobber#23(青いワイヤー)に接続します
- ピン#15(LED +)は+ 5V(赤いワイヤー)になります
- ピン#16(LED-)はアースに接続されます(黒いワイヤー)
高度なLCD接続回路図
これで、2つのポテンショメータができました。左のポテンショメータがコントラストを担当し、右のポテンショメータが明るさを担当します。明るさを担当する2番目のポテンショメータがあるため、追加の電圧処理の必要がないため、コントラストポテンショメータから5Vワイヤ(赤いもの)を削除したことに気付くかもしれません。
DHT11センサー接続
DHT11センサーには3ピンまたは4ピンのオプションがありますが、データの読み取りに3ピンしか使用しないため、問題ありません。4ピンセンサーがある場合は、Vcc、信号のみを接続する必要があります。 / DataピンとGroundピンを使用し、4番目のピンを無視します。上記の回路図では、4ピンのセンサー接続を確認できます。
DHT11センサー:3ピンと4ピンのオプション
DHT11センサーには3.3Vから5Vが必要です。まず、DHT11センサーを3.3V Raspberry Piピン1に接続しましょう。この電圧で十分な場合は、読み取り値がおかしい場合や読み取り値がまったくない場合は、5V RaspberryPiピン2に接続してみてください。このヒントでは3.3Vを使用しています。
>これまでのところ、VccピンとGroundピンを接続した後、センサーの信号コネクタをRaspberry Piの物理ピン12(GPIO 18)に配線する必要があります。
必要なライブラリ
正確なコーディングに進む前に、ディスプレイとセンサーに必要なライブラリがあるかどうかを再確認し、不足している場合はインストールする必要があります。
sudo apt-get install build-essential python-dev
RPLCDPythonライブラリ
RPLCDライブラリは、Python Package Index(PIP)からインストールできます。すでにRaspbianにインストールされている可能性がありますが、インストールされていない場合は、次のコマンドを実行してインストールします。
sudo apt-get install python-pip
PIPをインストールしたら、次のように入力してRPLCDライブラリをインストールします。
sudo pip install RPLCD
Adafruit DHT11Pythonライブラリ
Adafruit DHT11Pythonライブラリを使用しています。 Gitを使用してライブラリをダウンロードできるため、Raspberry PiにGitがインストールされていない場合は、次のコマンドを実行します。
sudo apt-get install git
または、次のことを試すことができます:
sudo apt-get install git-core
重要:
sudo apt-get update
sudo apt-get install git-core
次に、コマンドを実行してGitからライブラリをダウンロードします。
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python setup.py install
Pythonスクリプト
まず、SSH経由でPiに接続する必要があります(たとえば、PuTTYを使用)。次に、temperature.pyというスクリプトを使用します。
スクリプトを作成するには、nanoエディターを使用できます。 Piに接続した後、次のコマンドを実行して、temperature.pyというファイルを作成します。
sudo nanotemperature.py
次に、次のコード(8ビットオプション)をそのファイルに貼り付け、Ctrlキーを押しながらXキーを押して終了し、プロンプトが表示されたらYキーを押して保存します。
#!/ usr / bin / python
GPIOとしてRPi.GPIOをインポート
インポート時間
RPLCDからAdafruit_DHTをインポート
CharLCDをインポート
#RPi.GPIOビルドと呼びます-関数GPIO.cleanup()で、使用したすべてのポートをクリーンアップします
GPIO.cleanup()
#ここで、LCDディスプレイピンをセットアップします(8ビットモード)
lcd =CharLCD (numbering_mode =GPIO.BOARD、cols =16、rows =2、pin_rs =37、pin_e =35、pins_data =[40、38、36、32、33、31、29、23])
#senosrを取得読み取り値とループ内でのレンダリング
true:
#センサーの読み取り値を取得
#重要:11はセンサータイプ(DHT11)、18はGPIO番号(または物理ピン12)
湿度、温度=Adafruit_DHT.read_retry(11、18)
print( 'Temp:{0:0.1f} C湿度:{1:0.1f}%'。format(温度、湿度))
#LCDディスプレイの初期カーソル位置をクリアして設定します
lcd.clear()
lcd.cursor_pos =(0、0)
#温度測定値をレンダリングします
lcd.write_string( "温度:%d C”%温度)
#カーソルを2行目に移動
lcd.cursor_pos =(1、0)
#湿度の読み取り値をレンダリングします
lcd.write_string( "湿度:%d %%"%湿度)
#実行を5秒間一時停止します
time.sleep(5)
上記の例では、BCMまたはGPIO番号ではなく、LCDディスプレイ用のRaspberryPiの物理ピン番号を使用した8ビット接続オプションを使用しています。 LCDは上の図のように接続されていると思いますが、必要に応じていつでもピンを変更できます。簡単な4ビット接続コードはコードセクションに添付されています。
詳細を読む:展示:プライマルディスプレイ
製造プロセス