转载请注明:@小五义http://www.cnblogs.com/xiaowuyi
欢迎加入讨论群 64770604
在搭建好arduino开发环境(http://www.cnblogs.com/xiaowuyi/p/3190201.html或者http://wikicode.net/?p=152)后,就可以进行入门学习了。
一、本次实验所用到的器材为:
1、arduino uno R3无特殊注明,本学习笔记全部使用此板。
2、面包板(1个SYB-120):这里简单介绍一下面包板,以后的笔记中不再介绍。
面包板又称“集成电路实验板“,就是一种插件板,此板上具有若干小型插座(孔)。在进行电路实验时,可以根据电路连接要求,在相应孔内插入电子元器件的引脚以及导线等,使其与孔内弹性接触簧片接触,由此连接成所需的实验电路。
3、LED:LED两个针脚有一长一短,短的是连接GND,长的是连接正极。
4、几根导线:确切的说只用到了两根。
在本实验中,我使用了arduino板子上的数字5号端口,其实该实验在arduino程序的实例中存在,名字叫“blink”,只是在blink实例中使用的是13号端口。连接图如下:
二、实验
1、blink代码实验
点击file菜单下EXAMPLES--011.Basics--Blink,就可以看到Blink程序已经加载到程序编辑区。因为使用的端口不同,略加修改如下:
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 5; #这里将原来的13改为5,当然你也可以改为其实端口,只要和led正极连接端口相一致即可。 // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
点击“校验”按钮实现程序的编译,等待一会儿后状态栏会提示Done compiling(程序编译完成),然后点击upload后,会发现led灯开始每一秒闪烁一次。
2、间隔时间不等的闪烁
想要让led闪烁的时间间隔不等,会出现一会亮的快,一会亮的慢的情况,这里我们把代码做一修改就可实现。
第一修改:
int led = 5; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); delay(200); digitalWrite(led, LOW); delay(200); digitalWrite(led,HIGH); delay(2000); digitalWrite(led, LOW); delay(2000); }
该代码运行后,led先是0.2秒闪一下,然后再2秒闪一下。
进一步修改,加入了for循环,主要是为了练习一下基本语句:
int led = 5; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { for (int i=0;i<5;i=i+1) { digitalWrite(led, HIGH); delay(200); digitalWrite(led, LOW); delay(200); } digitalWrite(led,HIGH); delay(2000); digitalWrite(led, LOW); delay(2000); }
在这一代码中,led后首先间隔0.2秒连续闪5次,然后间隔2秒闪一次。upload后,会看到具体的效果。
推荐购买网址:https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-15820725129.16.AtgoEm&id=545093340395