ESP32入门六(读取引脚的模拟信号[4]:Arduino

您所在的位置:网站首页 esp8266pwm引脚可以读取模拟量么 ESP32入门六(读取引脚的模拟信号[4]:Arduino

ESP32入门六(读取引脚的模拟信号[4]:Arduino

2024-06-08 22:38| 来源: 网络整理| 查看: 265

在之前的章节中,我们测试了读取引脚的模拟值,ADC功能在实际中用途十分广泛,在本章中,我们把一些常用的ADC函数做一个详细的说明。

ADC单次性模式

ADC单次模式API与Arduino的analogRead功能完全兼容。当您调用analogRead或analogReadMillivots函数时,它会返回所请求引脚上的单个转换结果。

函数:analogRead

作用:用于获取指定引脚ADC原始值(未校准)

格式:uint16_t analogRead(uint8_t pin);

 参数:

        pin         -引脚编号

返回:ADC引脚原始值

函数:analogReadMillivolts

作用:此函数将返回以毫伏为单位的值(已校准)。

格式uint32_t analogReadMilliVolts(uint8_t pin);

参数:

        pin         -引脚编号

返回:以毫伏为单位的值

函数:analogReadResolution

作用:该函数用于设置analogRead返回值的分辨率。  对于除 ESP32S3 之外的所有芯片,默认值为 12 位(范围从 0 到 4095),ESP32S3 的默认值为 13 位(范围从 0 到 8191)。  当设置不同的分辨率时,读取的值将移动以匹配给定的分辨率。

格式:void analogReadResolution(uint8_t bits);

参数:

        bits         -设置模拟读取分辨率(9~13)

函数:analogSetAttenuation

作用:用于设置所有通道的衰减。输入电压可以在输入到 ADC 之前衰减。  有 4 种可用的衰减选项,衰减越高,可测量的输入电压就越高。

 每个芯片的可测量输入电压有所不同,详细信息请参见:ADC — Arduino-ESP32 2.0.14 documentation

格式:void analogSetAttenuation(adc_attenuation_t attenuation);

参数:

        attenuation         -设置衰减                 ADC_ATTEN_DB_0    100 mV ~ 950 mV                 ADC_ATTEN_DB_2_5    100 mV ~ 1250 mV                 ADC_ATTEN_DB_6    150 mV ~ 1750 mV                 ADC_ATTEN_DB_11    150 mV ~ 3100 mV

函数:analogSetPinAttenuation

作用:该函数用于设置特定引脚/ADC 通道的衰减。  更多信息,请参阅analogSetAttenuation。

格式:void analogSetPinAttenuation(uint8_t pin, adc_attenuation_t attenuation);

参数:

        pin                         -指定引脚进行衰减设置。

        attenuation            -设置衰减。

函数:analogSetWidth

作用:

该功能仅适用于ESP32芯片。用于设置硬件采样位和读取分辨率。  默认值为 12 位 (0 - 4095)。  范围为 9 - 12。

格式:void analogSetWidth(uint8_t bits);

参数:

        bits        -设置模拟读取宽度(9~12)

ADC 连续模式 ADC 连续模式是一种 API,用于在后台对多个引脚执行模拟转换,并在转换完成后接收回调以访问结果。通过该 API,您可以在一个周期内为每个引脚指定所需的转换次数以及相应的采样率。analogContinuousRead 函数的结果是一个 adc_continuous_data_t 结构数组。这些结构包含每个引脚的原始平均值和以毫伏为单位的平均值。

函数:analogContinuous

作用:用于配置选定的引脚阵列。

格式:bool analogContinuous(uint8_t pins[], size_t pins_count, uint32_t conversions_per_pin, uint32_t sampling_freq_hz, void (*userFunc)(void));

参数:

    pins[]                                         要设置的引脚阵列

    pins_count                                 阵列中的引脚数量

    conversions_per_pin                 设置每个引脚将在每个 ADC 周期运行的转换次数

    sampling_freq_hz sets               ADC 的采样频率(以 Hz 为单位)

    userFunc sets callback               转换完成后的回调函数(可以设置为 NULL)

返回:如果配置成功,返回 true。  如果返回 false,则发生错误或未配置 ADC 连续模式

函数:analogContinuousRead

作用:该函数用于将 ADC 连续数据读取到结果缓冲区。  结果缓冲区为 adc_continuos_data_t 数组。

typedef struct {     uint8_t pin;                       /*!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3