pdf-icon

GPIO

*Refer to Arduino API of Arduino *

M5STACK ピン配列です:

引脚号 Name allocation
0 G0 downloader
1 T1 UART
2 G2 Side terminal (except M5FIRE),M5-BUS
3 R1 UART
4 G4 TF
5 G5 Side terminal (except M5FIRE),M5-BUS
6 G6 SDIO
7 G7 SDIO
8 G8 SDIO
9 G9 SDIO
10 G10 SDIO
11 G11 SDIO
12 G12 IIS_SCLK
13 G13 IIS_WS
14 G14 LCD
15 G15 IIS_OUT
16 R2 UART
17 T2 UART
18 G18 TF,Top terminal(SCK),M5-BUS
19 G19 TF,Top terminal(MISO),M5-BUS
21 G21 GROVE-A(SDA)
22 G22 GROVE-A(SCL)
23 G23 TF,Top terminal(MOSI)
25 G25 Speaker,Side terminal (except M5FIRE),M5-BUS
26 G26 Side terminal (except M5FIRE),M5-BUS
27 G27 LCD
32 G32 LCD BackLight
33 G33 LCD
34 G34 None
35 G35 Side terminal (except M5FIRE)
36 G36 Side terminal (except M5FIRE)
37 G37 Button C
38 G38 Button B
39 G39 Button A

pinMode

機能です:

ピン入出力モードを設定します

原型関数です:

void pinMode(uint8_t pin, uint8_t mode);

パラメータです タイプです 記述します
pin uint8 ピン号です
mode uint8 INPUT,OUTPUT,INPUT_PULLUP 的任何一个
注意します:
バス上に他の回路が存在する場合は、物理的な損傷が発生する可能性があります。例えば、スピーカー(G25)端子を INPUT モードに設定した時、スピーカーに向かう電流はメインユニットを発熱させる可能性があります。操作を正しく行なしてください。損傷のリスクが存在します。

使用例です:

#include <M5Stack.h>

void setup() {
    M5.begin();
    M5.Power.begin();
    pinMode(16, OUTPUT);
}
void loop() {
}

digitalRead

機能です:

指定のピンの状態を読み込みます

原型関数です:

int digitalRead(uint8_t pin);

戻り値です:

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

注意します:
ピンに何も接続されていない場合は、不定の値を返却します。
2. 制御線に他の回路が存在する場合は、それらが影響を受ける可能性があります。

使用例です:

#include <M5Stack.h>

void setup() {
    M5.begin();
    M5.Power.begin();
    M5.Lcd.setTextSize(2);
}
void loop() {
    M5.Lcd.printf("Read value:%d\n", digitalRead(39));
    delay(500);
}

digitalWrite

機能です:

指定のピンに値を書き込みます

原型関数です:

void digitalWrite(uint8_t pin, uint8_t val);

パラメータです タイプです 記述します
pin uint8 ピン号です
val uint8 出力状態(0/1)です
注意します:
1. 引脚のモードが OUTPUT に設定されていない場合は、正しい結果が返却されません。
2. 制御線に他の回路が存在する場合は、物理的な損傷を及ぼす可能性があります。

使用例です:

#include <M5Stack.h>

void setup() {
    M5.begin();
    M5.Power.begin();
    M5.Lcd.setTextSize(2);
    pinMode(16, OUTPUT);
}
void loop() {
    M5.update();
    M5.Lcd.printf("Read value:%d\n", digitalRead(16));
    delay(500);
}

analogRead

機能です:

アナログピンの値を読み込みます

原型関数です:

uint16_t analogRead(uint8_t pin);

パラメータです タイプです 記述します
pin uint8 ピン番号

戻り値です:

analogSetWidth()によって決定される最大応答値を読み込みます

使用例です:

#include <M5Stack.h>

void setup() {
    M5.begin();
    M5.Power.begin();
    M5.Lcd.setTextSize(2);
}
void loop() {
    M5.Lcd.printf("Read value:%d\n", analogRead(35));
    delay(500);
}

dacWrite

機能です:

指定のピンに DAC 出力を送信します

原型関数です:

void dacWrite(uint8_t pin, uint8_t value);

パラメータです タイプです 記述します
pin uint8 ピン番号
value uint8 出力電圧を設定します
注意します:
1.使用前に、ピンのモードを OUTPUT に設定してください。
2. G25 と G26 は M5Stack 上で使用できます。

使用例です:

#include <M5Stack.h>

void setup() {
    M5.begin();
    M5.Power.begin();
    M5.Lcd.setTextSize(2);
    pinMode(25, OUTPUT);
}
void loop() {
    dacWrite(25,0x40);
    delay(500);
}

ledcSetup

機能です:

占空比出力を設定します

原型関数です:

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

パラメータです タイプです 記述します
channel uint8 channel (0 ~ 15)
freq double frequency (Hz)
resolution_bits uint8_t 占空比指示のフルスケールビット数

戻り値です:

実際の出力周波数

注意します:
チャンネルと GPIO ポート番号は異なります。これは保存された設定を識別する数字として認識されるべきです。

ledcAttachPin

機能です:

指定の ledc チャンネルにピンをバインドします

原型関数です:

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
注意します:
1. 占空比は初期化時に設定したビット率に依存します。8 ビット指定を使用する場合、0xFF を指定すると 100%の出力が行われます。

使用例です:

#include <M5Stack.h>

uint8_t pin = 25;  // Set output pin number.设置输出引脚号

void setup() {
    M5.begin();
    M5.Power.begin();
    double f = ledcSetup(1, 1000, 10);  // Use ledc channel 1, set the frequency to 1kHz and the resolution to 10 bits.使用ledc通道1,设置频率为1kHz,分辨率为10位
    Serial.printf("F=%.0f\n",f);  // print the actual setting. 打印实际设置的频率
    ledcAttachPin(pin,1);  // Bind the  pin to ledc channel 1.将引脚绑定到ledc通道1
    ledcWrite(1, 511);  // Set the duty cycle of ledc channel to 512/1024=50%.设置ledc通道占空比为512/1024=50%
}

void loop() {
    delay(100);
}

ledcDetachPin

機能です:

指定のポートを解放し、出力を停止します

原型関数です:

void ledcDetachPin(uint8_t pin);

パラメータです タイプです 記述します
pin uint8_t ピン号です

使用例です:

#include <M5Stack.h>

uint8_t pin = 25;  // Set output pin number. 设置输出引脚号

void setup() {
    M5.begin();
    M5.Power.begin();
    double f = ledcSetup(1, 1000, 10);  // Use ledc channel 1, set the frequency to 1kHz and the resolution to 10 bits.使用ledc通道1,设置频率为1kHz,分辨率为10位
    Serial.printf("F=%.0f\n",f);  // print the actual setting. 打印实际设置的频率
    ledcAttachPin(pin,1);  // Bind the pin to ledc channel 1.将引脚绑定到ledc通道1
    ledcWrite(1, 511);  // Set the duty cycle of ledc channel to 512/1024=50%.设置ledc通道占空比为512/1024=50%
    ledcDetachPin(pin);  // Stop the pin output.  停止引脚输出
}

void loop() {
    delay(100);
}

ledcRead

機能です:

指定された通路のデューティサイクルに戻ります。

原型関数です:

uint32_t ledcRead(uint8_t channel)

パラメータです タイプです 記述します
channel uint8_t 指定通路です

戻り値です:

デューティサイクルです

使用例です:

#include <M5Stack.h>

uint8_t pin = 25;  // Set output pin number.设置输出引脚号

void setup() {
    M5.begin();
    M5.Power.begin();
    double f = ledcSetup(1, 1000, 10);  // Use ledc channel 1, set the frequency to 1kHz and the resolution to 10 bits.使用ledc通道1,设置频率为1kHz,分辨率为10位
    Serial.printf("F=%.0f\n",f);  // print the actual setting. 打印实际设置的频率
    ledcAttachPin(pin,1);  // Bind the  pin to ledc channel 1.将引脚绑定到ledc通道1
    ledcWrite(1, 511);  // Set the duty cycle of ledc channel to 512/1024=50%.设置ledc通道占空比为512/1024=50%
    M5.Lcd.printf("ledcRead:%d\n", ledcRead(1));  // print the actual duty cycle. 打印实际占空比
}

void loop() {
    delay(100);
}

ledcReadFreq

機能です:

現在のチャネル周波数に戻ります。

原型関数です:

double ledcReadFreq(uint8_t channel)

パラメータです タイプです 記述します
channel uint8_t 指定通路です

戻り値です:

チャネル周波数です

使用例です:

#include <M5Stack.h>

uint8_t pin = 25;  // Set output pin number.设置输出引脚号

void setup() {
    M5.begin();
    M5.Power.begin();
    double f = ledcSetup(1, 1000, 10);  // Use ledc channel 1, set the frequency to 1kHz and the resolution to 10 bits.使用ledc通道1,设置频率为1kHz,分辨率为10位
    Serial.printf("F=%.0f\n",f);  // print the actual setting. 打印实际设置的频率
    ledcAttachPin(pin,1);  // Bind the  pin to ledc channel 1.将引脚绑定到ledc通道1
    ledcWrite(1, 511);  // Set the duty cycle of ledc channel to 512/1024=50%.设置ledc通道占空比为512/1024=50%
    M5.Lcd.printf("ledcRead:%d\n", ledcRead(1));  // print the actual duty cycle. 打印实际占空比
}

void loop() {
    delay(1000);
    M5.Lcd.printf("ledcReadFreq:%.3f\n",ledcReadFreq(1));  // print the actual duty cycle. 打印实际占空比
}

adcAttachPin

機能です:

非ブロッキングモード,接続設定ピンを ADC に設定します

原型関数です:

bool adcAttachPin(uint8_t pin)

パラメータです タイプです 記述します
pin uint8_t ピンを指定します

使用例です:

#include <M5Stack.h>

uint8_t pin = 25;  // Set output pin number. 设置输出引脚号

void setup() {
    M5.begin();
    M5.Power.begin();
    if (adcAttachPin(pin)) {  // Attach the pin to ADC. 将引脚绑定到ADC
        M5.Lcd.printf("Pin %d attached to ADC", pin);
    };
}

void loop() {}

adcStart

機能です:

非ブロッキングモードで、ADC 変換を開始。

原型関数です:

bool adcStart(uint8_t pin)

パラメータです タイプです 記述します
pin uint8_t 指定引脚

戻り値です:

成功開始したら 1 を返す、そうでない場合は 0 を返す。

adcBusy

機能です:

非ブロッキングモードで、ADC 変換が進行中かどうかを検査。

原型関数です:

bool adcBusy(uint8_t pin)

パラメータです タイプです 記述します
pin uint8_t 指定引脚

adcEnd

機能です:

非ブロッキングモードで、変換結果を返す。変換が完了していない場合は待ちます。

原型関数です:

uint16_t adcEnd(uint8_t pin)

パラメータです タイプです 記述します
pin uint8_t 指定引脚

戻り値です:

変換結果を返す。

analogReadResolution

機能です:

模拟データ読み込みの分解能を設定。116 の範囲で指定。既定値は 12。範囲が 912 の間の場合は、設定したハードウェア分解能が使われ、それ以外の場合は値が調整されます。

原型関数です:

void analogReadResolution(uint8_t bits)

パラメータです タイプです 記述します
bits uint8_t 采样分辨率

analogSetAttenuation

機能です:

ADC の全体的入力減衰を設定。ADC_0db, ADC_2_5db, ADC_6db, ADC_11db のいずれかを指定。既定値は 11db。

原型関数です:

void analogSetAttenuation(adc_attenuation_t attenuation)

パラメータです タイプです 記述します
attenuation adc_attenuation_t 衰减值

analogSetCycles

機能です:

サンプリング周期を 1~255 の範囲で設定。既定値は 8。

原型関数です:

void analogSetCycles(uint8_t cycles)

パラメータです タイプです 記述します
cycles uint8_t sampling period

analogSetPinAttenuation

機能です:

個々のピンの減衰を設定。

原型関数です:

void analogSetPinAttenuation(uint8_t pin, adc_attenuation_t attenuation)

パラメータです タイプです 記述します
pin uint8_t specified pin
attenuation adc_attenuation_t 衰减值

analogSetSamples

機能です:

単一のサンプリングの実際のサンプル倍率を 1~255 の範囲で設定。既定値は 1。adc の感度を高める効果をもたらし、サンプル数を N 倍に拡大。

原型関数です:

void analogSetSamples(uint8_t samples)

パラメータです タイプです 記述します
samples uint8_t 采样倍数

analogSetWidth

機能です:

adc のサンプリング分解能を 9~12 の範囲で設定。既定値は 12。

原型関数です:

void analogSetWidth(uint8_t bits)

パラメータです タイプです 記述します
bits uint8_t 采样分辨率

attachInterrupt

機能です:

ピン割り当ての割り込みを設定。

原型関数です:

void attachInterrupt(pin, ISR(callback function), interrupt type/mode)

パラメータです タイプです 記述します
pin uint8_t 引脚
ISR callcack function 回调函数
interrupt mode 触发タイプです

detachInterrupt

機能です:

指定のピン割り当ての割り込みを無効化。

原型関数です:

void detachInterrupt(pin)

パラメータです タイプです 機能です
pin uint8_t 引脚号.

hallRead

機能です:

ホールセンサーを読み込み。

原型関数です:

int hallRead(void));

On This Page