Puzzle - Rotary Angle Sensor 旋转角度传感器

来自Duinopeak_COM
跳转至: 导航搜索

简介

旋转角度传感器产生的模拟输出之间在0到Vcc之间(VCC指Eduino主控板上面的5V DC)。 旋转角度是在300度范围内线性变化的值。电阻值是10k欧姆,能够在Arduino上面完美的使用。这也被称为"旋转电位计"。 Rotary Angle Sensor.jpg Rotary Angle Sensor back.jpg

特征

  • 电子积木接口
  • 使用简单
  • 电子积木模块

参数规格

项目 最小 典型 最大 单位
电压 4.75 5.0 5.25 VDC
旋转角度 0 ~ 300 Deg
尺寸 19x19x30.1 mm

用法

  • 下面的连接图展示了一个简单的应用程序使用旋转角度的传感器来控制LED的亮度。旋转角度传感器的量程是0度~300度,然后在转换为对应电压值控制LED的亮度。
  • 正如在下面的图片表明,旋转角度传感器连接到控制LED的亮度的演示代码中的模拟端口A0,其中LED连接到数字端口2。

Puzzle Rotary angle sensor connection.jpg

/*macro definitions of Rotary angle sensor and LED pin*/
#define ROTARY_ANGLE_SENSOR A0
#define LED 2                                 //the Puzzle - LED is connected to D3 of Arduino
#define ADC_REF 5                             //reference voltage of ADC is 5v.If the Vcc switch on the duinofun	   //board switches to 3V3, the ADC_REF should be 3.3
#define PUZZLE_VCC 5                         //VCC of the puzzle interface is normally 5v
#define FULL_ANGLE 300                       //full value of the rotary angle is 300 degrees
void setup()
{
    Serial.begin(9600);
    pinsInit();
}
void loop()
{
    int degrees;
    degrees = getDegree();
    Serial.println("The angle between the mark and the starting position:");
    Serial.println(degrees);
    int brightness;
    /*The degrees is 0~300, should be converted to be 0~255 to control the*/
    /*brightness of LED*/
    brightness = map(degrees, 0, FULL_ANGLE, 0, 255);
    controlBrightness(brightness);
    delay(500);
}
void pinsInit()
{
    pinMode(ROTARY_ANGLE_SENSOR, INPUT);
    pinMode(LED, OUTPUT);
}
 /*PWM control brightness*/
 /*If brightness is 0,the LED is off.*/
 /*The Greater the brightness, the brighter the LED.*/
 /*The range of brightness is 0~255*/
 void controlBrightness(int brightness)
{
    analogWrite(LED, brightness);
}
/************************************************************************/
/*Function: Get the angle between the mark and the starting position*/
/*Parameter:-void*/						
/*Return:-int,the range of degrees is 0~300*/							
int getDegree()
{
    int sensor_value = analogRead(ROTARY_ANGLE_SENSOR);
    float voltage;
    voltage = (float)sensor_value * ADC_REF / 1023;
    float degrees = (voltage * FULL_ANGLE) / PUZZLE_VCC;
    return degrees;
}


资源


Rotary Angle Sensor 旋转角度传感器原理图: 文件:Puzzle Rotary angle sensor.pdf

Rotary Angle Sensor 旋转角度传感器演示程序: 文件:Puzzle Rotary angle sensor promgram.zip

如何购买

Duinopeak 官方淘宝商城
Rotary Angle Sensor 旋转角度传感器购买链接

支持

如果你有什么建议或者好的点子, 你可以来我们的DuinoPeak论坛参与讨论.

外部链接

链接到外部网页将会给你提供更多应用创意,文档/数据表或软件库

视频