팜 시스템

기본적인 아두이노 실습2

user1016 2025. 5. 23. 01:05

4번째 팜 시스템 스터디에서는 버튼 입력값받아 LED 켜기,LED 밝기 조절하기, 가변저항으로 LED 제어하기를 진행하였습니다.

 

1. 버튼으로  LED 제어하기.

 옛날에는 아무생각없이 따라하던 실습들이 모든 부분의 의문점을 해결하려 하다 보니까 모르는 부분이 생각보다 많고 어렵다고 느껴졌다. 그중 하나가 pull-up저항과 pull_down저항이다.

 

  1-1.Pull-up저항

 

 

 우리가 보드에 버튼과 LED를 연결할때 저항이 없이 연결하면 어떻게 될까? 버튼이 눌려있을때야 GND값이 들어가겠지만 버튼이 열려있는 경우에는 어떤 값이 들어가는지 모른다. 이러한 불분명한 상태를 방지하기 위해 Pull-up, Pull-down을 쓴다. Pull-up저항은 저항이 5V쪽에 연결되있는 것이다. 그래서 버튼이 눌렸을때는 저항이 없는쪽의 GND값이 들어가고 버튼이 열렸을때는 연결된 5V의 값이 들어온다. 그래서 버튼을 눌렀을때 0의값이 들어간다.Pull_down저항은 완전 반대로 작용한다고 보면된다. 아두이노 보드 내에는 내부 풀업 저항이 존재한다. 이는 핀 모드 설정시 INPUT_PULLUP 이라 설정해주면 된다.

 

 

 

 

 

 

2. LED의 밝기 제어하기

 밝기 조절을 100중에 10의 밝기로 켜져있어! 하면 되는줄 알지만 실상을 PWM이라는 펄스의 폭을 조절하여 매우 빠르게 켜졌다 꺼졌다를 반복하는 것이다. 여기서 밝기의 조절은 켜져있는 시간의 양을 조절하는 것이다. 즉 10의 밝기란 100중에 10동안 켜져있고 90동안은 꺼져있다. 라는 것이다. 이 개념이 바로 듀티 사이클(Duty Cycle)인데 이는 전체 주기 중에서 "HIGH(1)" 상태로 유지된 비율이라는 뜻 이다. 그리고 우리는 PWM 신호의 듀티 사이클을 0~255사이의 값(8bit값)으로 조절을 한다.

 

3. 가변저항으로 LED 밝기 제어하기.

 

 가변저항은 말그대로 변하는 저항이다. 이때 저항값은 13~1024의 값을 가지며 조금씩 다를수 있다. 우리는 9~1024의 값을 가졌다. 우리는 이 저항값을 변수에 저장하여 analogWrite 함수에 넣어 사용하면 된다. 이때 PWM 값의 범위가 0~255이기 때문에 저항값을 나누기 4 해서 값의  비율을 맞춰야 한다. 이건 근데 매번 최댓값을 구해서 나눠주기는 불편하다. 이때 사용할 수 있는 함수가 map함수 이다. map(입력변수,입력시작값,입력끝값,출력시작값,출력끝값)으로 사용이 가능하며 입력변수의 시작값과 끝값을 출력값의 시작값과 끝값으로 맞추겠다. 라는 것이다. 1024라는 값을 PWM의 듀티사이클을 설정할때 255로 변환하는게 더 편리해 진 것이다.

 

원래 오늘 본격적인 IoT를 들어가려 했으나 아두이노에서 이건 왜 이렇게 되지? 라는 의문을 가지게 되니 시간이 한없이 빠르게 흘러가는것 같다. 그래도 하나씩 꼼꼼하게 서로 지식을 합쳐 나아가는게 스터디니까 모르는걸 확실하게 이해하며 나아가는 방향으로 꾸준히 스터디를 할 것이다.