Arduino(一):LED灯的点亮熄灭和亮度控制

原本是因为有意了解少儿编程相关的内容,购买了一套某公司的开发套件,通过scratch图形方式对Arduino的基础开发进行了一些学习。

后来又觉得scratch我都学了,还不趁势研究一下代码怎么写未免也太不符合一个(战5渣)程序员的身份,于是有了这个系列的笔记。

想要了解如何用Scratch进行arduino基础学习可以查看这里,适合小孩子,小孩子家长,想要成为少儿编程老师的朋友了解一下。

-----------------------------------------------分割线 ---------------------------------------------------------------------

硬件准备:arduino uno主板+扩展板,3pin led灯

软件准备:arduino ide(我额外配置了个vs code的环境,官方ide似乎没什么代码提示,而且我确实觉得vs code大法好,方法可以百度)

步骤:接线;创建文件;写代码;上传

LED灯的点亮与关闭

  • 接线,将Led灯连接上数字IO口的4脚(就板子上标注的4),也可以不接led灯,直接使用主板上自带的led灯,调用时引脚号为13。

  • 创建文件:arduino的脚本文件后缀是ino。
  1. 在ide中:点击文件=》新建,就会创建好代码模板(写好setup和loop方法)。编辑完代码需要通过菜单或者ctrl+s保存文件,初次保存时是创建一个文件夹(自己命名),文件夹中的包含与文件夹名称一致的ino文件。
  2. vscode中:新建文件,保存为ino(setup和loop方法大概就是得自己写吧)。
  • 编写代码
//如果不外接led灯 定义为13用板载led灯也是可以的
int port=4;

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(port,OUTPUT);
  Serial.begin(9600);
}

// the loop function runs over and over again forever
//切换数字接口的电平 设置波特率9600来监听数字接口的状态 间隔时间是五秒
void loop() {
    digitalWrite(port,HIGH);
    Serial.println(digitalRead(port));
    delay(5000);
    digitalWrite(port,LOW);
    Serial.println(digitalRead(port));
    delay(5000);
}


 

函数介绍

pinMode()

描述:将指定引脚配置为输入或者输出模式
函数原型:pinMode(pin, mode)
参数:
pin:要设置其模式的引脚编号
mode: INPUT(输入模式), OUTPUT(输出模式), INPUT_PULLUP(上拉输入模式)
返回值: 无返回值


digitalWrite()

描述:将数字HIGH或LOW值写入数字引脚
函数原型:digitalWrite(pin, value)
参数:
pin:要设置其输出的引脚编号
value:HIGH(1)是开灯, LOW(0)是关灯
返回值: 无返回值


delay()

描述:将程序暂停给定参数的时间量(以毫秒为单位)
函数原型:delay(ms)
参数:ms 暂停的毫秒数
返回值: 无返回值
程序首先通过pinMode设置4引脚为输出模式,然后在loop里面通过digitalWrite来改变引脚的输出电平,HIGH输出高电平即为当前Arduino的工作电压5V,LOW输出低电平即为0V。delay函数暂停1s让我们可以清晰看到闪烁状态。你也可以减小等待时间,LED就会闪烁的更快了。
 

Serial.begin()      Serial.println()设置串口监视器的波特率并且打印所需要监听的数据(这里是对应led灯的状态)

控制LED灯亮度

将线接在数字接口11(第3、5、6、9、10、11引脚具有PWM功能),通过使用analogWrtie()函数实现亮度调整

可以跟旋转电位器组合起来调整灯的亮度,也可以做个呼吸灯

这里就记一下简单的让灯逐渐变亮

int value;
void setup(){
    value=0;
    pinMode(11,OUTPUT);
    analogWrite(11,value);
}
void loop(){
    //控制亮度增加 value取值0-255
    if(value<255)
        value++;
    
    analogWrite(11,value);
    delay(100);

}

更具体的可以参考:https://blog.csdn.net/TonyIOT/article/details/81771622

  • 5
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程兴趣社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值