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个数值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值