Notice
Recent Posts
Recent Comments
Link
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

아이티 IT aie tee ay ty

[아두이노]digitalRead를 통한 스위치의 신호 읽기 본문

프으로오그으래애미잉

[아두이노]digitalRead를 통한 스위치의 신호 읽기

대추 밤 감 배 2018. 6. 12. 22:04

-아니! 이미 늦었다! (요?카게)

죠죠 스위치 못 누르게 해에 대한 이미지 검색결과

하지만 오늘 우리는 스위치를 또 누를 겁니다.

아두이노 제 6부 2화, digitalRead 사용하기

 오늘은 지난시간에 말씀드린 두번째 방법을 사용해서 스위치를 제어해 볼 생각 입니다. 지난시간이 생각 안나신다면 여기 로 들어가 보시기 바랍니다.

digitalRead 는 말입니다, 아주 간단합니다. digitalWrite 와 비슷한 개념이자 반대되는 성격을 가진 그런, 명령어인 것 이지요. digitalRead 는 입력값이 두가지가 될 수 있습니다. 바로 HIGH 와 LOW 입니다.

말 그대로 HIGH 는 전기가 들어온다는 말이고, LOW 는 전기가 안 들어온다는 말 입니다. 회로를 보시죠.


 여기서, 우리는 스위치를 누를 때 합선이 된다는 원리를 가지고, 5V(+극) 의 전기가 GND(-극) 으로 통할 수 있게되어 전류가 흐를 수 있다는 사실을 알 수 있습니다. 그러면서 자연히 13번 포트에 전기가 들어가게 되고 그러면 digitalRead를 실행했을때 전기가 들어왔으니 HIGH 를 입력값으로 받을 수 있습니다. 그리고 만일 digitalRead의 값으로 HIGH 가 나오면, 12번의 LED를 켤 수도 있죠.


코드를 보면,

void setup() {
  // put your setup code here, to run once:
  pinMode(13, INPUT);
  pinMode(12, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  if (digitalRead(13) == HIGH){
    digitalWrite(12, HIGH);
  }else{
    digitalWrite(12, LOW);
  }
}

이런 코드가 나오게 됩니다. 한줄 한줄 해석해 보면, setup 메소드에서는 pinmode 메소드 를 사용하여 13번 포트와 12번 포트를

각각 입/출력으로 설정해 두고, loop 메소드 에서는 13번 포트의 digitalRead의 값을 가지고 12번 포트에 전기를 흘려줄지 말지를

if문을 사용하여 결정하고 있습니다. 이게 끝입니다. 간단하죠?


그럼 전 다음시간에 돌아오겠습니다.