【LinkIt 7697物联网开发板试用体验】+ADC&PWMDAC

  • donatello
  • LV6工程师
  • |      2017-08-03 00:04:03
  • 浏览量 836
  • 回复:0
【LinkIt 7697物联网开发板试用体验】+ADC&PWMDAC PWM调节LED亮度通了,接下来可以玩玩ADC。LinkIt 7697板子的ADC通道一共有四个,对应的Arduino分配号自然就是A0-A3啦,这四个ADC通道分别接在GPIO57-60上,即板子的P14到P17,不过要注意的是,Arduino的ADC通道分配号跟GPIO分配号是不一样的,一个板子的ADC通道一般只有几个,都是A0开始到A3或者A4这样。说到这里是不是很乱?其实GPIO分配号的意义在上一篇帖子已经讲了,这篇帖子只是向大家介绍多一个分配号叫ADC通道分配号而已,简单来说,没有ADC通道复用功能的GPIO只有两个名字,一个叫GPIO号,就是MCU的引脚号,另一个叫Arduino分配号,是用于控制数字输入输出的;而可以复用为ADC通道的GPIO除了有前面两个名字以外,还多了一个名字叫ADC通道分配号,这个ADC通道分配号只在GPIO引脚用作ADC通道的时候才有意义。 使用ADC通道采集的语句比PWM和点灯都要简单,就是一句话:int adc_val = analogRead(A0);adc_val存放的是采集到的数据,把这个语句放到loop()循环里面,就是不断采集新的数据,覆盖存放到adc_val变量。 先做好硬件的接线准备,P14(A0)引脚接一个电位器,电位器两端接5V和地,那么,当电位器转动的时候,电压取值就是0-5V,MCU采集到A0的数据之后再通过计算转化为线性的PWM比较值,所以LED灯的亮度和电位器的值就是线性关系了。 直接上图: 贴代码:
void setup() 

{

  pinMode(7,OUTPUT);

  Serial.begin(115200);

}



int val=0,flag=0;



void loop() 

{

    

    int adc_val = analogRead(A0);

    //Serial.println(adc_val);

    analogWrite(7,adc_val/20);

    

    //digitalWrite(17, HIGH);

    //delay(100);                      

    //digitalWrite(17, LOW);

    //delay(100);

    

}
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子