Arduino 开发笔记 <持续更新>
本笔记部分内容参考于网络
Arduino是什么?
开始讲之前跟大家普及一个知识点,Arduino是一个意大利品牌。Arduino是一个开放源码电子原型平台,拥有灵活、易用的硬件(各种开发板)和软件(Arduino IDE也就是编程器)。吉安优创电子科技有限公司作为arduino国内为数不多的正版授权公司,坚持正版。打击抵制各类盗版,改版,兼容版的侵权行为,也奉劝广大消费者不要去购买,以免带来不必要的麻烦。Arduino专为设计师,工艺美术人员,业余爱好者,以及对开发互动装置或互动式开发环境感兴趣的人而设的。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器 对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(based on Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
认识Arduino UNO
Arduino UNO是Arduino入门的最佳选择,在编著本书时,其最新的版本为UNO R3,本书大部分内容都是基于Arduino UNO R3写成的。Arduino UNO的详细组成信息如下图所示。
- 电源(Power)
Arduino UNO有三种供电方式:
-
通过USB接口供电,电压为5V;
-
通过DC电源输入接口供电,电压要求7~12V;
-
通过电源接口处5V或者VIN端口供电,5V端口处供电必须为5V,VIN端口处
供电为7~12V。
- 指示灯(LED)
Arduino UNO带有4个LED指示灯,作用分别是:
-
ON,电源指示灯。当Arduino通电时,ON灯会点亮。
-
TX,串口发送指示灯。当使用USB连接到计算机且Arduino向计算机传输数据
时,TX灯会点亮。
-
RX,串口接收指示灯。当使用USB连接到计算机且Arduino接收计算机传来的
数据时,RX灯会点亮。
-
L,可编程控制指示灯。该LED通过特殊电路连接到Arduino的13号引脚,当
13号引脚为高电平或高阻态时,该LED会点亮;当为低电平时,不会点亮。因
此可以通过程序或者外部输入信号来控制该LED的亮灭。
- 复位按键(Reset Button)
按下该按键可以使Arduino重新启动,从头开始运行程序。
- 存储空间(Memory)
Arduino的存储空间即是其主控芯片所集成的存储空间。也可以通过使用外设芯片的方式来扩展Arduino的存储空间。Arduino UNO的存储空间分三种:
-
Flash,容量为32KB。其中0.5KB作为BOOT区用于储存引导程序,实现通过串
口下载程序的功能;另外的31.5KB作为用户储存的空间。相对于现在动辄几百
GB的硬盘,可能觉得32KB太小了,但是在单片机上,32KB已经可以存储很大
的程序了。
-
SRAM,容量为2KB。SRAM相当于计算机的内存,当CPU进行运算时,需要
在其中开辟一定的存储空间。当Arduino断电或复位后,其中的数据都会丢失。
-
EEPROM,容量为1KB。EEPROM的全称为电可擦写的可编程只读存储器,是
一种用户可更改的只读存储器,其特点是在Arduino断电或复位后,其中的数据
不会丢失。
5.输入/输出端口(Input/Output Port)
如图1-20所示,Arduino UNO有14个数字输入/输出端口,6个模拟输入端口。其中一些带有特殊功能,这些端口如下:
-
UART通信,为0(RX)和1(TX)引脚,被用于接收和发送串口数据。这两个
引脚通过连接到ATmega16U2来与计算机进行串口通信。
-
外部中断,为2和3引脚,可以输入外部中断信号。
-
PWM输出,为3、5、6、9、10和11引脚,可用于输出PWM波。
-
SPI通信,为10(SS)、11(MOSI)、12(MISO)和13(SCK)引脚,可用于
SPI通信。
-
TWI通信,为A4(SDA)、A5(SCL)引脚和TWI接口,可用于TWI通信,兼
容IIC通信。
-
AREF,模拟输入参考电压的输入端口。
-
Reset,复位端口。接低电平会使Arduino复位。当复位键被按下时,会使该端口
接到低电平,从而使Arduino复位。
Arduino IDE开发环境
在开始使用Arduino之前,需要在电脑上安装Arduino的集成开发环境(此后简称IDE)。老版本运行速度等更好更快,新版本继续Chrome内核,速度变慢,稳定性差一些,推荐使用老版本,下载地址为:https://www.arduino.cc/en/software/OldSoftwareReleases
双击桌面的软件图标,进入Arduino IDE之后。如下图所示
在工具栏上, Arduino IDE提供了常用功能的快捷键:
相对于IAR、Keil等专业的硬件开发环境,Arduino的开发环境给人以简单明了的感觉,但正是这种简单,省去了很多不常用的功能,使得基础知识不多的使用者更容易上手。
默认安装后会自动安装驱动,连接就可以使用!
Hello_World实验
实验器件
- UNO控制板:1 个
- USB数据线:1 条
实验连线
程序代码
int val;//定义变量val
int ledpin=13;//定义数字接口13
void setup()
{
Serial.begin(9600);//设置波特率为9600,这里要跟软件设置相一致。当接入特定设备(如:蓝牙)时,我们也要跟其他设备的波特率达到一致。
pinMode(ledpin,OUTPUT);//设置数字13 口为输出接口,Arduino 上我们用到的I/O 口都要进行类似这样的定义。
}
void loop()
{
val=Serial.read();//读取PC 机发送给Arduino 的指令或字符,并将该指令或字符赋给val
if(val=='R')//判断接收到的指令或字符是否是“R”。
{ //如果接收到的是“R”字符
digitalWrite(ledpin,HIGH);//点亮数字13 口LED。
delay(500);
digitalWrite(ledpin,LOW);//熄灭数字13 口LED
delay(500);
Serial.println("Hello World!");//显示“Hello World!”字符串
}
}
实验结论
打开串口监视器,在串口监视器内输入“R”。
开发板上的13号LED灯会闪一下;串口监视器会收到来自Arduino的信息Hello World