加载中
加载中
表情图片
评为精选
鼓励
加载中...
分享
加载中...
文件下载
加载中...
修改排序
加载中...
转帖:跟珜羽一起学Arduino NO.2.1 修改点灯程序
kc20382013/09/05电子技术 IP:广西
跟珜羽一起学Arduino NO.2.1 修改点灯程序

http://www.arduino.cn/thread-1066-1-1.html
上面
跟珜羽一起学Arduino NO.2 点亮你的第一个灯
(
http://www.arduino.cn/thread-1065-1-1.html
)
是一个暴力的学习过程,知其然不知其所以然,所以修改代码后,属于自己的代码才是算是学会了。


修改代码前还是先介绍下IDE的界面。
001.jpg



从上而下分别是:
红色区域是标题栏,显示的是现在代码的文件名,“|”跟随的是IDE的版本号。
黄色区域是菜单栏,这个里面的东西在具体用的时候具体说下里面的内容。
白色区域依次是编译,下载(包含编译过程),新建,打开,保存。最右边的是串口调试器,用法在以后会说到。
黑色区域是文件标签栏,新建多个程序后会在这里显示不同的文件标签。
绿色区域是代码区,编写代码就在这里面进行。
紫色区域是编译,下载状态指示。(例如编译成功,编译失败,下载中,下载成功,下载失败)
灰色区域是编译,下载进度的记录以及编译错误的提示。
最后褐色区域就是显示板子的类型以及连接的端口号。

读写
想修改代码,必须要读懂代码之前是干啥的,怎么工作的,编写的时候要遵守什么样的规则,这样改出来的代码才能用。
SO 开始读代码。
先加载例程Blinks。看代码。
C语言中/**/ 以及//表示的是注释。
/ /     注释这一行//后面的文字
/**/   注释包括在中间的一段话
英文的注释不看也罢。去掉注释后代码就变成了:
void setup() {              
  pinMode(13, OUTPUT);  
}
void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}
Arduino的程序主要包括两个部分。
void setup() {}
void loop() {}
其他的代码都是在{}花括弧里面填充的。
Setup里面放的是初始化程序。
Loop实际上是循环体,会一遍又一遍的执行里面的代码直到死循环或者停电。
两个框架缺一不可。
就像吃火锅一样,先要将水装进锅里,然后打开煤气开关,点火。这些个动作就是初始化只要做一次就够了。
然后就开始添菜,熟了吃了,再添。一直循环。直到你吃饱了不想再吃了(完成了你的操作要求)或者煤气烧完了(没电了)或者有事走开(情人约会)。好吧。。。我会承认我是个吃货么?
接着语句分析:
  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
有点基础的很容易看出是三个函数(带参数的)
pinMode(pin, mode)//设置指定引脚为输入或者输出模式
pin:您要设置其模式的引脚编号(数值范围0~13),LED的引脚就在13号。
Mode:数值类型 INPUT OUTPUT 设置输入或输出模式
(关于输入输出模式在以后的章节将会详细解释,现在你只要知道要想驱动外部电路,那肯定是要用输出模式啦)

digitalWrite(pin, value)// 设置指定引脚输出高电平或者低电平
pin:您要设置其模式的引脚编号(数值范围0~13),LED的引脚就在13号。
value: 数值类型HIGH LOW 设置高电平5V(3.3V板子为输出3.3V)输出活低电平输出(0V

以上两个函数的pin值可以用变量传递。(先别问什么是变量。到了自然会讲)

delay(ms)//延时指定毫秒数
ms:数值表示范围0~4294967295,表示延时多少ms1s=1000ms 1=1000毫秒)

那么,如果我想加快延时,1秒闪烁一次要怎么改?
对,就是将delay(1000)改成delay(500)
002.jpg

点下载。。。。。。

好了, 你可以看到灯闪烁的频率加快了。。。

到你们了。。。
修改你们的板子为亮250ms,灭750ms。~展现你们技术的时候到了。。。
思考题:如何亮10ms990ms  20ms980ms ~~ 980ms20ms  990ms10ms
提示:

1

    
记得保存你们修改后的代码。养成备份的好习惯。

1.0保存的文件类型是*.ino哦,看到这个就要知道是arduino的程序了。

在以前的版本*.pde格式。


2

  
avrdude: stk500_getsync(): not in sync: resp=0x00


   大家碰到这个错误可以试着按下板子上USB旁边红色的按键
来自:电子信息 / 电子技术
0
新版本公告
~~空空如也

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
kc2038
学者 机友 笔友
文章
37
回复
268
学术分
1
2009/01/06注册,7年0个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的