Arduino篇—呼吸灯

电子说

1.3w人已加入

描述

课程目标

  • 信号的输入输出及分类
  • 模拟信号和数字信号
  • 呼吸灯的制作

相关知识

一、输入和输出

Arduino

  • 输入:把数据读到内存中,称为输入,即input,进行数据的read操作。
  • 输出:从内存往外部设备写数据,称为输出,即output,进行数据的write操作。
  • 按数据流的传输方向分为:
    输入流:往内存中读叫输入流。
    输出流:从内存中往外写叫输出流。

Arduino

二、模拟信号和数字信号

  • 模拟信号:是指用连续变化的物理量所表达的信息,如温度、湿度、压力、长度、电流、电压等等,我们通常又把模拟信号称为连续信号,它在一定的时间范围内可以有无限多个不同的取值。(取值范围0~255)
  • 数字信号:是在模拟信号的基础上人为经过采样、量化和编码而形成的,取值只有两种状态。(取值只有0和1)

Arduino

三、ArduinoUNO端口说明

Arduino

电路搭建

所需材料

ArduinoUNO * 1
任意颜色LED * 1
220Ω电阻 * 1
杜邦线若干

接线方式

根据本节课的课程目标,我们只需要使用UNO控制一个LED就可以。所以电路接线相对很简单。

Arduino

程序编写

练习:制作一个呼吸灯,能够让灯从亮到灭,然后从灭到亮进行变化。

控制灯的亮灭,那么我们就需要用到ArduinoUNO的模拟信号输出引脚,根据上图可知,我们使用了3号引脚。

图形化方式:

Arduino

上面我们学习了模拟输出取值范围为0~255,当值为0的时候,LED最暗,当值为255的时候,LED最亮。这里使用for循环,让变量i从0开始每隔10ms自增1,一直到255后,开始每隔10ms自减1,一直到0。以此循环执行。

代码方式:

/* 项目名称:呼吸灯
 * 项目时间:2022.02.15
 * 项目作者:MRX
 */
int ledpin = 3;
void setup() {
  pinMode(ledpin,OUTPUT);
}
void loop() {
  for(int i = 0;i <= 255;i++)
  {
    analogWrite(ledpin,i);
    delay(10);
  }
  for(int i = 255;i >= 0; i--)
  {
    analogWrite(ledpin,i);
    delay(10);
  }
}

课后练习:

在串口监视器中发送信号a时,LED灯一点点亮,发送信号b时,LED灯更亮一点,发送c时,LED灯达到最亮,发送信号d时,LED灯熄灭。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分