EPC32
購入
WayinTop ESP32開発ボード Wi-Fi + BLEモジュール ESP-WROOM-32実装済み デュアルコア 技適取得済み 2個入り 専用USBケーブル付き
購入日 2022/04/24 アマゾン 2個 1980円
ピン配列

開発環境
IDE
Arduinoの開発環境であるArduino IDEをダウンロード
ダウンロードページ
https://www.arduino.cc/en/software
最新版はSPFFSへファイルをアップロードするプログラムが無いのでLegacy IDE (1.8.X)を使用する
Arduino IDE 1.8.19をWindows ZIP file形式でダウンロード
展開してフォルダ内のarduino-1.8.19フォルダをC:のルートにarduino開発フォルダを作りフォルダ内に移動する

arduino-1.8.19フォルダ内のarduino.exeをダブルクリックしてIDEを起動する
ボードマネージャー
使用するボードが使用できるように対応するボードマネージャを追加する
ESP32用のボードマネージャーは
Installation instructions using Arduino IDE Boards Managerboards_manager.md
に書かれている。
Arduinoを起動し、ファイルメニューより環境設定を開きます。
「追加のボードマネージャー のURL」に「https://dl.espressif.com/dl/package_esp32_index.json」を入力かるる。
ツールメニューのボードメニューからボード マネージャーを開き、esp32プラットフォームをインストールする。
インストール後は、[ツール] > [ボード] メニューから ESP32 ボードを選択すること。
ファイルアップローダ
SPIFFSにファイルをアップロードするためのプラグイン
Arduino ESP32 filesystem uploader
ダウンロードページ
https://github.com/me-no-dev/arduino-esp32fs-plugin
Installationのreleases pageよりESP32FS-1.1.zipをダウンロード
展開したフォルダ内のESP32FSフォルダを開発環境のtoolsフォルダ内に移動する

arduino.exeを起動しツールメニューに ESP32 Sketch Data Upload が表示されればOK

ライブラリ
ESPAsyncWebServer
非同期WEBサーバー
展開したフォルダ内のESPAsyncWebServer-masterフォルダをESPAsyncWebServerに変更して開発環境のlibrariesフォルダ内に移動する
AsyncTCP
ESPAsyncWebServerが依存しているライブラリ
https://github.com/me-no-dev/AsyncTCP
展開したフォルダ内のAsyncTCP-masterフォルダをAsyncTCPに変更して開発環境のlibrariesフォルダ内に移動する
COMポートドライバ
ESP32とWindowsパソコンをUSBでつなぐためのドライバ
ダウンロードページ
CP210x USB - UART ブリッジ VCP ドライバ
CP210x_Universal_Windows_Driver.zip を解凍して、CP210xVCPInstaller_x64.exe をダブルクリックすれば新しいドライバがインストールされる。
ESP32 PWM出力
Pulse Width Modulation
PMWに使用できるピン
| GPIO | アナログピン番号 |
|---|---|
| 32 | A4 |
| 33 | A5 |
| 26 | A19 |
| 25 | A18 |
| 27 | A17 |
| 14 | A16 |
| 12 | A15 |
| 13 | A14 |
| 15 | A13 |
| 4 | A10 |
| 2 | A12 |
| 0 | A11 |
セットアップ
uint32_t ledcSetup(uint8_t chan, uint32_t freq, uint8_t bit_num);
| chan | 利用するチャネル。0~15。 |
| freq | 基本となるPWMの周波数。 |
| bit_num | デューティ比を表すビット数。 8:0~255諧調 |
ピンとチャネルを結びつける。
void ledcAttachPin(uint8_t pin, uint8_t chan);
| pin | 利用するピン。 |
| chan | 利用するチャネル。 |
指定したデューティ比でPWM出力
void ledcWrite(uint8_t chan, uint32_t duty);
| chan | 利用するチャネル。0~15。 |
| duty | デューティ比。0~(2bit_num)まで。bit_numは、ledcSetup()で設定したbit_num。 |
プログラム例
//使用するピンのアナログピン番号を指定
const int ledPin = A19;
// PWM出力を行う端子を出力端子として設定
pinMode(ledPin , OUTPUT ) ;
//PMWの設定。最初の引数がchannel,次が周波数,最後が解像度(ここでは8bit = 256段階)
ledcSetup(0, 12800, 8);
//ピンをチャンネルに接続
ledcAttachPin(ledPin, 0)
ledcWrite(0, 128);