Difference between revisions of "BakeBit - Rotary Angle Sensor"
From FriendlyELEC WiKi
(→Introduction) |
(→特性) |
||
Line 5: | Line 5: | ||
* The BakeBit - Rotary Angle Sensor module is a rotary sensor module. It acts as a variable resistor or rheostat.When the nub is rotated the resistance will change. | * The BakeBit - Rotary Angle Sensor module is a rotary sensor module. It acts as a variable resistor or rheostat.When the nub is rotated the resistance will change. | ||
− | == | + | ==Hardware Spec== |
− | * | + | * Standard 2.0mm pitch 4-Pin BakeBit Interface |
[[File:BakeBit - Rotary Angle Senso_PCB.png | frameless|320px|BakeBit - Rotary Angle Senso]] | [[File:BakeBit - Rotary Angle Senso_PCB.png | frameless|320px|BakeBit - Rotary Angle Senso]] | ||
− | * | + | * Pin Description: |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | | | + | |Pin || Description |
|- | |- | ||
− | |GND || | + | |GND || Ground |
|- | |- | ||
− | |5V || | + | |5V || 5V Supply Voltage |
|- | |- | ||
− | |NC || | + | |NC || Not Connected |
|- | |- | ||
− | |SIG || | + | |SIG || Signal |
|} | |} | ||
+ | |||
== 示例程序(1):LED Fade == | == 示例程序(1):LED Fade == | ||
Revision as of 10:25, 13 December 2016
Contents
1 Introduction
- The BakeBit - Rotary Angle Sensor module is a rotary sensor module. It acts as a variable resistor or rheostat.When the nub is rotated the resistance will change.
2 Hardware Spec
- Standard 2.0mm pitch 4-Pin BakeBit Interface
- Pin Description:
Pin | Description |
GND | Ground |
5V | 5V Supply Voltage |
NC | Not Connected |
SIG | Signal |
3 示例程序(1):LED Fade
这个项目将使用BakeBit - Rotary Angle Sensor模块,来动态调节LED的亮度。
3.1 硬件连接
简单的将 LED 模块插入 D5接口,将 BakeBit - Rotary Angle Sensor 插入 A0接口,如下面这样:
3.2 示例源代码
import time import bakebit # Connect the BakeBit Rotary Angle Sensor to analog port A0 # SIG,NC,VCC,GND potentiometer = 0 # Connect the LED to digital port D5 # SIG,NC,VCC,GND led = 5 bakebit.pinMode(potentiometer,"INPUT") bakebit.pinMode(led,"OUTPUT") time.sleep(1) # Reference voltage of ADC is 5v adc_ref = 5 # Vcc of the BakeBit interface is normally 5v bakebit_vcc = 5 # Full value of the rotary angle is 300 degrees, as per it's specs (0 to 300) full_angle = 300 while True: try: # Read sensor value from potentiometer sensor_value = bakebit.analogRead(potentiometer) # Calculate voltage voltage = round((float)(sensor_value) * adc_ref / 1023, 2) # Calculate rotation in degrees (0 to 300) degrees = round((voltage * full_angle) / bakebit_vcc, 2) # Calculate LED brightess (0 to 255) from degrees (0 to 300) brightness = int(degrees / full_angle * 255) # Give PWM output to LED bakebit.analogWrite(led,brightness) print("sensor_value = %d voltage = %.2f degrees = %.1f brightness = %d" %(sensor_value, voltage, degrees, brightness)) except KeyboardInterrupt: bakebit.analogWrite(led,0) break except IOError: print ("Error")
3.3 运行示例
假设你已经参考bakebit教程安装了BakeBit源代码,
要运行示例程序,可以在开发板上进入 BakeBit/Software/Python目录,运行bakebit_rotary_angle_sensor.py:
cd ~/BakeBit/Software/Python sudo python bakebit_rotary_angle_sensor.py
3.4 运行结果
旋转电位器,LED亮度会随着电位器的角度变化而变化。
4 示例程序(2):Servo and Rotary Angle Sensor
这个示例演示用电位器(Rotary Angle Sensor)来控制舵机的转动。
该示例是配合BakeBit - Servo来实现的,可参考BakeBit - Servo页面。
5 示例程序(3):LED Bar and Rotary Angle Sensor
这个示例实现类拟音量调节的效果,用到电位器模块和LED Bar。
该示例是配合BakeBit - LED Bar来实现的,可参考BakeBit - LED Bar页面。
6 相关资料
- [Schematic](BakeBit - Rotary Angle Sensor.pdf)
- [BakeBit Github项目](https://github.com/friendlyarm/BakeBit)
- [BakeBit Starter Kit手册](http://wiki.friendlyarm.com/bakebit/bakebit_starter_kit_manual_cn.pdf)