用户工具

站点工具


learing:examples:blink

差别

这里会显示出您选择的修订版和当前版本之间的差别。


前一修订版
learing:examples:blink [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 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>