正規オンライン販売店:

Buy from USA Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES ここでご購入を!

このレッスンでは、PicoからI2C LCDスクリーンに温度情報を送信する方法を紹介します。

I2Cは、コンピューター(マスター)と外部デバイス(スレーブ)の間でデータをやりとりできる非常にポピュラーなプロトコルです。典型的なI2Cスレーブデバイスには、データピン(SDA)とクロックピン(SCL)が必要で、これらはRaspberry Pi PicoのSDAとSCLピンに接続する必要があります。1つのPico SDAとSCLピンペア(BUS)は、実際に複数のスレーブデバイスに接続できます。各スレーブデバイスには、Picoがプログラム内でそれを見つけるためのユニークなアドレスIDがあります。

このプロジェクトでは、I2C LCDディスプレイをスレーブデバイスとして使用します。Picoボードの内部温度センサーを使用して温度を取得し、I2C LCDディスプレイにデータを表示します。

・Raspberry Pi PicoボードとmicroUSBケーブル
・Thonny Python IDEを実行するコンピューター
・ブレッドボード
・I2C 1602 LCDディスプレイ

上記の回路図では、以下がわかります:
・LCD VCCピンはPico Vbusピン(5V)に接続されています。
・LCD GNDピンはPico GNDに接続されています。
・LCD SDAピンはPico SDAピン(GP0)に接続されています。
・LCD SCLピンはPico SCLピン(GP1)に接続されています。

ライブラリlcd_apiとpico_i2c_lcd

このレッスンでは、LCDにアクセスするための2つのPythonライブラリ、lcd_apiとpico_i2c_lcdを使用します。

https://osoyoo.com/driver/pico/pico_i2c_lcd.zipからライブラリのzipファイルをダウンロードしてください。

ファイルを解凍すると、lcd_api.pyとpico_i2c_lcd.pyの2つのファイルが表示されます。それぞれのファイルをThonnyで開き、Picoのルートディレクトリに保存してください。

レッスン4のPythonコードはhttps://osoyoo.com/driver/pico/lesson4/pico-lesson4.pyからダウンロードできます。

後で、Thonnyを使用してpico-lesson4.pyを開き、Picoにロードできます。

以下がコメント付きの完全なコードです:

from machine import I2C,Pin,ADC #import libraries to handle Pins, I2C and ADC
from time import sleep 
from pico_i2c_lcd import I2cLcd #import library to handle I2C LCD
sensor_temp = ADC(4)            #Internal Temperature sensor is connected to ADC 4
conversion_factor = 3.3/65535
def get_temperature():          #get temperature value from ADC 4 internal sensor
    reading = sensor_temp.read_u16() * conversion_factor
    temperature = 27 - (reading - 0.706)/0.001721
    return temperature

i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000) #initialize I2C port
I2C_ADDR = i2c.scan()[0].          #get I2C address
lcd = I2cLcd(i2c, I2C_ADDR, 2, 16) #initialize I2C display as 2x16
degree = bytearray([0x1c,0x14,0x1c,0x00,0x00,0x00,0x00,0x00]) #define a customized LCD icon for º (degree sign)
lcd.custom_char(0, degree)         #degree sign 'º' will be used as chr(0) in program
while True:       
    lcd.putstr("Temperature:\n"+str(get_temperature())+" C"+chr(0)) #display temperature to LCD
    sleep(4)
    lcd.clear()

Step 1: PCのUSBポートの1つにPicoボードを接続します。
Step 2: Thonnyソフトウェアをインストールしていない場合、またはThonny IDEの使用方法がわからない場合は、レッスン1を読んでください。

Step 3: Thonny Python IDEを開き、「実行」をクリックしてインタプリタとしてRaspberry Pi PicoのMicroPythonを選択します。

また、Picoボードに接続されたCOMポートを選択してください。

その後、設定を保存するためにOKをクリックします。

Step 4: pico_i2c_lcd.zipファイルを解凍します。2つのファイル、lcd_api.pyとpico_i2c_lcd.pyが表示されます。

次のように、

Thonnyを使用してそれぞれのファイルを開き、Picoのルートディレクトリに保存します。

その後、OKをクリックします。

Step 5: lesson4.pyを開き、小さな►ボタンをクリックしてPythonコードを保存し、コンピューター上で実行します。

これで、LCDに次のように温度が表示されます:

Temperature: 25.01234 °C

操作が完了したら、Ctrl+Cを押してコマンドを終了します。

SKU:2021005900のパーツについてもっと学びましょう。

 

No. 画像 商品名 Link
1 Raspberry Piピコボード https://osoyoo.store/products/raspberry-pi-pico-flexible-microcontroller-board-based-on-the-raspberry-pi-rp2040-dual-core-arm-cortex-m0-processor-1-pc?variant=39875307864175
2 サーボモーター https://osoyoo.store/products/micro-servo-sg90-blue-for-arduino-v2-0-robot-carmodel-lacc200610?variant=31648847560815
3 赤外線センサーモジュール https://osoyoo.store/products/hc-sr501-pir-motion-sensor-for-arduino?variant=31957812838511
4 RFID モジュールとカード https://osoyoo.store/products/osoyoo-rfid-module?variant=31970646130799
5 押しボタンと帽子 https://osoyoo.store/products/push-button-and-hats-5pcs?variant=39879253131375
6 LED(白×6、赤×6、黄×6、緑×6) https://osoyoo.store/products/led-packs-for-arduino?variant=31957816442991
7 サーボモーター https://osoyoo.store/products/sg90-micro-servo-for-arduino-raspberry-pi-robot?variant=31957821096047
8 ピエゾブザーモジュール https://osoyoo.store/products/piezo-buzzer-module-1pcs?variant=39879251656815
9 I2C LCDディスプレイ(16×2) https://osoyoo.store/products/i2c-lcd1602-display?variant=39875437101167
10 プラスドライバー https://osoyoo.store/products/phillips-screwdriver?variant=31930635780207https://osoyoo.store/products/single-channel-relay-module-for-arduino-raspberry-pi?variant=31955954401391
11 ブレッドボード https://osoyoo.store/products/solderless-prototype-breadboard-1pcs?variant=39879255457903
12 ポテンショメータ (10KΩ可変抵抗器) https://osoyoo.store/products/potentionmeter-10k-adjustable-resistor-3pcs?variant=39879281016943
13 40Pin M から M へのジャンパー線 https://osoyoo.store/products/40pin-m-to-m-jumper-wires?variant=39879256539247
14 20Pin M – F ジャンパー線 15cm https://osoyoo.store/products/20pin-15cm-female-to-female-cable?variant=31930663305327