2018年12月15日 星期六

DIY - ESP32:ESP32 ADC DVM 數字電壓錶程式 (五十二)

DIY - ESP32:ESP32 ADC DVM 數字電壓錶程式 (五十二):

測試量度 ADC 接腳的電壓,最重要是程式的電壓轉換和處理,由於 ESP32 在 IDF 內已經有 ADC(模擬數碼轉換器 / Analog to Digital Converter) / DAC(數碼模擬轉換器 / Digital to Analog Converter) API 函數接口,所以編寫數字電壓錶(DVM / Digital Voltage Meter)時,編程便方便了。

ESP32 ADC DVM 數字電壓錶製作
ESP32 ADC DVM 數字電壓錶 IO 設定:
// ADC Parameters
gpio_num_t new_adc_gpio;
uint8_t new_adc_channel = 7;            // Channel 7 = GPIO35
uint8_t new_adc_atten = 3;                // Atten=0=1100,1=1500,2=2200,3=3300
uint8_t new_adc_width           = 3;      // ADC_WIDTH_BIT_12 = 3
uint8_t new_adc_unit  = 1;                 // ADC_UNIT_1 = 1, ADC_UNIT_2 = 2
uint8_t new_adc_setting[8];

// DAC Parameters
gpio_num_t new_dac_gpio;
uint8_t new_dac_channel        = 2;      // Channel 2 = GPIO26
uint16_t new_dac_output        = 20;    // 0 ~ 255 20=1042=321mV
uint16_t new_dac_vref   = 1100;         // ADC reference voltage is 1000mV ~ 1200mV
uint16_t new_dac_max    = 3300;        // VDD=0dB=1100,2.5dB=1500,6dB=2200,11dB=3300

ESP32 ADC DVM 數字電壓錶主程式:
void adc_task(void* arg)
{
    uint32_t       adc_raw = 0;
    uint32_t       adc_volt= 0;  
     
    while(1){
           
                adc_raw  = adc1_get_raw(new_adc_channel);
                adc_volt = esp_adc_cal_raw_to_voltage(adc_raw, adc_chars);
       
                printf("ADC Raw=%d Voltage=%dmV\n", adc_raw, adc_volt);                       
                sprintf(dsp_buffer, "ADC=%4d %4dmV  ", adc_raw, adc_volt);
                        oled_Print(0, 6, dsp_buffer,1);
                       
            vTaskDelay(1000 / portTICK_PERIOD_MS);
} // End While
                       
}

操作系統:Windows 7 64-bit 版本
開發環境:AiThinker05 版本
原程碼: ESP32 ESP-IDF V3.0rc1
程式: DIY-ESP32-011-ADC_02_Voltmeter-20181211

ESP32 ADC DVM 數字電壓錶運行中
ESP32 ADC DVM 數字電壓錶電路製作顯示
ESP32 ADC DVM 數字電壓錶電路製作的設定菜單
ESP32 ADC DVM 數字電壓錶電路製作的 ADC設定菜單
ESP32 ADC DVM 數字電壓錶電路製作的 ADC GPIO 設定菜單
ESP32 ADC DVM 數字電壓錶電路製作的 DAC 設定菜單
ESP32 ADC DVM 數字電壓錶電路製作的 DAC 設定菜單
ESP32 ADC DVM 數字電壓錶電路製作和遙控器
相關網址:
※ DIY - ESP32:ESP32 ADC 模擬數碼轉換器介紹 (四十三)
※ DIY - ESP32:ESP32 ADC / DAC 模擬數碼轉換器電路 (四十四)
※ DIY - ESP32:ESP32 ADC / DAC 模擬數碼轉換器程式 (四十五)
※ DIY - ESP32:ESP32 ADC 模擬數碼轉換器 API 函數(四十六)
※ DIY - ESP32:ESP32 ADC 模擬數碼轉換器 API 函數巨集及其它(四十七)
※ DIY - ESP32:ESP32 DAC 數位類比轉換器 API 函數(四十八)
※ DIY - ESP32:ESP32 DAC 數位類比轉換器 API 函數巨集及其它(四十九)
※ DIY - ESP32:ESP32 ADC 類比數位轉換器測試(五十)
※ DIY - ESP32:ESP32 ADC DVM 數字電壓錶電路(五十一)

2018年 12月 15日 天氣報告
氣溫:18.7@ 21:40
相對濕度:百分之 76%
天氣:天色大致良好

沒有留言:

張貼留言