Arduino Uno 实验4——电位器

电位器简介:

  电位器属于无极性器件,可变电阻的一种,三个触点,通过旋转旋钮改变2号脚的位置,从而改变阻值的大小,1脚和3脚分别接开发板的5V和GND,2脚接模拟输入引脚。

在这里插入图片描述

电位器的使用

实验一:电位器数值读取

项目要求:

  通过串口监视器(或串口绘图器)查看电位器输入的数值。
注意:电位器为模拟输入器件,对应的端口为:A0~A5。

电路搭建

在这里插入图片描述

参考程序
const int potPin=A0; //设置电位器模块的连接引脚为A0
void setup() {
  Serial.begin(9600); //打开串口并设置串口的波特率
}
void loop() {
  int potVal = analogRead(potPin); //从A0引脚读取模拟值
  Serial.print("Value= ");  
  Serial.println(potVal);  //将串口值输送到串口监视器
  Serial.println(potVal,HEX);  //将串口值以十六进制的方式输送到串口监视器
  delay(100);  //等待100毫秒
}
实验结果

  若用串口监视器则可读取到:0~1024范围内的数值。
  若用串口绘图器则可得到下图的现象(来回转动电位器)。
在这里插入图片描述
  若将电位器拔下(模拟输入引脚悬空),则数据变化会像下图所示,呈现随机变化,这也就是为什么经常将一个空引脚做为随机函数的种子。
在这里插入图片描述

实验二:电位器控制LED的亮度

项目要求:

  通过旋转电位器可以改变LED灯的亮度。
注意:电位器为模拟输入器件,对应的端口为:A0~A5。

电路搭建

在这里插入图片描述

参考程序
const int ldrPin = A0; //设置电位器模块的连接引脚为A0
const int ledPin = 6; //设置LED模块的连接引脚为6
void setup() {
  Serial.begin(9600);  //打开串口并设置串口的波特率
}
void loop() {
  int potVal = analogRead(ldrPin);  //从A0引脚读取模拟值
  Serial.print("Value= ");
  Serial.println(potVal);  //将串口值输送到串口监视器
  potVal = potVal / 4; //本语句将potVal的值的范围由0~1023转换为0~255
  analogWrite(ledPin, potVal); 
  //向引脚6写入0~255之间的数值,引脚6根据模拟信号值,输出0V~5V之间的电压
  delay(100);  //延时0.1秒
}
实验结果

  通过电位器可以控制LED的亮度,由于模拟输入的精度是10(1024),而模拟输出的精度是8(256),刚好相差4倍的关系,故可以直接除以4得到对映关系。当然也可以使用map函数和constrain函数来实现。
在这里插入图片描述
在这里插入图片描述

  • 11
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值