旋转角度传感器产生介于 0 和 VCC 之间的模拟输出。角度范围为 300 度,值呈线性变化。电阻值为 10k 欧姆,非常适合 Arduino 使用。这也可能被称为“Grove Potentiometer”。
Steps
Code
这里传感器给出的输出范围从 0 到最大值 300,它还根据传感器的值输出 LOW、MIDDLE 或 HIGH
低 -> 0 - 99 中 -> 100 - 199 高 -> 200 - 300
#define ROTARY_ANGLE_SENSOR A0
#define ADC_REF 5//reference voltage of ADC is 5v.If the Vcc switch on the seeeduino
//board switches to 3V3, the ADC_REF should be 3.3
#define GROVE_VCC 5//VCC of the grove interface is normally 5v
#define FULL_ANGLE 300//full value of the rotary angle is 300 degrees
int getDegree();
void setup()
{
Serial.begin(9600);
pinMode(ROTARY_ANGLE_SENSOR, INPUT);
}
void loop()
{
int degrees;
degrees = getDegree();
Serial.print("value = ");
Serial.print(degrees);
if(( degrees >= 0) && (degrees < 100))
{
Serial.println("Range : LOW ");
}
else if(( degrees >= 100) && (degrees < 200))
{
Serial.println("Range : MIDDLE ");
}
else
{
Serial.println("Range : HIGH ");
}
delay(500); //adjust this for latency control
}
int getDegree()
{
int sensor_value = analogRead(ROTARY_ANGLE_SENSOR);
float voltage;
voltage = (float)sensor_value*ADC_REF/1023;
float degrees = (voltage*FULL_ANGLE)/GROVE_VCC;
return degrees;
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !