【雕爷学编程】Arduino动手做(150)---旋转角度传感器
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百五十:旋转角度传感器模块 SV01A103AEA01R00微调电位器模块
知识点:SV01A103AEA01R00 微调电位器
防尘结构
高可靠性雨刷达到 100 万次循环
适用于自动控制、汽车和音频设备
4 直径 D 成型通孔转子允许选择任何类型的齿轮形状
提供 SMD 或引线
01.jpg 02.jpg 03.jpg 03-.jpg 03--.jpg避免插入与传感器串联的固定电阻,因为本产品中使用的电阻元件是“碳电阻元件”,它的温度特性导致其总电阻值随环境温度变化。 总数电阻也会因外部变化而变化环境随着时间的推移。但是,电阻各部分的电阻元件均匀变化,因此“输出电压由电压决定的特性”由于接触点的分割比例不会很大做作的。
但是请注意,如果固定电阻连接在与产品系列如图所示,“输出电压特性”可能会受到不利影响受变化率差异的影响固定电阻的电阻和电阻的电阻产品的元素。 为此,避免将固定电阻与传感器串联。
03-0.jpg如图显示了结果
测量输出电压的线性度相同的样本,当它的阻抗连接在 1M 和 200k 之间变化欧姆。 可以看到滑动的效果连接时噪音降低阻抗增加。
旋转角度传感器模块 SV01A103AEA01R00微调电位器模块
旋转角度传感器采用的是用一个线性电位器,旋转角度变化反应电位器阻值变化,输出端电压也跟随变化
主要参数:
供电电压:DC5V
工作环境温度:-40℃- +85℃
旋转寿命:300K次
旋转扭矩:1mN.m
有效旋转角度:333.3°
线性度:±2%
电位器总电阻阻值:10KΩ±30%
项目之一:通过串口显示测试电位器的数值与波形
实验接线:角度传感器模块OUT接Uno的A0
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百五十:旋转角度传感器模块 SV01A103AEA01R00微调电位器模块
项目之一:通过串口显示测试电位器的数值与波形
实验接线:角度传感器模块OUT接Uno的A0
*/
void setup()
{
Serial.begin(9600); // 设置串口波特率为9600
pinMode(A0, INPUT); // 角度传感器模块OUT连接引脚A0,并设置为输入模式
}
void loop()
{
Serial.println(analogRead(A0)); //将读取的A0模拟值输出到串口监视器
delay(500); // 延时500毫秒
}
实验串口返回情况(用小螺丝刀旋转角度传感器)
06.jpg实验串口绘图器返回情况
07.jpg项目之二:通过读取旋转角度传感器输入的电压值来控制LED灯的亮度
模拟输入引脚是带有ADC(Analog-to-Digital Converter,模数转换器)功能的引脚。它可以将外部输入的模拟信号转换为芯片运算时可以识别的数字信号,从而实现读入模拟值的功能。Arduino 模拟输入功能有10位精度,即可以将0~5V的电压信号转换为0~1024的整数形式表示。通过使用analogRead() 函数读取旋转角度传感器模块输入的电压值,然后通过analogWrite()函数来控制LED灯亮度。
参考开源代码(Arduino):
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百五十:旋转角度传感器模块 SV01A103AEA01R00微调电位器模块
项目之二:通过读取旋转角度传感器输入的电压值来控制LED灯的亮度
实验接线:角度传感器模块OUT接Uno的A0,LED灯接D11
*/
int ledPin = 11;
int readValue = 0; //保存读到的模拟值
int ledValue = 0; //保存LED灯占空比
void setup(){
pinMode(ledPin, OUTPUT); //数字口要选择带~号的具有pwm功能的输出口
}
void loop(){
readValue = analogRead(A0); //读取A0模拟口的数值(0-5V 对应 0-1204取值)
ledValue = map(readValue, 0, 1024, 0, 255);
// 将0到1024之间的数据映射成0到255之间的数据
analogWrite(ledPin, ledValue); //PWM最大取值255
}
Arduino实验场景图
08.jpg