Arduino入门笔记(3):单LED闪烁

转载请注明:@小五义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

 

 

posted @ 2013-09-24 22:23  小五义  阅读(18122)  评论(0编辑  收藏  举报