ARDUINO RPI-1031 4方向传感器
工作原理
- 根据光学原理,其内部有1个LED,2个光敏接收三极管,另一侧有一个圆柱形灯罩,如图所示:
电路图
- 通过圆柱形灯罩遮挡LED,光敏接收管用于检测RPl-1031当前状态。
- 当RPl-1031旋转到下图所示状态时,LED被灯罩遮挡,两个光敏接收三极管收不到光线,处于截止状态,输出低电平;两个GPIO口均输出低电平。
- 当RPl-1031旋转到下图所示状态时,其中一侧的光敏三极管被遮挡,LED发出的光只能被另一侧的光敏三极管接收到,即上面的光敏三极管导通,下面的光敏三极管截止;然后两个GPIO口输出分别输出高电平和低电平。
- 当RPl-1031旋转到下图状态时,灯罩不遮挡,二极管发光,两个光敏三极管受光,此时全部点亮,两个GPIO口均输出高电平。
- 当RPl-1031旋转到如下所示的状态时,该状态与描述4相反,两个GPIO端口的输出电平将相互改变。
图 2:Samp连接。
Samp代码
I*
e-Gizmo RPl-1031 角度传感器 4 方向传感器
这是作为amp倾斜方向传感器的草图,用于显示传感器输出位置。
对于 RPl-1031 – http://www.sparkfun.com/products/10621
由 e-Gizmo Mechatronix Central 修改
http://www.e-gizmo.com
18,2017 年 XNUMX 月
*I
#define TILT S1 4
#define TILT_S2 5
#define LED_ TOP 8
#define LED RIGHT 9
#define LED BOTTOM 10
#define LED_LEFT 11
void setup{){
}
Serial.begin(9600);
pinMode(TILT_S1, INPUT);
pinMode(TILT_S2, INPUT);
pinMode(LED TOP, OUTPUT);
pinMode(LED RIGHT, OUTPUT);
pinMode(LED_BOTTOM, OUTPUT);
pinMode(LED_LEFT, OUTPUT);
void loop{){
int position = GET_ TILT POSITION();
Serial.println(position);
//TOP
if(position == 0)
{
}
digitalWrite(LED_TOP, HIGH);
digitalWrite(LED_RIGHT, LOW);
digitalWrite(LED BOTTOM, LOW);
digitalWrite(LED LEFT, LOW);
//RIGHT
if(position == 2)
{
digitalWrite(LED TOP, LOW);
digitalWrite(LED_RIGHT, HIGH);
digitalWrite(LED BOTTOM, LOW);
digitalWrite(LED_LEFT, LOW);
void loop{){
int position = GET_ TILT POSITION();
Serial.println(position);
//TOP
if(position == 0)
{
}
digitalWrite(LED_TOP, HIGH);
digitalWrite(LED_RIGHT, LOW);
digitalWrite(LED BOTTOM, LOW);
digitalWrite(LED LEFT, LOW);
//RIGHT
if(position == 2)
{
digitalWrite(LED TOP, LOW);
digitalWrite(LED_RIGHT, HIGH);
digitalWrite(LED BOTTOM, LOW);
digitalWrite(LED_LEFT, LOW);
}
//LEFT
if(position == 1)
{
}
digitalWrite(LED TOP, LOW);
digitalWrite(LED_RIGHT, LOW);
digitalWrite(LED BOTTOM, LOW);
digitalWrite(LED_LEFT, HIGH);
//BOTTOM
if(position == 3)
{
}
digitalWrite(LED TOP, LOW);
digitalWrite(LED RIGHT, LOW);
digitalWrite(LED_BOTTOM, HIGH);
digitalWrite(LED LEFT, LOW);
delay(200); //DELAY
}
int GET_TILT_POSITION(){
int S1 = digitalRead(TILT_S1);
int S2 = digitalRead(TILT _S2);
return (S1 << 1) I S2; //BITWISE MATH
}
图 3:pH 传感器的串行打印输出。
文件/资源
![]() |
ARDUINO RPI-1031 4方向传感器 [pdf] 用户手册 RPI-1031 4方向传感器,RPI-1031,4方向传感器,方向传感器,传感器 |