首页 > 评测 > 创客入门首选板——Arduino UNO评测

创客入门首选板——Arduino UNO评测

创客   opensource   Arduino   UNO   ATmega328P   
  • 作者:seesea
  • 来源:21ic
  • [导读]
  • Arduino (美国境外称 Genuino)是目前非常流行的创客工具,它封闭了底层硬件,有丰富库提供使用,让使用者专注于功能的实现,达到简单快速的开发,即使是非专业的人员也可以很快上手。

上面的 analogWrite() 只能固定频率输出可调整占空比的方波,另外一个用于播放简单音乐使用的 tone() 函数则反过来固定 50% 占空比地输出可调整频率的方波,如下输出中音 C 的音调,使用取整后的频率 131:

14.jpg
15.jpg

ADC

UNO 提供了六个 ADC 引脚,对于使用一些模拟输出的传感器如声光温湿磁等模拟输出的传感器非常方便,如下使用电位器来模拟模拟输出的传感器(是不是有点绕口 :D,一个模拟是动词,一个模拟是名词):

16.jpg

17.jpg

中断

UNO 有定时器/计数器中断,串口中断及外部中断。这里着重于外部中断。

UNO 有两个外部中断,分别在 2 和 3 号数字引脚上。如下示例,测试时通过引脚 2 在高低电平间切换来触发中断:

19.jpg

I2C

除了串口,模块之间很常用的接口是 I2C 接口,UNO 已经准备好了:

这里使用倾角传感器 ADXL345 模块来做测试,通过倾斜 x 和 y 方向,可以看到数据的变化:

21.jpg
22.jpg

SPI

同样的,模块之间另一个常用接口是 SPI 接口,UNO 也已经准备好了:

这里拿一个现成的小作品来示例,如下 328P(下载好程序的 UNO 上取下的芯片) 通过 I2C 读取 ADXL345 的数据,通过 SPI 接口的 NRF24L01 发送数据。另外一个 UNO 则通过 SPI 连接另一个 NRF 模块来接收前者发送的数据。从而实现一个重力遥控装置。

23.jpg

22.jpg

使用 ICSP 接口下载程序:

Arduino 中 328P 有预先写好的 bootloader,这样使得我们可以直接使用串口下载程序,这给大家做实验带来了便利,但这样会导致在启动时要先运行 bootloader,并且串口有一些时间在等待上位机的程序下载,另外就是 bootloader 也占用了 0.5k 的存储空间。如果你的程序要放到产品中,或上电就要串口通信,或是程序太大就差一点点空间实在没法优化,这时候可以考虑通过 ICSP 接口使用 ISP 方式下载程序,覆盖掉bootloader 使用全部的存储空间。这样做的结果是之后再下载程序也必须使用 ISP下载。ISP 方式需要特殊的编程器,这里示范使用 USBasp 来下载,也可以通过一个 Arduino 板子来做 ISP 下载器,可以参考官方的详细教程:https://www.arduino.cc/en/Tutorial/ArduinoISP。

首先要选择使用的下载器:

24.jpg

然后选择菜单“使用编程器上传”,静待成功。完成后有输出一些信息,如下黄框是提示 USBasp 需要升级固件的,反正还能用,不用理会它:

25.jpg

接线图:

26.jpg

重烧bootloader:

上述覆盖了 bootloader,如果要恢复原来的 Arduino 使用 USB 线自动下载的功能则需要恢复 bootloader,这时候同样需要 ISP 编程器,连接方式同上,于 IDE 中选择相应的板子型号后,使用 Burn Bootloader 菜单进行烧写:

27.jpg

总结

1. Arduino UNO 板上资源丰富,可以满足大部分创客制作需求

2. Arduino UNO 接口丰富,可以与大部分模块、传感器连接

3. Arduino UNO 推出较早,很多的扩展板均以此为标准

4. Arduino UNO使用的最多,Arduino 示例基本上使用 UNO 进行教学

5. Arduino UNO 价格较低

综上,Arduino UNO 是创客入门的不二之选。

参考资料

1. Atmega328p 数据表

2. UNO 电路原理图

3. Arduino IDE 下载

4. Arduino 语言参考

 

本文系21ic原创,未经许可禁止转载

  • 本文系21ic原创,未经许可禁止转载!

网友评论