Arduino小白入门全解,学习笔记
这是我写的第一篇文章,接下来会陆续更新arduino的基础知识与项目实践
Arduino介绍
官网链接 Arduino
Arduino是源自意大利的一个开放源代码的硬件项目平台,该平台包括一块具备简单I/O功能的电路板以及一套程序开发环境软件。Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制电灯、电机和其他各式各样的物理设备;Arduino也可以开发出与PC相连的周边装置,能在运行时与PC上的软件进行通信。Arduino的硬件电路板可以自行焊接组装,也可以购买已经组装好的模块,而程序开发环境的软件则可以从网上免费下载并使用。
引脚介绍
如图
引脚 | 作用 |
---|---|
0和1接口 | 串口输出输入(入门很少用到,如无必要尽量不用这两个接口) |
2到13接口 | 可作为数字输入输出 (输出or输入,可自己定义) 其中带 ~ 符号的可作为模拟输出 |
A0到A5 | 模拟输入 |
GND | 接地线 |
5V | 输出5V电压 |
3.3V | 输出3.3V电压 |
Vin | 外部电源给arduino供电 ,电压要在7~12V之间 |
SCL与SDA | I2c接口,初学者很少用 |
相关概念
- 数字输入输出:只有0和1两种状态,表示开或关(高电平或低电平)
- 模拟输入输出:就是将电信号转化为一系列数值,有一系列的量,如可设置灯泡百分之几的亮度,而不是只有开关。
- 模拟输入:0-5V的电压转换为0-1023的整数来表示
- 模拟输出:PWM (脉宽调制)输出 (0~255)
- 高电平低电平:Arduino一般用的是5V的电压,超过3V就算是高电平,低于1.5V就是低电平啦,一般来说高电平就是5V上下,低电平就是指的0V。
- PWM :(脉宽调制)输出,带PWM功能的引脚标有波浪线 ‘~’。
- 拉高:给Arduino的引脚设定了模式之后,有时并未指定引脚的状态,引脚会悬空,状态忽高忽低,拉高就是说让引脚保持高电平的状态
- 拉低:相反
编程环境
Arduino IDE 下载
安装好如下
注意,上传时要在‘工具’中选择开发板型号与端口(新手易错)
文件 >> 示例中有示例代码
编程语法
打开IDE的时候会发现是下面的格式:以下两个是必须的结构
voidsetup()
{ 启动函数 初始化代码、IO口定义代码,只运行一次的代码
}
voidloop()
``{ 循环执行函数 运行顺序是从上到下,一直重复运行的代码
}
pinMode(端口号,OUTPUT / INPUT / INPUT_PULLUP) // 设置引脚输入输出模式
//OUTOUT : 输出,INPUT : 输入,INPUT_PULLUP输入上拉模式
digitalWrite(端口号,HIGH / LOW) // 设置引脚的输出电平
// HIGH :高电平,LOW:低电平
digitalRead(端口号) //读取外部输入的数字信号
// 1(HIGH)为高电平,0(LOW)为低电平
analogReference(type)
//作用是配置模拟输入引脚的基准电压(即输入范围的最大值),它是一个无返回值的函数,只有一个参数type,type的选项及具体含义如下:
//DEFAULT:默认5V或者3.3V为基准电压。
//INTERANL:低电压模式,使用片内基准电压源
//INTERNAL1V1:低电压模式,以1.1V为基准电压
//INTERNAL2V56:低电压模式,以2.56V为基准电压。
//EXTERNAL:扩展接口,以AREF引脚(0~5V)的电压为基准电压。
analogWrite(端口号,value)
//模拟输出定义,无返回值函数,有两个参数pin和value,参数pin表示输出PWM的引脚,这里只能选择函数支持的引脚,参数value表示PWM占空比,其范围在0~255,对应占空比为0~100%,简单说就是输出百分之几的电压
delay( 数字 )
// 毫秒为单位的延时函数
delayMicroseconds(数字)
//延时函数,可以产生更短时间的延时,参数是延时的长度,单位为微秒。
Serial.begin()
//用于设置串口的波特率,波特率是指每秒传输的比特数,除以8就可以得到每秒传输的字节数,一般用
//300 600 1200 2400 4800 9600 14400 19200 28800 38400 57600 115200。
Serial.available()
//用于判断串口是否接受到数据,该函数返回值为int型,不带参数。
Serial.read()
//用于将串口数据读入,该函数返回值是int型,不带参数。
Serial.print()
//用于从串口输出数据,数据可以是变量,也可以是字符串。
Serial.printIn()
//比Serial.print()多了回车换行功能,自动回车
进阶
中断函数
单片机的中断可以描述为:由于某一随机事件的发生,单片机暂停在原程序的运行,转而执行另一个程序(随机事件),处理完毕之后又自动回到断点处继续执行,其中, 中断源、主程序、中断服务程序简述如下:
中断源:引起中断的原因,或能够发生中断请求的来源。
主程序:单片机现在运行的程序。
中断服务程序:处理中断请求的程序。
interrupts()和noInterrupts()
在Arduino中,interrupts函数和noInterrupts函数分别负责打开与关闭中断,这两个函数均为无返回值的函数,无参数。
attachInterrrupt(interrupt,function,mode)
该函数用于设置外部中断,有三个参数,分别表示中断源、中断处理函数和触发模式,它们的具体含义如下:
中断源:可选0、1,对应2或3号数字引脚。
中断处理函数:指定中断的处理函数,是一段程序,当中断发生时执行该子程序部分,其中参数为函数的指针。
触发模式:有四种类型-LOW(低电平触发)、CHANGE(跳变时触发)、RISING(上升沿触发)、FALLING(下降沿触发)。
detachInterrupt(interrupt)用于取消中断。
导入函数库
‘管理库’中可搜索库文件,若没有需要外部导入
方法一:下载库的ZIP文件,直接在Arduino IDE中导入,导入按钮如图
方法二:解压库的zip文件,将文件夹放置于 文档/Arduino/libraries 文件夹内
最后
持续更新arduino 树莓派 python 等等
接到有帮助的话 求点赞👍 求关注❤️ 求分享👥
有问题可以评论
点关注,不迷路
如果有任何错误,任何建议,请批评指教,不胜感激 !