两侧同时换到之前的修订记录前一修订版 | |
learing:examples:blink [2017/10/05 03:21] – 弘毅 | learing:examples:blink [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 |
---|
| ====== Blink(单LED闪烁)====== |
| |
| |
| <WRAP left round info 65%> |
| 这个例程显示了你可以用OCROBOT各款控制器做到的最简单的事,单LED闪烁(Blink)。 |
| </WRAP> |
| |
| <WRAP left round box 100%> |
| =====ALPHA MEGA328-U核心===== |
| |
| ==== 硬件 ==== |
| * [[ocrobot:alpha:parallelexpansion:index|ALPHA 并行扩展板]] |
| * [[ocrobot:alpha:mega328-u:main|ALPHA MEGA328-U]] |
| * [[ocrobot:alpha:11led:index|ALPHA 11 LED模块]] |
| |
| ==== 搭建电路 ==== |
| |
| - ALPHA 11 LED模块插入并行扩展版1号槽位。 |
| - ALPHA MEGA328-U模块插入并行扩展板2号槽位。 |
| - USB线连接计算机与ALPHA MEGA328-U。 |
| |
| ==== 代码 ==== |
| <code cpp> |
| |
| /* |
| 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秒 |
| } |
| |
| </code> |
| |
| <WRAP left round tip 100%> |
| 这个例子中我们使用了3个新的函数:[[reference:language:pinmode|pinMode()]]、[[reference:language:digitalwrite|digitalWrite()]]、[[reference:language:delay|delay()]]。 |
| |
| [[reference:language:pinmode|pinMode()]]在程序中定义了led管脚输出状态。[[reference:language:digitalwrite|digitalWrite()]]使led管脚输出高电平或者低电平。[[reference:language:delay|delay()]]产生延时。 |
| |
| 通过[[reference:language:digitalwrite|digitalWrite()]]与[[reference:language:delay|delay()]]配合我们可以产生各种不同led亮灭的效果。 |
| </WRAP> |
| <WRAP left round help 100%> |
| 如果让led亮三秒、灭1秒、再亮两秒、灭3秒应该怎样实现? |
| </WRAP> |
| |
| </WRAP> |
| |
| <WRAP left round box 100%> |
| =====ALPHA 8F328D-U核心===== |
| |
| ==== 硬件 ==== |
| * [[ocrobot:alpha:parallelexpansion:index|ALPHA 并行扩展板]] |
| * [[ocrobot:alpha:8f328d-u:index|ALPHA 8F328D-U]] |
| * [[ocrobot:alpha:11led:index|ALPHA 11LED模块]] |
| |
| ==== 搭建电路 ==== |
| |
| - ALPHA 11LED模块插入并行扩展版1号槽位。 |
| - ALPHA 8F328D-U模块插入并行扩展板2号槽位。 |
| - USB线连接计算机与ALPHA 8F328D-U。 |
| |
| ==== 代码 ==== |
| <code cpp> |
| |
| /* |
| 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 |
| } |
| |
| </code> |
| |
| <WRAP left round tip 100%> |
| 这个例子中我们使用了3个新的函数:[[reference:language:pinmode|pinMode()]]、[[reference:language:digitalwrite|digitalWrite()]]、[[reference:language:delay|delay()]]。 |
| |
| [[reference:language:pinmode|pinMode()]]在程序中定义了led管脚输出状态。[[reference:language:digitalwrite|digitalWrite()]]使led管脚输出高电平或者低电平。[[reference:language:delay|delay()]]产生延时。 |
| |
| 通过[[reference:language:digitalwrite|digitalWrite()]]与[[reference:language:delay|delay()]]配合我们可以产生各种不同led亮灭的效果。 |
| </WRAP> |
| <WRAP left round help 100%> |
| 如果让led亮三秒、灭1秒、再亮两秒、灭3秒应该怎样实现? |
| </WRAP> |
| |
| </WRAP> |
| |
| <WRAP left round box 100%> |
| =====MangoII===== |
| ==== 硬件 ==== |
| |
| * OCROBOT控制器 |
| * LED |
| * 220欧姆到1K欧姆的电阻 |
| * 导线若干 |
| |
| ==== 搭建电路 ==== |
| |
| 把电阻串联到13号引脚。连接LED的长脚(阳极)到电阻另一端。连接LED的短脚(阴极)到GND脚。 |
| |
| 部分控制器的13号脚已经连接了一个LED,如果你没连接别的外围设备,应该看得到那个LED闪烁。 |
| |
| 按照图纸搭建好电路后,把你的控制器连接电脑USB口,打开IDE,输入下面的代码。 |
| |
| |
| ==== 代码==== |
| |
| |
| |
| 下面的程序中,你先要设置13号引脚为输出脚 |
| <code cpp> |
| pinMode(13, OUTPUT); |
| </code> |
| |
| 在loop中 点亮LED |
| <code cpp> |
| digitalWrite(13, HIGH); |
| </code> |
| |
| 给13号引脚高电平(3-5V电压),使得LED引脚之间有了电压,灯就亮了。你可以熄灭它 |
| |
| <code cpp> |
| digitalWrite(13, LOW); |
| </code> |
| |
| 然后使13号引脚电压归零,熄灭LED。在这之间,人需要足够的时间来观察亮灭变化,所以delay()命令让控制器停止1000毫秒或者说一秒,当使用delay()命令的时候,这段时间不会有任何事情发生。理解了这些之后,你可以查看 不用delay来闪烁LED 例程来学习怎样在执行其他任务的时候创建delay。 |
| |
| 当理解这个过程之后,你可以看看"[[learing:exemples:digitalreadserial|读取开关状态]]"的例程学习怎么读取连接在控制器的开关状态。 |
| |
| <code cpp> |
| |
| /* |
| 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 |
| } |
| |
| </code> |
| |
| </WRAP> |