Arduino学习笔记2023年11月30日

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); // 返回值:HIGH,LOW

使用示例:

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(55,BIN); // 	二进制输出55这个数值 参数还可以是DEC十进制,HEX十六进制

串口输入

读取一个字节,没有数据时,返回的是-1;

  a = Serial.read();

检测串口数据

int a;
a = Serial.available(); // 检测控制器是否接收到数据,返回值为等待读取的数据字节数。没有数据就返回0

5 外部中断

函数原型

void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode);

参数说明:
1、uint8_t interruptNum:中断号。
UNO 版本只有两个外部中断。

型号中断0中断1
UNOpin 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
使用特点关于引脚,串口,PWM,AD/DA等资源可以直接调用函数使用,无需配置需要配置外设工作方式,甚至时钟
使用特点关于常用的一些模块器件通过引入库文件后直接调用函数使用需要写时序和控制方式,读写命令数据函数
开发板特点引脚数量较少根据不同型号选择不同引脚功数量的器件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驽马同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值