[아두이노] 기울기센서(Tilt Sensor) 제어

IOT/아두이노|2019. 2. 27. 09:00

[아두이노] 기울기센서(Tilt Sensor) 제어



오늘도 쉬운 난이도로 기울기센서를 이용한 실험을 다루겠습니다. 기울기센서는 기울기에 따라서 연결되고 끊어지는 두가지 상태를 나타내고 그 상태값을 기준으로 스위치 역활로 수행 할 수 있습니다. 실험에서는 스위치 역활로 기울기에 따라서 Red LED에 불이 들어오고 꺼지는 동작 제어를 통해 Title Sensor를 이해하는 시간을 갖도록 하겠습니다.

1. 기울기센서(Tilt Sensor)



Tilt Sensor는 안에 들어있는 전류를 흐를 수 있는 물질이 들어 있어서 기울기에 따라 센서안에 두 단자를 연결하거나 끊어지게 할 수 있습니다. 가상시뮬레이터에서 수평과 기울기 모양을 나타내는 조절이미지가 있는데 이걸로 Tilt Sensor를 조절하고 출력은 스위치버턴과 동일하게 출력값을 얻으시면 됩니다.

2. 기울기센서(Tilt Sensor) 동작 모습


수평기울어질때

그림에서 보는것과 같이 기울어질때 값을 기준으로 Red LED에 불이 들어오게 됩니다. 스위치 버턴 제어(아두이노)의 실험예제에서 스위치 버턴위치에 Tilt Sensor가 바뀌었을뿐 동일한 예제입니다. 어떤 동작을 하는 센서인지 대충 감이 잡히셧을꺼에요.

1. 회로도 구성


  • 준비물 : LED 1개, 저항 220옴 1개, 저항 10k옴 1개, Tilt Sensor 1개, 아두이노우노, 뻥판
  • 내용 : Tilt Sensor를 통해 기울어지는 상태값을 Red LED로 출력하게 하자.

(1) 기본(2) 내부풀업모드

두가지 형태로 표현해 볼 수 있습니다. 스위치버턴 예제를 다시 보시고 한번 풀다운모드 형태로 회로도를 한번 디자인 해보세요.

3. 코딩



복습

  • pinMode(사용핀, OUTPUT) : 사용핀은 출력모드
  • digitalWrite(사용핀, 상태) : 디지털출력핀에 상태가 HIGH(5V) or LOW(0V)를 선택한다.
  • digitalRead(사용핀) : 전기신호를 입력받는다.

설계

  1. Tilte Sensor에서 수평과 기울어졌을때의 값을 읽어들인다. => digitalRead(입력핀)
  2. 그 읽은 신호값을 기준으로 Red led에 불이 들어오게 한다. =>
    if(입력값==LOW) digitalWirt(출력핀,HIGH);
    else digitalWirt(출력핀,LOW);

코딩을 전체적으로 하면

(1) 기본 코딩은

void setup()
{
  pinMode(13, OUTPUT);      
  pinMode(7, INPUT);    
}

void loop()
{     
   if(digitalRead(7)==LOW) digitalWrite(13, HIGH);       
   else digitalWrite(13, LOW);     
}

(2) 내부풀업 코딩은

void setup()
{
  pinMode(13, OUTPUT);      
  pinMode(7, INPUT_PULLUP);    
}

void loop()
{     
   if(digitalRead(7)==LOW) digitalWrite(13, HIGH);       
   else digitalWrite(13, LOW);     
}

둘 차이는 PinMode() 함수에서 입력모드만 변경해주면 된다. 코딩 로직은 따로 수정할 게 없다.

5. 결과


간단히 디자인 하는 모습과 실행 결과를 만들어 놨으니 한번 보시고 따라 해보세요.

마무리


Tilte Sensor의 동작 제어를 해보았습니다. PIR Sensor는 두가지 상태값으로 스위치 역활을 이번 실험에서 실행해 보았습니다. 여기에 피에조부저를 부착해서 소리를 만들어 내면 경보기도 될 수 있겠죠. 아니면 어떤 물체의 특정 대상이 될때 대상이 된 물체가 기울어졌는지 수평인지를 체크하는 용도로도 사용할 수 있겠죠.

한번 기울기센서를 이용해서 어디에 적용해 볼까 상상의 나래를 펼쳐보세요.


댓글()