Arduino小白教学——1.2 呼吸灯

上一篇讲了逐个点亮LED,我们用的是digitalWrite()函数,顾名思义是数字信号;并且用的是数字引脚,仅有0和1两种电平,即仅有亮暗两种状态。

为了提升它的美观性,大家有没有一个大胆的想法就是让它的亮暗发生渐变(总归好看一丢丢吧)

这时候数字信号就很难满足我们的要求了,只有亮暗两种选择不够啊。所以我们就引入了模拟信号这种登西,用的引脚也必须是模拟引脚!模拟信号的范围就比较大啦,但是由于存储器本身的限制,电平的范围是0~255。

模拟信号的端口在Arduino单片机上就是带有~的端口

此图中,可以看到3、5、6、9、10、11都是模拟信号的端口,在这个呼吸灯实验中,大家可以在这几个端口里随意选择(程序中对应的ledPin要改成对应引脚号)

接下来先来展示一下接线方式,就是很传统的发光二极管接线方式。

以下展示代码,可以尝试运行以下,可以看到发光二极管逐渐变亮,然后逐渐变暗(别盯着看太久,亲测伤眼orz)

int ledPin=3;//此处我二极管正极连接的端口是3int i;void setup() {  pinMode(3,OUTPUT);//将端口设置为输出  digitalWrite(3,0);//前面一个数字是端口,后面那个是电平(0是低电平),将二极管的出状态设置为暗}void loop() {  for(i=0;i<255;i++){//由于存储器位数的限制,i的范围为0~255    analogWrite(3,i);//输出逐渐升高的电平    delay(20);//有延迟停留,让人眼能分辨光亮暗的变化  }  for(i=255;i>0;i--){//输出逐渐降低的电平    analogWrite(3,i);    delay(20);  }}

Tips:

  1. 一定要注意模拟端口和数字端口的区别,要连带~的端口!

  2. 此处模拟信号用的就是analogWrite()函数,注意括号中有两个参数

  3. 不要忘记delay()函数,delay()函数中的1代表一毫秒,此处的20就是20毫秒。如果没有delay()函数进行一小下停顿,我们人眼是无法观测到光线亮暗的瞬间变化的。


接下来是展示环节

先是模拟演示:

基于Arduino的呼吸灯模拟演示


接下来是实演示:

基于Arduino的呼吸灯实物演示


作者的话:

注意看注释!很多知识点是在注释里说明的!

这一篇主要就是引入了模拟信号这个东西,之后会经常出现,要把它和数字信号区分开。如果不能理解,就记一下它的应用场景。这篇还是挺简单的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值