用户工具

站点工具


learing:examples:blink

Blink(单LED闪烁)

这个例程显示了你可以用OCROBOT各款控制器做到的最简单的事,单LED闪烁(Blink)。

ALPHA MEGA328-U核心

硬件

搭建电路

  1. ALPHA 11 LED模块插入并行扩展版1号槽位。
  2. ALPHA MEGA328-U模块插入并行扩展板2号槽位。
  3. USB线连接计算机与ALPHA MEGA328-U。

代码

/*
 Blink
 让LED亮一秒,灭一秒,重复
*/
 
// 我们在2号脚上连了一个LED.定义一个名为led的变量,赋值为2(也就是2号管脚)。
int led = 2;
 
// 按下reset键之后,setup中的代码执行一次:
void setup() {                
  // 设置数字输出.
  pinMode(led, OUTPUT);     
}
 
// loop中代码一直重复执行:
void loop() {
  digitalWrite(led, HIGH);   // 点亮LED (HIGH 意思是高电平)
  delay(1000);               // 等待1秒
  digitalWrite(led, LOW);    // 熄灭LED(LOW 意思是低电平)
  delay(1000);               // 等待1秒
}

这个例子中我们使用了3个新的函数:pinMode()digitalWrite()delay()

pinMode()在程序中定义了led管脚输出状态。digitalWrite()使led管脚输出高电平或者低电平。delay()产生延时。

通过digitalWrite()delay()配合我们可以产生各种不同led亮灭的效果。

如果让led亮三秒、灭1秒、再亮两秒、灭3秒应该怎样实现?

ALPHA 8F328D-U核心

硬件

搭建电路

  1. ALPHA 11LED模块插入并行扩展版1号槽位。
  2. ALPHA 8F328D-U模块插入并行扩展板2号槽位。
  3. USB线连接计算机与ALPHA 8F328D-U。

代码

/*
 Blink
 让LED亮一秒,灭一秒,重复
*/
 
// 我们在2号脚上连了一个LED.定义一个名为led的变量,赋值为2(也就是2号管脚)。
int led = 2;
 
// 按下reset键之后,设置里的代码执行一次:
void setup() {                
  // 设置数字输出.
  pinMode(led, OUTPUT);     
}
 
// loop里代码一直重复执行:
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
}

这个例子中我们使用了3个新的函数:pinMode()digitalWrite()delay()

pinMode()在程序中定义了led管脚输出状态。digitalWrite()使led管脚输出高电平或者低电平。delay()产生延时。

通过digitalWrite()delay()配合我们可以产生各种不同led亮灭的效果。

如果让led亮三秒、灭1秒、再亮两秒、灭3秒应该怎样实现?

MangoII

硬件

  • OCROBOT控制器
  • LED
  • 220欧姆到1K欧姆的电阻
  • 导线若干

搭建电路

把电阻串联到13号引脚。连接LED的长脚(阳极)到电阻另一端。连接LED的短脚(阴极)到GND脚。

部分控制器的13号脚已经连接了一个LED,如果你没连接别的外围设备,应该看得到那个LED闪烁。

按照图纸搭建好电路后,把你的控制器连接电脑USB口,打开IDE,输入下面的代码。

代码

下面的程序中,你先要设置13号引脚为输出脚

pinMode(13, OUTPUT);    

在loop中 点亮LED

digitalWrite(13, HIGH);

给13号引脚高电平(3-5V电压),使得LED引脚之间有了电压,灯就亮了。你可以熄灭它

digitalWrite(13, LOW);

然后使13号引脚电压归零,熄灭LED。在这之间,人需要足够的时间来观察亮灭变化,所以delay()命令让控制器停止1000毫秒或者说一秒,当使用delay()命令的时候,这段时间不会有任何事情发生。理解了这些之后,你可以查看 不用delay来闪烁LED 例程来学习怎样在执行其他任务的时候创建delay。

当理解这个过程之后,你可以看看“读取开关状态“的例程学习怎么读取连接在控制器的开关状态。

/*
  Blink
 
 让LED亮一秒,灭一秒,重复
 
 */
 
// 13号脚上连了一个LED.
// 给它命名:
int led = 13;
 
// 按下reset键之后,设置里的代码执行一次:
void setup() {                
  // 设置数字输出.
  pinMode(led, OUTPUT);     
}
 
// loop里代码一直重复执行:
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
}
learing/examples/blink.txt · 最后更改: 2017/10/05 03:21 (外部编辑)