본문 바로가기

[아두이노&랩뷰]기울기 센서[RPI-1031, SPARKFUN]

반응형

 

 

SPARKFUN에서 나오는 RPI-1031 기울기센서와 아두이노를 연결한 후 C 또는 랩뷰의 아두이노 툴킷을 이용하여 4가지 방향(앞,뒤,좌,우)에 따른 LED켜기를 만들어 보았습니다. 기울기센서를 많이 사용하는 것으로는 실생활에 많이 사용하는 스마트폰을 들 수가 있을 것 같습니다. 스마트폰을 세로로 새워서 보다가 영화나 뮤직비디오를 볼 때 가로로 보는데 그런 기울어짐을 감지하는 센서가 기울기 센서입니다.

 

첫번째로 선연결 방법은 다음과 같습니다.

 

 

Fritzing 프로그램에서 기울기센서 이미지가 따로 없어서 비슷한 그림의 센서를 가져왔습니다. 보시다시피 5V와 GND 연결해주시고 기울기값에 대한 데이터는 Analog input 2,3번 채널에 연결해 주시면 됩니다. 디지털 아웃풋은 들어오는 아날로그 인풋값에 따른 LED를 켜기 위한 연결값으로 동일 GND 잡아주시고 각 채널 별로 디지털 아웃풋을 잡아주시면 됩니다. 저는 10,11,12,13번 채널을 아웃풋으로 잡았습니다.

 

 

 

선 연결이 다 되셨으면, 우선 C코딩으로 아두이노와 기울기 센서를 연결해 보겠습니다. 하기와 같이 입력하고 업로드 하면, 방향에 따라 각각의 LED가 바뀜을 알 수 있습니다.

 

int tilt_s1 = 2;
int tilt_s2 = 3;
const int ledPin1 =  10;
const int ledPin2 = 11;
const int ledPin3 = 12;
const int ledPin4 = 13;

void setup(){
   // initialize the LED pin as an output:
   pinMode(ledPin1, OUTPUT);
   pinMode(ledPin2, OUTPUT); 
   pinMode(ledPin3, OUTPUT);
   pinMode(ledPin4, OUTPUT);
  
   pinMode(tilt_s1, INPUT);
   pinMode(tilt_s2, INPUT);
   Serial.begin(9600);
  }

void loop(){
  int position = getTiltPos();
  Serial.println(position);
  delay(10); //only here to slow down the serial output
  if(position==0)
  {
    digitalWrite(ledPin1, HIGH); 
    digitalWrite(ledPin2, LOW);
    digitalWrite(ledPin3, LOW); 
    digitalWrite(ledPin4, LOW);   

  }

  else if (position==1)
  {
    digitalWrite(ledPin2, HIGH);
    digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin3, LOW); 
    digitalWrite(ledPin4, LOW);

  }
 
   else if (position==2)
  {
    digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin2, LOW);
    digitalWrite(ledPin3, HIGH); 
    digitalWrite(ledPin4, LOW);

  }
   else {
   
    digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin2, LOW);
    digitalWrite(ledPin3, LOW); 
    digitalWrite(ledPin4, HIGH);

  }

}
int getTiltPos(){
   int s1 = digitalRead(tilt_s1);
   int s2 = digitalRead(tilt_s2);
   Serial.println(s2);

   return (s1 << 1) | s2; //bitwise math to combine the values
}

 

랩뷰 코딩은 다음과 같습니다.

 

 

 

클릭하면 더 큰 그림을 보실 수 있습니다.(블럭다이그램) 밑에는 프런트패널 입니다.

 

 

 

 

초기화하는 걸 몰랐는데 도움준 행님에게 감사합니다.

 

궁금한 사항 있으면 언제든지 물어보세요~ 즐거운 주말 보내세요

 

 

기울기센서(RPI-1031).vi

 

 

반응형
-->