Arduino硬件开发入门点亮LED

原文连接:www.shuaihuajun.com/article/ard…git

我如今手里有一套Ruff开发板套件和一套Arduino开发板套件。把Ruff开发套件中的全部传感器用了一个遍以后没玩够,因而开始把玩Arduino。没有对比就没有伤害真的是,虽然我真正接触Arduino时间不长,但就我本身的感受来讲,Arduino不论从程序角度仍是从硬件角度上来说都比Ruff更底层也就更加灵活,从长远来看Arduino更具学习和研究价值。因此果断弃坑Ruff,拥抱Arduino。编程

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

Arduino IDE

arduino ide集成开发环境界面

arduino ide集成开发环境界面

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

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

创意构思

无论作什么事情,在开始以前,都有在脑海里先有一个大体的轮廓,虽然在实际操做过程当中会萌生新的想法,但一开始就有一个想法是好的。函数

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

先在脑子里画一个电路。学习

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

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

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

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

个人学习过程

个人学习过程

组装电路

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

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

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

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

编写程序

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

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灯门串联起来,每个LED发的光都很微弱,将LED灯并联起来每个LED发的光同样并且很亮。

相关文章
相关标签/搜索