WORK - 2

JMIN·2025년 3월 26일

사물인터넷

목록 보기
5/23

도전과제

  • 푸시버튼을 누르면 led가 red - yellow - blue 순으로 켜지도록 한다.
  • 버튼을 누르고 있지 않을 때는 다 꺼져있도록 한다.

    이번 과제에서는 저번 시간에 배운 내부 풀업을 사용하기로 했다.

회로도

내부 풀업을 사용 했기 때문에 스위치 부분에는 따로 저항(10kΩ)을 주지 않아도 된다.

코드


내부 풀업을 사용하기 때문에 btn핀의 pinMode()INPUT이 아닌 INPUT_PULLUP으로 설정해야 한다. 또한, 버튼을 누르고 뗐을 때 정상적으로 HIGH(1)LOW(0) 값이 전달되는지 확인하기 위해 시리얼 모니터를 활용하여 출력값을 확인하도록 설정했다.

버튼(btn) 핀 값이 0(LOW)가 되면, if()문을 통해 red -> yellow -> blue 순서로 LED가 차례대로 켜지도록 설정하고, 각 단계마다 0.5초(500ms)씩 딜레이를 주었다. 또한, 버튼값이 1(HIGH)일 때는 모든 LED가 꺼지도록 하였다.

결과물

영상찍을 때 마우스 포인터가 안 보일 줄 몰랐는데 안 보여서 스위치를 자세히 봐야 한다; ㄱ-

마무리

오늘 과제를 마무리하면서, 저번 시간에 풀다운, 풀업, 내부 풀업에 대해 열심히 공부한 덕분에 이번 과제는 크게 어렵지 않았다. 내부 풀업을 사용하니 스위치에 저항을 연결할 필요 없이 간단하게 해결할 수 있었고, 회로도도 훨씬 간결하게 느껴졌다. 아쉬운 점은 블로그를 마무리하며 코드를 다시 보니, loop() 함수 안 에서 if() 문을 세 개씩 쓸 필요 없이 대괄호 {}로 묶어서 사용할 수 있다는 것을 알게됐다. 앞으로는 불필요한 문장을 줄이고, 주석을 적극적으로 활용해서 이 코드가 무엇을 뜻하는지도 메모를 해야겠다.

profile
🐂처럼 살기;

0개의 댓글