`
xiaoheliushuiya
  • 浏览: 404158 次
文章分类
社区版块
存档分类
最新评论

Arduino Hello 2

 
阅读更多
准备
我没有买原板,从授权供应商处购买兼容板,中国大陆地区的授权供应商请访问 http://arduino.cc/en/Main/Buy 页面,搜索 China。
我购买的是Arduino Ethernet兼容板,原板参见这里: http://arduino.cc/en/Main/ArduinoBoardEthernet 兼容板有一定的改动。
为了将电脑和原板和兼容板连在一起,不仅需要连接线缆,我购买的兼容板使用USB线连接,还需要下载相应的驱动程序,驱动程序依赖兼容板会有所不同,请联系供应商,同时要注意Windows、Mac OS X和Linux不同操作系统需要不同的驱动程序。
为了编写程序,还需要下载集成开发环境Arduino IDE,下载地址在 http://arduino.cc/en/Main/Software ,注意Windows、Mac OS X和Linux需要下载不同的程序。
Arduino使用类似于C语言的编程语言,需要有一定的C语言基础,详细的语法参考请参见 http://arduino.cc/en/Reference/HomePage
本实验需要借助于带有测量频率功能的万用表。
转贴请注明原发位置: http://aiyingjian.com/forum.php?mod=viewthread&tid=3

Arduino Hello 2 说明
原板的情况不清楚。我购买的兼容板上一共设计了14路数字端口,编号是0~13,都可以用于输入和输出,借助于带有测量频率功能的万用表可以测试其他的端口。

Arduino Hello 2 程序
int pin = 12;
void setup()
{
  pinMode(pin, OUTPUT);
}
void loop()
{
  digitalWrite(pin, HIGH);
  delay(50);
  digitalWrite(pin, LOW);
  delay(50);
}

Arduino Hello 2 程序结构
int pin = 12;
声明一个变量pin,值为12,用于代表引脚12,当然也可以直接使用数值。
pinMode(pin, OUTPUT);
设定引脚pin的模式为输出模式,Arduino中同一个引脚可以作为输出使用,也可以作为输入使用,所以需要先设定模式。
digitalWrite(pin, HIGH);
向引脚pin输出一个高电平。
delay(50);
延迟50毫秒。delay是延迟函数。
digitalWrite(pin, LOW);
向引脚pin输出一个低电平。
delay(50);
延迟50毫秒。

完成后单击“文件”菜单,单击“下载”菜单项,Arduino IDE将自动编译程序,然后下载到Arduino板上。使用万用表的测量频率功能测试GND引脚和12号引脚,可以看到频率值为9.994Hz,没有达到期望的10Hz,这是因为程序本身需要一定的执行时间。调整不同的延迟值可得如下数据。

两个delay函数的参数(单位:毫秒) 频率(单位:Hz) 每个loop时间 去掉delay函数指定的时间
50 9.994 100060微秒 60微秒
49 10.19 98135微秒 135微秒
5 99.80 10020微秒 20微秒
4 124.7 8019微秒 19微秒
3 166.1 6020微秒 20微秒
2 248.8 4019微秒 19微秒
1 495.8 2016微秒 16微秒
0 62.10K 16.103微秒 16.103微秒
无函数 115.2K 8.680微秒 8.680微秒
通过以上数据可知,digitalWrite执行约需4微秒,delay不包括其中的延时执行约需4微秒。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics