ESP32入门六(读取引脚的模拟信号[4]:Arduino |
您所在的位置:网站首页 › esp8266pwm引脚可以读取模拟量么 › ESP32入门六(读取引脚的模拟信号[4]:Arduino |
在之前的章节中,我们测试了读取引脚的模拟值,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 |