前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Arduino硬件开发入门点亮LED

Arduino硬件开发入门点亮LED

原创
作者头像
陈帅华
修改2019-07-22 12:27:04
9980
修改2019-07-22 12:27:04
举报
文章被收录于专栏:arduinoarduino

原作者:陈帅华-探索技术艺术与国学之美

原文链接:http://www.shuaihuajun.com/article/arduino-led/

我现在手里有一套Ruff开发板套件和一套Arduino开发板套件。把Ruff开发套件中的所有传感器用了一个遍之后没玩够,于是开始把玩Arduino。没有对比就没有伤害真的是,虽然我真正接触Arduino时间不长,但就我自己的感觉来说,Arduino不论从程序角度还是从硬件角度上来讲都比Ruff更底层也就更加灵活,从长远来看Arduino更具学习和研究价值。所以果断弃坑Ruff,拥抱Arduino。

不过Ruff基于JavaScript语言编写控制硬件的程序确实勾起我对宏大的物联网世界的兴趣。Ruff更适合快速做出原型,但无法进入生产环境,这满足不了我对物联网世界更底层的好奇。所以再见,Ruff,你好,Arduino。

Arduino IDE

arduino ide集成开发环境界面
arduino ide集成开发环境界面

Arduino集成开发环境支持语法检查、上传程序到开发板、串口监视器等主要功能,最常使用的就是这三个功能。

一个Arduino程序需要包含一个setup函数和一个loop函数,loop函数会在程序运行期间反复执行,setup函数只会在程序开始运行时执行一次。学习就是一个不断循环重复的过程。

创意构思

不管做什么事情,在开始之前,都有在脑海里先有一个大致的轮廓,虽然在实际操作过程中会萌生新的想法,但一开始就有一个想法是好的。

因为是入门Arduino,所以目的很单纯,就是点亮一个LED灯这么简单,当成功点亮了一个LED等,可以试着点亮一排LED灯,还可以让这些LED灯拼成一个符号,不停的闪烁也蛮不错的,或者一个接着一个的点亮和熄灭。

先在脑子里画一个电路。

对于我这么个刚入门的小白来说,还能记得初中物理的电路知识,也是很值得鼓励的。如果我没有说错的话,上图中的情况叫做并联电路。之所以加一块220欧的电阻,是因为LED承受不住太强的电流。

可以把Arduino开发板看作是一块电池,我将8号引脚的模式设置为输出,可以看作是电池的正极,LED灯并联起来,汇集到Arduino的负极接地引脚。

我先脑子里有个大致的想法,然后一边摆弄电路再一边晚上想法,因为当时连接电路的时候也是不断地尝试,怎么连接线路能更美观,最终连成了这个样子,并且LED灯最终也点亮了。

我认为学习的过程应该是,理解消化前人总结的东西,真正理解之后再去记忆吸收,然后不断的模仿和重复,再创新,最后将创新总结起来并分享出去,等待那些识得你所创造的价值的人的理解。创新很难,能走到不断模仿和重复这一步已经很不简单。

我的学习过程
我的学习过程

组装电路

根据脑子里想象的样子,摸索着如何连接电路,过程中会不断改进和完善先前的想法。

一组LED灯插在面包板上杜邦线连接Arduino开发板通过编程线连接电脑
一组LED灯插在面包板上杜邦线连接Arduino开发板通过编程线连接电脑

连接好电路,接下来就是编程。使用pinMode(8, OUTPUT)函数将8号引脚作为电平的输出端口即为正极,在loop函数中不断变换8号引脚的电平。

编写程序

因为电路只有通和断两个状态,要么开,要么关,所以digitalWrite()第二个参数只有中可能,要么HIGH要么LOW。当执行digitalWrite(8, HIGH)的时候,通电,电路中有电压产生,所以就有运动的电流,电流从LED阳极流向阴极,LED就会发光;当执行digitalWrite(8, LOW)的时候,断电,电路中没有电压,也就没有运动的电流,LED灯就不亮。

代码语言:javascript
复制
int led = 8;

void setup() {
  // 这里写初始化配置,只执行一次:
  pinMode(led, OUTPUT);
}

void loop() {
  // 这里写主要代码,会重复执行:
   digitalWrite(led, HIGH);
   delay(500);
   digitalWrite(led, LOW);
   delay(500);
}

digitalWrite(8, HIGH)执行后,电路通电,LED亮,此时执行delay(500)函数主程序会暂停500毫秒在执行,LED就会亮500毫秒,然后digitalWrite(8, LOW)执行,LED灭,主程序再暂停500毫秒,至此一个循环完毕,立即进入下一个循环。

我就看到面包板上的一排LED灯每1秒完成亮和灭的表演。

一组LED灯插在面包板上杜邦线连接Arduino开发板通过编程线连接电脑
一组LED灯插在面包板上杜邦线连接Arduino开发板通过编程线连接电脑

我还发现,如果将LED灯门串联起来,每一个LED发的光都很微弱,将LED灯并联起来每一个LED发的光一样而且很亮。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Arduino IDE
  • 创意构思
  • 组装电路
  • 编写程序
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档