ARDUINO RPI-1031 4-retningssensor
Driftsprincip
- Baseret på optiske principper. dens interiør har LED til 1 stk, lysfølsom modtagetriode til 2 stk; og den anden side har en cylindrisk skærm; ligesom billedet viser:
Kredsløbsdiagram
- Med cylindrisk skærm for at holde LED'en ude, og lysfølsomt modtagerrør er til at detektere RPl-1031 nuværende tilstand.
- Når RPl-1031 roterer til den tilstand, der er vist nedenfor, skygges LED af skyggen; og to lysfølsomme modtagetrioder kan ikke modtage lyset; de vil være i slukket tilstand. Output lavt niveau; to GPIO-porte udsender begge lavt niveau.
- Når RPl-1031 roterer til tilstanden vist som nedenfor, blev en af de lysfølsomme trioder skygget, lyset udsendt af LED kan kun modtages af den anden; det betyder, at ovenstående lysfølsomme triode er tændt, og den lysfølsomme triodes underside er slukket; derefter udsender to GPIO-porte henholdsvis højt niveau og lavt niveau.
- Når RPl-1031 roterer til tilstanden vist som nedenfor, skygger skyggen ikke, dioden vil skinne, to lysfølsomme trioder kan modtage lyset; så vil de alle være tændt. Begge to GPIO-porte udsender højt niveau.
- Når RPl-1031 roterer til den tilstand, der er vist nedenfor. Denne tilstand er negativ i forhold til beskrivelse 4, vil to GPIO-portes outputniveau blive indbyrdes indbyrdes.
Figur 2: Sample forbindelser.
Sample Koder
I*
e-Gizmo RPl-1031 Vinkelsensor 4 Retningssensor
Dette er somampen skitse til hældningsretningssensor for at vise sensoroutputpositionerne.
Til RPl-1031 – http://www.sparkfun.com/products/10621
Ændret af e-Gizmo Mechatronix Central
http://www.e-gizmo.com
juli 18,2017
*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
}
Figur 3: Seriel printoutput fra pH-sensor.
Dokumenter/ressourcer
![]() |
ARDUINO RPI-1031 4-retningssensor [pdfBrugermanual RPI-1031 4-retningssensor, RPI-1031, 4-retningssensor, retningssensor, sensor |