Arduino模拟I/O的使用

Arduino开发板上带有A的是模拟输入的引脚。Arduino可以通过读取输入引脚上的电平值来读取模拟信号。

在Arduino UNO上可以接受0~5V的模拟信号。

模拟输入引脚是带有ADC(Analog-Digital Converter模数转换器)功能的引脚,它可以将外部输入的模拟信号转变为芯片运算时可以识别的数字信号,从而实现读入模拟值的功能。

Arduino的模拟输入功能有10位精度,可以将0~5V的电压值转变成0~1023的整数形式表示。

模拟信号输入功能需要使用analogRead()函数。

int value = analogRead(pin);

pin是指模拟输入的引脚,被指定的引脚必须是模拟输入的引脚如

int value = analogRead(A0);//读取A0引脚上的模拟信号

而analogWrite()是模拟信号输出,但是这不是真正意义上的模拟信号,而是以一钟特殊的方式来达到近似模拟输入的结果。这种方式叫做脉冲宽度调试(PWM,Pulse Width Modulation)。在Arduino UNO中,提供这个的引脚为3,5,6,9,10,11.

analogWrite(pin,value);

参数pin是指要输出PWM波的引脚,参数value是指PWM波的脉冲范围,范围是0~255。

在analogRead()和analogWrite()函数内部已完成了引脚的初始化,所以不用在setup()中进行引脚初始化。


使用模拟I/O设计呼吸灯

int ledPin=9;
void setup()
{//模拟信号引脚不用初始化
}
void loop()
{
  for(i=0;i<=255;i=i+5)//LED从暗到亮
  {
  analogWrite(ledPin,i);
  delay(50);//延迟50毫秒
  }
  for(i=255;i>=0;i=i-5)//LED从亮到暗
  {
  analogWrite(ledPin,i)
  delay(50);
  }
}


  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值