スキップしてメイン コンテンツに移動

投稿

6月, 2025の投稿を表示しています

SSD1306 OLED:I²C接続で表示

 Raspberry Pi Pico W に 0.96 インチ I²C 接続 OLED(128 × 64 ドット)をつないで、表示テストをしてみましょう。 この OLED は SSD1306 というコントローラ IC で動いており、I²C アドレスは 0x3C です。 自分でレジスタを叩くこともできますが、今回は初心者でも扱いやすい SSD1306 用ライブラリ を使って手早く動かしてみます。 Thonny IDE を起動 Pico を USB でつないだら、Thonny のメニューから [ツール] → [パッケージを管理...] を選びます。 ライブラリをインストール 検索ボックスに ssd1306 と入力し、結果一覧から micropython-ssd1306 を選択して Install 。 自動的に Pico 内の lib フォルダ に ssd1306.py がコピーされます。 これで準備完了。あとはスクリプトでライブラリをインポートし、表示テストを実行するだけです。 配線図 ソースコード # Raspberry Pi Pico W + 0.96 " SSD1306 OLED (128×64, I²C) # - SDA = GP16, SCL = GP17  … I2C(0) を使用 # # 依存ライブラリ: #   ・このファイルと同じ階層、または /lib フォルダに #     MicroPython 公式の ssd1306.py(掲載コード)を配置 from machine import I2C, Pin from utime import sleep import ssd1306            # ssd1306.py をインポート # ──────────────────────────────── # 設定値(変更したい場合だけ書き換えてください) SDA_PIN   = 16            # SDA line (GP16) SCL_PIN   = 17     ...

I2C接続のLCD「AM1602」に文字を表示

今回は、 Raspberry Pi Pico W を使って、**「AM1602」**という小型のI2C接続LCDディスプレイに文字を表示する方法をご紹介します。 AM1602は、「16文字 × 2行」のテキストを表示できる液晶ディスプレイです。I2C通信に対応しているモデルを使えば、配線が少なくて済み、初心者でも扱いやすいのが特長です。 このガイドでは、 MicroPython というシンプルでわかりやすいプログラミング言語を使って、「Hello, World!」などのメッセージをLCDに表示します。MicroPythonでI2C通信の仕組みを学ぶことが目的なので、あえてライブラリは使わず、自分でプログラムを組んでいきます(※専用ライブラリの有無は未確認です)。 MicroPythonでのI2C設定について MicroPythonでは、I2Cは次のようにして初期化します: from machine import I2C, Pin i2c = I2C(id, freq=400_000, scl=Pin(...), sda=Pin(...)) id を指定するだけでも使えますが、その場合は以下のような デフォルト設定 になります: id = 0 → SCL = GP9、SDA = GP8(周波数 400kHz) id = 1 → SCL = GP7、SDA = GP6(周波数 400kHz) また、Raspberry Pi Pico Wでは、以下の12通りのピンの組み合わせでI2C通信が可能です: id SDAピン SCLピン 0 GPIO0 GPIO1 1 GPIO2 GPIO3 0 GPIO4 GPIO5 1 GPIO6 GPIO7 ※デフォルト 0 GPIO8 GPIO9 ※デフォルト 1 GPIO10 GPIO11 0 GPIO12 GPIO13 1 GPIO14 GPIO15 0 GPIO16 GPIO17 1 GPIO18 GPIO19 0 GPIO20 GPIO21 1 GPIO22 GPIO23 この中から、自分の回路に合わせて都合のよいピンを選んで使えます。 配線図 ソースコード # R...

I2C接続1602キャラクタLCD(HD44780+PCF8574A)の操作

 前回は、1602 LCD をビットパラレルモード(4ビットデータ通信)で直接制御しました。これは LCD の各制御線(RS、EN、D4〜D7など)を Raspberry Pi Pico W の GPIO に1本ずつ接続して動かす方法で、仕組みを理解するにはとても勉強になります。 しかし、この方法では接続に使うピンが多くなり、GPIOの数が限られている小型マイコンでは少し不便に感じることもあります。 そこで今回は、**PCF8574A という I/O エクスパンダ(拡張チップ)**を使って、 I²C(アイ・スクエアド・シー)通信 で LCD を制御する方法を紹介します。この方法を使うと、LCD の操作に必要な信号を **わずか2本の通信線(SDA と SCL)**にまとめられるため、配線がとてもスッキリし、他のセンサーやデバイスとの接続も簡単になります。 初心者の方でも、I²C の基本を学びながら、LCD 表示の実用的な使い方にステップアップできる内容になっています。マイコンの入出力ピンを節約しつつ、LCD にメッセージを表示したい方にぴったりの方法です。 PCF8574A と I²C って何? PCF8574A PCF8574A は NXP 製の “I/O エクスパンダ” と呼ばれる IC で、 8 本の GPIO を I²C でまとめて増設 できる 各ピンは入力にも出力にも使える “ 擬似オープンドレイン ” 方式 アドレスピン(A2–A0)の組み合わせで 0x38 – 0x3F の 8 通りの I²C アドレスを選択可能 今回の 1602 LCD では、PCF8574A の 8 本を下図のように割り当てるのが定番です。 PCF8574A ピン LCD 信号 役割 P0 RS データ/コマンド切替 P1 RW 読み書き切替(通常は GND = 書き込み専用) P2 EN イネーブルパルス P3 BL バックライト ON/OFF P4–P7 D4–D7 4 ビットデータバス I²C(Inter‑Integrated Circuit) I²C は 1980 年代に Philips(現 NXP)が開発した 2 線式のシリアル通信 規格で、 SDA(データ線) と SCL(クロック線) だけで通信 7 ビッ...

16x2キャラクタ LCDディスプレイモジュール(HD44780コンパチブル)の4ビット操作

 Raspberry Pi Pico Wは小型でパワフルなだけでなく、LEDやセンサー、モーターなど多彩なデバイスを直接ドライブできるのが魅力です。中でも HD44780互換の16×2キャラクタLCD は、値段が手頃で入手しやすく、テキストをすばやく表示できる“定番デバイス”として人気があります。今回は、GPIO本数を節約できる 4ビットパラレルモード を使い、MicroPythonだけで Pico W に接続して文字を表示させる方法を紹介します。電源と数本の信号線を結ぶだけで、温度センサーの読み取り値やデバッグメッセージを手元の液晶にサッと映し出せるようになります。 HD44780コンパチブルとは? HD44780コンパチブル とは、もともと 日立製のHD44780 というキャラクタ液晶コントローラIC(LCDコントローラ)の仕様や命令セットと 互換性のあるディスプレイモジュール を指します。 このコントローラは 最大80文字分の表示メモリ(DDRAM) カーソル制御やスクロール機能 英数字・記号などのフォント(ROM内蔵) 4ビット/8ビットのパラレル通信インターフェース といった機能を搭載しており、**LCD表示の「業界標準」**として非常に広く使われています。 「HD44780コンパチブル」という表現は、 ➡ 他メーカー製であっても HD44780と同じ命令セットと制御方法で動作する 液晶モジュールであることを意味します。 たとえば、AIP31066やST7066UなどはHD44780互換品として知られており、ほぼ同じコードで制御できます。 ✅ 要点まとめ HD44780 = キャラクタLCD用の定番コントローラIC コンパチブル = 命令セットや動作が互換の他社製品 メリット = ライブラリやサンプルが豊富で扱いやすい このため、Raspberry Pi PicoやArduinoなどで使うキャラクタLCDの多くは「HD44780コンパチブル」です。 回路 ◆部品 ・ Raspberry Pi Pico W ・ Raspberry Pi Pico w用入出力拡張ボード (自作) ・ 電子工作キット ・ HD44780 1602 16x2 Serial LCD ◆参考書...

OSL641501-ARA 赤色ドットマトリックスのダイナミック点灯

 前回 は、Raspberry Pi Pico Wを使って「OSL641501-ARA」という8×8の赤色ドットマトリクスLEDの基本的な仕組みと接続方法を学びました。 今回はその応用として、**ダイナミック点灯(スキャン方式)**によって、アルファベットの A~G を順番に表示させてみましょう。 💡 ダイナミック点灯とは? 8×8のマトリクスLEDには64個のLEDが搭載されていますが、すべてを同時に点灯させると、電流の負荷が大きくなり回路にも悪影響を及ぼします。 そこで活躍するのが「 ダイナミック点灯 」という方法です。 これは、 1行(または1列)ずつ高速に点灯 させていくことで、人間の目にはすべてが同時に光って見えるようにする仕組みです。 実際には、LEDは1行ずつ順番にON/OFFを繰り返しており、目の錯覚(残像効果)を利用しています。 🅰️~🅶 表示のしくみ 今回のプログラムでは、各文字(A~G)を 8×8のビットマップ配列 として定義し、それぞれの配列に応じてアノード(列)とカソード(行)のGPIOを制御します。 各文字は約1秒ごとに切り替わり、ループしながら順に表示されます。 これにより、まるで 小さなLEDディスプレイに文字が浮かび上がるような視覚効果 が得られます。 ⚠️ 注意点 LEDを直接GPIOピンに接続する際は、**必ず電流制限抵抗(470Ω〜1kΩ)**を アノード側またはカソード側のどちらか一方に入れる ようにしてください。 これを怠ると、LEDやRaspberry Pi Pico W本体の破損につながるおそれがあります。 OSL641501‑ARA 8×8 ドットマトリクス ソースコード # Raspberry Pi Pico W 8 × 8 ドットマトリクス表示(MicroPython版) #  アノード: GP2–GP9 カソード: GP10–GP17 #  ※アノード/カソードのどちらか一方に 470  Ω〜 1  kΩ の抵抗を必ず直列に入れてください from machine import Pin import time # ─────────────────────────────────────────────── # GPIO 配列 # ───────────────────...