ロジックレベル変換モジュールの使い方|Arduino・ESP32・ラズパイ

ロジックレベル変換モジュールの使い方|Arduino・ESP32・ラズパイ

この記事ではロジックレベル変換モジュールの使い方を解説いたします。ArduinoやESP32、Raspberry PiなどでI2Cデバイスを取り扱うときに、信号レベルがミスマッチな場合にロジックレベル変換モジュールを使って5V信号を3.3Vに降圧したり、3.3V信号を5V信号へ昇圧できます。

つかうもの

この記事でつかうものをご紹介いたします。

ロジックレベル変換モジュール

Amazonで購入したこちらのロジックレベル変換モジュールを使用します。

ESP32

この記事ではESP32を例に解説いたします。

MOSFET IRF520

そもそもロジックレベル変換モジュールを使ってみるきっかけとなったのは、MOSFETのIRF520をESP32のGPIOで制御するためでした。IRF520はゲートのスレッショルド電圧が4Vと高めで、ESP32のGPIO出力では電圧が足りずうまく動作しなかったのです。

▼ 以前Raspberry PiでもIRF520を扱いましたが、Raspberry PiのGPIOは3.3V出力のはずですがなぜか直結で制御できてました。

MOSFETでなくても、お困りのI2Cデバイスを使ってもらっても構いません。

その他

また、ブレッドボードやジャンプワイヤもあると便利です。

ロジックレベル変換モジュールの使い方

ロジックレベル変換モジュールの各ピンの役割

こちらは私が購入したロジックレベル変換モジュールの基板の拡大写真です。

ロジックレベル変換モジュール
ロジックレベル変換モジュール

各ピンの役割は次のとおりになってます。

ピン名称 役割
HV1 レベルHチャネル1
HV2 レベルHチャネル2
HV 5V
GND 0V, GND
HV3 レベルHチャネル3
HV4 レベルHチャネル4
LV1 レベルLチャネル1
LV2 レベルLチャネル2
LV 3V3
GND 0V, GND
LV3 レベルLチャネル3
LV4 レベルLチャネル4

4チャネル分の信号を変換できます。素子にはMOSFETが使われているようです。LVにLOW信号の電源3.3Vを繋ぎ、HVにHIGH信号の電源5Vを繋いでおきます。GNDは共通で繋ぎます。

ESP32とロジックレベル変換モジュールの配線図

実際にESP32とロジックレベル変換モジュールを配線させた図です。ここではMOSFETを使ってますが、4ch分ありますのでI2Cでの配線も理解できますね?

ESP32とロジックレベル変換モジュールの配線図
ESP32とロジックレベル変換モジュールの配線図

オシロスコープで波形の確認

実際に出力信号をオシロスコープで確認してみました。LV1とHV1を比較したところ、確かに3.3Vが5V信号へ変換されてます。

オシロスコープで3.3Vと5Vの信号波形の確認
オシロスコープで3.3Vと5Vの信号波形の確認

ESP32のI2Cのクロック周波数はデフォルトで100kHzが使われるようですので、100kHzのPWM信号で確認してみました。5V変換後の立ち上がりは丸みを帯びてますが、これでもI2C通信は可能なのがデジタルの良いところです。

オシロスコープで100kHzのPWM信号の確認
オシロスコープで100kHzのPWM信号の確認

PWM(100kHz)のプログラミング例

先ほどオシロスコープで確認するために作ったPWM信号のソースコードは次のとおりです。

/**
 * @date 2022-12-20
 * @author Toshihiko Arai
 * @copyright https://101010.fun
 */
#include <Arduino.h>

// PWMが使える端子は限られている
#define PWM_PIN 33
#define PWM_FREQ 100000 // 100kHz -> default I2C clock freq
#define PWM_CHANNEL 0
#define PWM_BIT 8

void setup() {
    pinMode(PWM_PIN, OUTPUT);
    ledcSetup(PWM_CHANNEL, PWM_FREQ, PWM_BIT);
    ledcAttachPin(PWM_PIN, PWM_CHANNEL);
}
void loop() {
    ledcWrite(PWM_CHANNEL, 128); // duty 50%
    delay(15);
}

この記事が参考になりましたら
シェアをよろしくお願いします!

人気のArduino互換機
Arduinoで人気の周辺パーツ
あると便利な道具
Arduinoのオススメ参考書

▼ Arduino初心者向きの内容です。ほかのArduino書籍と比べて図や説明がとてもていねいで読みやすいです。Arduinoで一通りのセンサーが扱えるようになります。

▼ 外国人が書いた本を翻訳したものです。この手の書籍は、目からうろこな発見をすることが多いです。

▼ Arduinoの入門書を既に読んでいる方で、次のステップを目指したい人向きの本です。C言語のプログラミングの内容が中心です。ESP32だけでなく、ふつうのArduinoにも役立つ内容でした。

関連記事