Files

5.9 KiB
Raw Permalink Blame History

I/O (GPIO/ADC/DAC/PWM)

詳しくは Arduino の マニュアルを見てください

便宜上、M5Stackに関連の深いものに絞って説明します

M5STACK割り当て:

pin番号 名称 割り当て先
0 G0 ダウンローダ
1 T1 UART
2 G2 側面端子(M5FIREを除く),M5-BUS
3 R1 UART
4 G4 TF
5 G5 側面端子(M5FIREを除く),M5-BUS
6 G6 SDIO
7 G7 SDIO
8 G8 SDIO
9 G9 SDIO
10 G10 SDIO
11 G11 SDIO
12 G12 LCD
13 G13 LCD
14 G14 LCD
15 G15 LCD
16 R2 UART
17 T2 UART
18 G18 TF,上面端子(SCK),M5-BUS
19 G19 TF,上面端子(MISO),M5-BUS
21 G21 GROVE-A(SDA)
22 G22 GROVE-A(SCL)
23 G23 TF,上面端子(MOSI)
25 G25 スピーカ,側面端子(M5FIREを除く),M5-BUS
26 G26 側面端子(M5FIREを除く),M5-BUS
27 G27 LCD
32 G32 LCDバックライト
33 G33 LCD
34 G34 なし
35 G35 側面端子(M5FIREを除く)
36 G36 側面端子(M5FIREを除く)
37 G37 Cボタン
38 G38 Bボタン
39 G39 Aボタン

digitalRead()

構文:

int digitalRead(uint8_t pin);

説明:

端子の状態を読み取ります。

引数

引数 説明
pin uint8 ピン番号

戻り値:

ピンの電圧入力状態(0/1)

注意

1)ピンモードがINPUTになっていない場合は正しい結果を返しません。

2)バスに他の回路がある場合、その影響を受けます。

使用例;

uint32_t pin21_data;
pin21_data = digitalRead(21);

digitalWrite()

構文:

void digitalWrite(uint8_t pin, uint8_t val);

説明:

端子の状態を書き込みます。

引数

引数 説明
pin uint8 ピン番号
val uint8 出力状態(0/1)

戻り値:

なし

注意

1)ピンモードがOUTPUTになっていない場合は正しい結果を返しません。

2)バスに他の回路がある場合、物理的に破損する可能性があるため、注意してください。

使用例;

digitalWrite(2,1);

pinMode()

構文:

void pinMode(uint8_t pin, uint8_t mode);

説明:

端子の入出力モードを設定します

引数

引数 説明
pin uint8 ピン番号
mode uint8 INPUT,OUTPUT,INPUT_PULLUPのいずれか

戻り値:

なし

注意

バスに他の回路がある場合、物理的に破損する可能性があるため、注意してください。

例えば、スピーカ(G25)端子をINPUTモードにすると、スピーカへ流れる電流により本体が発熱します。

故障の恐れがあるため、指示内容が正しいことを確認してください。

使用例;

pinMode(2,INPUT);

analogRead()

構文: uint16_t analogRead(uint8_t pin);

説明:

アナログ端子の値を読み取ります。

引数

引数 説明
pin uint8 ピン番号

戻り値:

読み取り結果。返答の最大値はanalogSetWidth()で決定します。

注意

M5StackではG35,G36が使用できます。

使用例;

uint16_t ret;
ret=analogRead(35);

dacWrite()

構文:

void dacWrite(uint8_t pin, uint8_t value);

説明:

アナログ端子に出力指示をします。

引数

引数 説明
pin uint8 ピン番号
value uint8 出力指示電圧

戻り値:

なし。

注意

M5StackではG25,G26が使用できます。

使用例;

dacWrite(25,0x40);

ledcSetup()

構文:

double ledcSetup(uint8_t channel, double freq, uint8_t resolution_bits);

説明:

デューティ出力設定をします

引数

引数 説明
channel uint8 チャネル(015)
freq double 周波数(Hz)
resolution_bits uint8_t デューティ指示のフルスケールビット数

戻り値:

実際の出力周波数。

注意

チャンネルとGPIOポート番号は同一ではありません。

設定を記憶するための番号だと認識するとよいでしょう。

ledcAttachPin()

構文:

void ledcAttachPin(uint8_t pin, uint8_t chan);

説明:

出力するポートを指定します。

引数

引数 説明
pin uint8_t ピン番号)
chan uint8_t チャネル(015)

戻り値:

なし

ledcWrite()

構文:

void ledcWrite(uint8_t chan, uint32_t duty);

説明:

指定したデューティ値で出力します。

引数

引数 説明
chan uint8_t チャネル(015)
duty uint32_t デューティ

戻り値:

なし

注意

デューティの単位は、初期化時に設定したビットスケールに依存します。

8ビットで指示していた場合は 0xFF を指定すると100%出力になります。

ledcDetachPin()

構文:

void ledcDetachPin(uint8_t pin);

説明:

割り当てたポートを解放し、出力をやめます。

引数

引数 説明
pin uint8_t ピン番号)

戻り値:

なし