网站注册空间,国外音乐网站设计,百度域名,阜新市项目建设网站目录 1 编程软件下载2 代码结构3 IO引脚控制3.1 引脚初始化3.2 引脚使用数字量输出数字量输入模拟量输出模拟量输入 4 串口串口初始化串口输出串口输入 5 外部中断6 函数6.1 映射区间函数6.2 延时函数 总结 1 编程软件下载
官网链接#xff1a;https://www.arduino.cc/ 下载链… 目录 1 编程软件下载2 代码结构3 IO引脚控制3.1 引脚初始化3.2 引脚使用数字量输出数字量输入模拟量输出模拟量输入 4 串口串口初始化串口输出串口输入 5 外部中断6 函数6.1 映射区间函数6.2 延时函数 总结 1 编程软件下载
官网链接https://www.arduino.cc/ 下载链接https://www.arduino.cc/en/software 软件下载过程中仅需要登陆Arduino的官网即可并不需要注册账号。根据自己电脑情况按下图所示去选择下载文件。下载过程中选择仅下载或者捐款。 安装包下载完成后无需激活等操作可以直接打开使用第一次打开时启动时间较长耐心等待即可。 软件打开后可以在首选项中更改系统语言为中文简体软件界面过于简单此处不在详细描述自行探索。
2 代码结构
Arduino的编程时必然会存在以下两个函数。具体详细功能详见下述代码。
void setup() {// put your setup code here, to run once:// 该函数的代码只在上电后运行一次这里一般写初始化代码。
}void loop() {// put your main code here, to run repeatedly:// 这个函数相当于大循环里面的代码会循环执行。
}3 IO引脚控制
3.1 引脚初始化
函数原型
pinMode(uint8_t pin, uint8_t mode);使用示例
pinMode(2 , OUTPUT);参数说明示例uint8_t pin引脚号0、1、2……uint8_t mode引脚模式见下表3.2
表3.2
模式参数说明OUTPUT输出模式INPUT输入模式INPUT_PULLUP上拉输入 当IO模式设置为模拟量/数字量输入模式模拟量/数字量输出时均可分别设置为OUTPUT 或INPUT,并无其它代码区分。 3.2 引脚使用
数字量输出
函数原型
void digitalWrite(uint8_t pin, uint8_t val);使用示例
digitalWrite(1,HIGH);
digitalWrite(1,LOW); 数字量输入
函数原型
int digitalRead(uint8_t pin); // 返回值HIGHLOW使用示例
int a;
a digitalRead(5);模拟量输出
函数原型 参数val设定范围0-255
void analogWrite(uint8_t pin, int val);使用示例
analogeWrite(2,125); // 设定值0-255模拟量输入
函数原型 返回值范围0-1023
int analogRead(uint8_t pin);使用示例
int val;
val analogRead(3); // 设定值0-255注 带~ 标识的引脚才可以做模拟输出
4 串口
串口初始化
Serial.begin(9600); // 串口初始化参数为波特率串口输出
Serial.println(123); //自带回车效果
Serial.print(456464);
Serial.print(55BIN); // 二进制输出55这个数值 参数还可以是DEC十进制HEX十六进制串口输入
读取一个字节没有数据时返回的是-1 a Serial.read();检测串口数据
int a;
a Serial.available(); // 检测控制器是否接收到数据返回值为等待读取的数据字节数。没有数据就返回05 外部中断
函数原型
void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode);参数说明: 1、uint8_t interruptNum中断号。 UNO 版本只有两个外部中断。
型号中断0中断1UNOpin 2pin 3
2、userFunc中断处理函数该函数属于自定义函数定义时不能有返回值和参数。 3、mode 中断模式。
参数模式LOW低电平触发CHANGE电平变化触发RISING上升沿触发FALLING下降沿触发
函数示例
void setup() {Serial.begin(9600);attachInterrupt(0,set,LOW); // 写在初始化函数中
}
// 中断处理函数
void set()
{Serial.print(564);
}6 函数
下面介绍一些可以直接调用的内部函数不用加头文件。
6.1 映射区间函数
函数原型
long map(long x, long in_min, long in_max, long out_min, long out_max)参数映射值映射的旧区间映射的新区间 返回值为映射到新区间的值。
// 映射值映射的旧区间映射的区间。返回值为新映射值。
y map(val,0,1023,0,255);6.2 延时函数
delay(1000); // 单位ms
delayMicroseconds(10); // 单位us待续……
总结
本人在学习过51单片机和STM32后偶尔想到接触一下Arduino开发板学习时间并不长仅两天。现根据学习感受对51/32和Arduino做一些比较。
类别Arduino51/32单片机开发软件官网直接下载无需激活安装可用官网下载需要激活编程语言C/C语言C语言编程特点大量的可用开源库文件基础库无需包含可直接使用需要自己添加使用的库文件并且需要自己include使用特点关于引脚串口PWMAD/DA等资源可以直接调用函数使用无需配置需要配置外设工作方式甚至时钟使用特点关于常用的一些模块器件通过引入库文件后直接调用函数使用需要写时序和控制方式读写命令数据函数开发板特点引脚数量较少根据不同型号选择不同引脚功数量的器件