5.9 KiB
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 |
チャネル(0~15) |
| freq | double |
周波数(Hz) |
| resolution_bits | uint8_t |
デューティ指示のフルスケールビット数 |
戻り値:
実際の出力周波数。
注意
チャンネルとGPIOポート番号は同一ではありません。
設定を記憶するための番号だと認識するとよいでしょう。
ledcAttachPin()
構文:
void ledcAttachPin(uint8_t pin, uint8_t chan);
説明:
出力するポートを指定します。
引数
| 引数 | 型 | 説明 |
|---|---|---|
| pin | uint8_t |
ピン番号) |
| chan | uint8_t |
チャネル(0~15) |
戻り値:
なし
ledcWrite()
構文:
void ledcWrite(uint8_t chan, uint32_t duty);
説明:
指定したデューティ値で出力します。
引数
| 引数 | 型 | 説明 |
|---|---|---|
| chan | uint8_t |
チャネル(0~15) |
| duty | uint32_t |
デューティ |
戻り値:
なし
注意
デューティの単位は、初期化時に設定したビットスケールに依存します。
8ビットで指示していた場合は 0xFF を指定すると100%出力になります。
ledcDetachPin()
構文:
void ledcDetachPin(uint8_t pin);
説明:
割り当てたポートを解放し、出力をやめます。
引数
| 引数 | 型 | 説明 |
|---|---|---|
| pin | uint8_t |
ピン番号) |
戻り値:
なし