建筑兔零基础Arduino自学记录63|串行接口控制小灯(想亮就亮)-5

    之前我们尝试了亮灯、流水灯的亮灯方式,但都是运行就会亮。这次我们改为需要有命令才能亮灯~这就需要用到串行接口的方式,这是一种区别于并行接口的传输方式。串行比较简单稳定,一次只传一位数据。

建筑兔零基础Arduino自学记录47|安装和实战小灯闪烁-1-优快云博客

建筑兔零基础Arduino自学记录61|流水灯-3-优快云博客

那就直接开始~首先本次需要先设置电阻的数值220Ω

    电阻的作用是限流,防止烧毁 LED 和 Arduino 引脚。LED 有一个正向电压(Vf),LED 的颜色由半导体材料决定,导致 Vf 差异。常见颜色控制在220Ω都是没问题的。

然后就是和之前一样的导入代码,在单行监视器里输入a/b,控制灯的开关

// C++ code
//
void setup()
{
  Serial.begin(9600);
  pinMode(13,OUTPUT);
}

void loop()
{
  if(Serial.available()>0)
  {
    char ch=Serial.read();
    Serial.print(ch);
    if(ch=='a')
    {
    digitalWrite(13,HIGH);
      Serial.print("turn on");
      
    }
    else if(ch=='b')
    {
      digitalWrite(13,LOW);
       Serial.print("turn off");
    }
  }
}

参考视频串口控制Led灯 || Arduino入门实验_哔哩哔哩_bilibili

引脚的工作模式

    设置 Arduino 开发板上指定引脚。

 pinMode(13, OUTPUT) 中,第一个参数 13 代表要设置的引脚编号,Arduino 的引脚编号是从 0 开始的,不同的开发板,其引脚编号的范围和用途也有所不同。第二个参数 OUTPUT 表示将该引脚设置为输出模式。在 Arduino 中,引脚的工作模式一般有 OUTPUT(输出)、INPUT(输入)和 INPUT_PULLUP(上拉输入)三种。

OUTPUT(输出模式)digitalWrite()

高电平,点亮LED灯digitalWrite(13, HIGH);
低电平,熄灭LED灯digitalWrite(13, LOW);

pinMode()INPUT(输入模式)

将引脚 2 设置为输入模式pinMode(2, INPUT);

pinMode()INPUT_PULLUP(上拉输入模式)

    本质上也是输入模式,不过它会在引脚内部连接一个上拉电阻,将引脚默认电平设置为高电平。当外部信号将引脚拉低时,就可以检测到信号变化。

将引脚 2 设置为上拉输入模式pinMode(2, INPUT_PULLUP)

具体代码解读:

// C++ code
//
// setup——初始化函数,只开始运行一次
void setup()
{
  // 初始化串口通信,设置波特率为 9600
  // 波特率表示每秒传输的比特数,这里设置为 9600bps,要与串口监视器等工具设置的波特率一致
  Serial.begin(9600);
  // 将引脚 13 设置为输出模式
  pinMode(13,OUTPUT);
}

// loop——循环函数
void loop()
{
  // Serial.available() 函数用于检查串口接收缓冲区中是否有可用的数据
  // 如果有数据(即返回值大于 0),则进入 if 语句块执行相应操作
  if(Serial.available()>0)
  {
    // 从串口接收缓冲区读取一个字符,并将其赋值给变量 ch
    char ch=Serial.read();
    // 通过串口将接收到的字符发送回去,起到回显的作用
    Serial.print(ch);
    // 判断接收到的字符是否为 'a'
    if(ch=='a')
    {
      // 如果接收到的字符是 'a',将引脚 13 的电平设置为高电平
      // 对于连接在引脚 13 上的 LED 灯来说,这会点亮它
      digitalWrite(13,HIGH);
      // 通过串口发送 "turn on" 信息,表示灯已打开
      Serial.print("turn on");
    }
    // 判断接收到的字符是否为 'b'
    else if(ch=='b')
    {
      // 如果接收到的字符是 'b',将引脚 13 的电平设置为低电平
      // 对于连接在引脚 13 上的 LED 灯来说,这会熄灭它
      digitalWrite(13,LOW);
      // 通过串口发送 "turn off" 信息,表示灯已关闭
      Serial.print("turn off");
    }
  }
}

一起来试试吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值