[开发板与模块] 【ESK32-30519 + ESK32-21001测评】+A/D数据采集与显示

[复制链接]
 楼主| jinglixixi 发表于 2022-9-21 08:49 | 显示全部楼层 |阅读模式
<
本帖最后由 eltonchang2001 于 2022-11-9 14:04 编辑

ESK32-30519 开发板上配置有12位的ADC,并可使用扩展板上的电位器来提供相应的模拟信号,其电路如图1所示。
1.jpg
1 模拟信号输出

在例程中,数据采集的结果是有串口来输出的其形式如图2和图3所示。
2.jpg
2 悬空态采集
3.jpg
3 接地采集

既然开发板上配有数码管,那就可以用它来实现数值的显示,其效果如图4所示。
4.jpg
4 数值显示

实现图4效果的主程序如下:

  1. int  main(void)
  2. {
  3.     u8CharIndex=0;
  4.     u8CharSize = sizeof(NumberChar);
  5.     u16 u;
  6.     GPIO_Configuration();
  7.     LEDC_Configuration();
  8.     RETARGET_Configuration();
  9.     ADC_Configuration();
  10.     ADC_Cmd(HTCFG_ADC_PORT, ENABLE);
  11.     ADC_SoftwareStartConvCmd(HTCFG_ADC_PORT, ENABLE);
  12.     while (1)
  13.     {
  14.        if(gIsUpdateChar)
  15.        {
  16.              if (gADC_SingleEndOfConversion)
  17.             {
  18.                                      u=gPotentiometerLevel*3300/4096;
  19.                                      LEDC_SetData(HTCFG_LEDC_COM_D1,  (NumberChar[u%10000/1000])|0x02);
  20.                                      LEDC_SetData(HTCFG_LEDC_COM_D2,  NumberChar[u%1000/100]);
  21.                                      LEDC_SetData(HTCFG_LEDC_COM_D3,  NumberChar[u%100/10]);
  22.                                      LEDC_SetData(HTCFG_LEDC_COM_D4,  NumberChar[u%10]);
  23.             }
  24.             gIsUpdateChar = FALSE;
  25.         }
  26.      }
  27. }


5.jpg
5 模拟信号检测

注:为了便于识读,这里是将检测的模拟信号值转换为对应的电压来显示,其最高电压为3.3伏,最低电压为0伏,通过电位器可动态调整检测信号的大小。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

518

主题

2934

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部