Arduino基础学习笔记
Ardunio概述
Ardunio是一个易于硬件和软件开发的开源电子平台,它可以接收来自多种传感器的输入数据来感知环境,并控制LED,电机等多种设备的运转。你可以使用Java,C++,Python等Ardunio支持的编程语言来控制Ardunio的运行。
基本概念
- 数字输入/输出:向开发板输入离散值0,1信号叫数字数入。从开发板输出离散值0,1信号叫数字输出。TX->1 RX<-0 与电脑传输数据使用。
- 模拟输入/输出:向开发板输入连续电信号叫模拟输入。从开发板输出连续电信号叫模拟输出。
- PWM概念:PWM指脉冲宽度调制,通过对脉冲(在极短时间内不断变化的数字信号)的宽度进行调制,来等效地获得所需要波形,是一种常用的数字信号转换为模拟信号的方式。例如:
当LED引脚电平为以下波形时
高电平铺满整个PWM时钟周期,设此时LED亮度为100%。若为以下波形时
则此时LED亮度为50%。设时间1为一个PWM时钟周期。在该时钟周期内,占空比(高电平保持的时间与PWM的时钟周期的总时间之比)为0.5,此时占空比可以看作LED亮度。
- 数模转换:把数字信号转换为模拟信号或者把模拟信号转换为数字信号。
常用组件
- 上拉电阻:上拉电阻的作用是将一个未知的电平拉高到稳定的高电平状态。在Ardunio中数字引脚和模拟引脚都内置了上拉电阻,可以使用代码激活。此外,自己配置的上拉电阻一般为10KΩ。
R1为上拉电阻,若开关S1断开,Input通过两个电阻接+5V,为稳定高电平。若开关S1闭合,Input接地,为稳定低电平。若没有上拉电阻R1,则开关断开时Input浮空,不确定其电平,产生电子噪声。
- 下拉电阻:下拉电阻的作用是将一个未知的电平拉低到稳定的低电平状态。
R1为下拉电阻,若开关S1断开,Input通过两个电阻接地,为稳定低电平。若开关S1闭合,Input与+5V相连,为稳定高电平。若没有下拉电阻R1,则开关断开时Input浮空,不确定其电平,产生电子噪声。
Arduino程序结构
// 给开发板通电或者按下复位按钮后只执行一次
void setup () {}
// 反复执行
void loop () {}
数字电路API
- 设置数字引脚输入输出模式
void pinMode(param1, param2);
param1:引脚编号
param2:模式,可选关键字INPUT(输入)或OUTPUT(输出)
例如pinMode(2, OUTPUT)
为设置2号引脚为输出模式
Ardunio引脚开机默认为INPUT模式。当引脚设定为OUTPUT模式时,引脚为低阻抗状态,Ardunio可以向其它电路元器件提供电流,若元器件驱动电流超过40mA,则需要其他辅助元器件。当引脚设置为INPUT模式时,此时引脚处于高阻抗状态,等同于在引脚前串联一个100MΩ的电阻,所以只需要很小的电流就能改变引脚电平状态。当引脚设置为INPUT_PULLUP模式,则启用引脚内部上拉电阻,相当于引脚通过上拉电阻连接到高电平上。
- 向引脚写数字信号
void digitalWrite(param1, param2);
param1:引脚编号
param2:要输出的数字信号,可选关键字HIGH(高电平5V)或LOW(低电平0V/GND)
例如digitalWrite(2, HIGH)
为设置2号引脚上的电平为高电平,该函数需要先设置pinMode(2, OUTPUT)
,即设置2号引脚为输出模式。
- 从数字引脚中读取数字信号
HIGH/LOW digitalRead(param1);
param1:引脚编号
return:返回HIGH表示此时引脚为高电平,返回LOW表示此时引脚为低电平
例如digitalRead(2) == LOW
为判断此时2号引脚是否为低电平
- 设置延迟
void delay(param1);
param1:延迟时间(ms)
例如delay(1000)
为等待1000毫秒后执行下一条语句。
串口通信
串口通信用于Ardunio开发板与电脑或者其他设备之间进行通信
- 初始化串口通信
Serial.begin(param);
param1:串口通信传输位数
例如Serial.begin(9600)
为初始化串口通信,每秒9600位
- 输出变量到串口监视器
Serial.println(param);
param:需要的输出信息
例如Serial.println(buttonState)
为向串口输出buttonState数据
获取随机数
- 获取一个长整型随机数
long random(param1, param2);
param1:可以取到的随机数的最小值
param2:不可以取到的随机数的最大值
return:long
型随机数
例如random(1, 10)
为获取大于等于1且小于10的随机整数
模拟电路API
- 向引脚中写模拟信号
void analogWrite(param1, param2);
param1:引脚编号
param2:要输出的模拟信号,范围为0~255
例如analogWrite(9, 128)
为向9号引脚写入数据128
在Ardunio Uno中只有3,5,6,9,10,11能够输出模拟信号
- 从模拟输入引脚中读取数据数值
int analogRead(param);
param:引脚编号
return:返回int类型数据,范围在0-1023之间
Ardunio控制器有多个10位数模转换通道,因此有0~2^10-1共1024个数值。
本文地址:https://blog.csdn.net/yq543858194/article/details/108911619