esp32 ADC 使用問題 作者: final 時間: 2022-09-22 分類: 編程 ADC 在引腳 32~39 上可用。 GPIO37-38 一般連接到一個電容,用于 ADC_PRE_AMP。 ADC 引腳的輸入電壓在0v 到 1.1v之間。 ADC的默認滿量程電壓為1.1V。要讀取更高的電壓(最高為引腳最大電壓,通常為3.3V),則需要將該ADC通道的信號衰減設置為> 0dB。 當VDD_A為3.3V時: 0dB衰減(ADC_ATTEN_0db)提供滿量程電壓1.1V 2.5dB衰減(ADC_ATTEN_2_5db)提供滿量程電壓1.5V 6dB衰減(ADC_ATTEN_6db)提供滿量程電壓2.2V 11dB衰減(ADC_ATTEN_11db)提供3.9V的滿量程電壓 由于采集兩個相同電阻中間電壓,電壓值最大為2.5左右,故選用11db衰減。 怎么讀取都不對 都是4095 原來要設置位寬和靈敏度啊 (應該不是靈敏度 是電壓問題) ``` {{&machine_adc_type}, GPIO_NUM_36, ADC1_CHANNEL_0}, {{&machine_adc_type}, GPIO_NUM_37, ADC1_CHANNEL_1}, {{&machine_adc_type}, GPIO_NUM_38, ADC1_CHANNEL_2}, {{&machine_adc_type}, GPIO_NUM_39, ADC1_CHANNEL_3}, {{&machine_adc_type}, GPIO_NUM_32, ADC1_CHANNEL_4}, {{&machine_adc_type}, GPIO_NUM_33, ADC1_CHANNEL_5}, {{&machine_adc_type}, GPIO_NUM_34, ADC1_CHANNEL_6}, {{&machine_adc_type}, GPIO_NUM_35, ADC1_CHANNEL_7}, ``` ``` { MP_ROM_QSTR(MP_QSTR_ATTN_0DB), MP_ROM_INT(ADC_ATTEN_0db) }, { MP_ROM_QSTR(MP_QSTR_ATTN_2_5DB), MP_ROM_INT(ADC_ATTEN_2_5db) }, { MP_ROM_QSTR(MP_QSTR_ATTN_6DB), MP_ROM_INT(ADC_ATTEN_6db) }, { MP_ROM_QSTR(MP_QSTR_ATTN_11DB), MP_ROM_INT(ADC_ATTEN_11db) }, { MP_ROM_QSTR(MP_QSTR_WIDTH_9BIT), MP_ROM_INT(ADC_WIDTH_9Bit) }, { MP_ROM_QSTR(MP_QSTR_WIDTH_10BIT), MP_ROM_INT(ADC_WIDTH_10Bit) }, { MP_ROM_QSTR(MP_QSTR_WIDTH_11BIT), MP_ROM_INT(ADC_WIDTH_11Bit) }, { MP_ROM_QSTR(MP_QSTR_WIDTH_12BIT), MP_ROM_INT(ADC_WIDTH_12Bit) }, ``` #pyb.ADCAll(resolution) esp32貌似沒有 土壤傳感器 需要設置 adc.atten(ADC.ATTN_11DB) adc.atten(ADC.ATTN_6DB) #adc.atten(ADC.WIDTH_12BIT) adc.width(ADC.WIDTH_12BIT) arduino ``` adc1_config_width(ADC_WIDTH_BIT_12); adc1_config_channel_atten(ADC1_CHANNEL_0,ADC_ATTEN_DB_11); int val = adc1_get_raw(ADC1_CHANNEL_7);//=35 analogRead(35); ``` 標簽: none