#include <M5Unified.h>
#include <esp32-hal-ledc.h>
#define LED_PIN 19 // 赤色LED G19
#define PWM_CH 1 // PWMチャンネル(0~15)
#define PWM_FREQ 90 // PWM周波数 (Hz)
#define PWM_RES 8 // 分解能 (bit) → 0~255 のデューティ比
void setup() {
M5.begin();
M5.Display.setRotation(3);
pinMode(LED_PIN, OUTPUT); // PINのモード設定
// PWM のセットアップ
ledcAttachChannel(LED_PIN, PWM_FREQ, PWM_RES, PWM_CH);
// PWM_FREQ=周波数Frequency(Hz) 【 90Hz より、小さくするとどうなる?】
// PWM_RES=分解能Resolution(bit)
M5.Display.setRotation(3); //横向き
M5.Display.setFont(&fonts::lgfxJapanGothic_16);
M5.Display.println("pwm01 LED点滅サンプル (PWM=Pulse Width Modulation パルス幅変調)");
M5.Display.setTextScroll(true);
}
void loop() {
for (int duty = 0; duty <= 255; duty += 5) {
ledcWrite(LED_PIN, duty);
delay(20);
}
delay(500);
for (int duty = 255; duty >= 0; duty -= 5) {
ledcWrite(LED_PIN, duty);
delay(20);
}
delay(500);
// 別の方法
// ledcFade(LED_PIN, 255, 10, 1000);
// ledcWrite(LED_PIN, 10); // これがないと切り替わらない
// ledcFade(LED_PIN, 10, 255, 1000);
// ledcWrite(LED_PIN, 255); // これがないと切り替わらない
// delay(500); // 一瞬消灯状態を維持
}