본 게시물에서는 시리얼 모니터 프로그램을 이용하여 아날로그 입력값을 디스플레이하는 것을 설명한 후 가변저항을 사용하여 켜지는 LED 갯수를 제어하는 실험을 할 것입니다. ![]() 실험먼저 포텐셔미터라고 알려진 가변저항에 대한 간단한 실험을 하여 보겠습니다. 브레드보드에 아래와 같이 연결을 하십시오. ![]() 아래의 스케치 파일을 아두이노에 업로드 하여보십시오.
업로드가 끝났으면 시리얼 모니터를 열어 보십시오. 화면 숫자들이 나타나는 것을 볼수 있을 것입니다. ![]() 가변저항에 달려 있는 손잡이를 돌려 보면 숫자들이 0~1023사이에서 변하는 것을 확인 할 수 있을 겁니다. 시리얼 모니터는 아두이노가 아래의 스케치코드를 실행하면서 A0로부터 읽어 들인 아날로그 값을 표시하고 있는 것입니다.
A0의 전압은 0에서 1023의 숫자로 변환되어 전송이 됩니다. 가변저항 (포텐셔미터)가변저항은 A0핀의 전압레벨을 변경시킬 수 있습니다. 이 변경된 전압은 스케치 코드에 의해 0~1023의 값으로 변환이 됩니다. ![]() 포텐셔미터는 둥글게 생긴 트랙이 있는데 저항과 같은 역활을 합니다. 포텐셔미터가 일반 저항과 다른점은 슬라이더라 불리는 중간 연결입니다. 이 슬라이더는 포텐셔미터를 돌리면 같이 돌아가는데 5V쪽으로 돌리면 점차 5V가 되고, GND쪽으로 돌리면 0V가 됩니다. 브레드보드 레이아웃그러면 이제 좀 더 재미있는 프로젝트를 진행하여 보겠습니다. 가변저항을 요리조리 돌리면 켜지는 LED의 갯수를 변경시키는 것입니다. 아래와 같이 부품을 셋업합니다. ![]() 아두이노 코드아래의 스케치를 아두이노에 업로드합니다.
코드가 상당부분 4번 강좌와 비슷합니다. 만약 코드가 잘 이해가 안되시는 부분이 있다면 이전의 강좌를 참고 바랍니다. 이 스케치의 핵심부분은 아날로그 핀을 정의하는 부분인데 이 아날로그 핀은 포센셔미터의 슬라이더와 연결되게 됩니다.
핀을 아날로그 입력으로 설정하기 위해 setup함수에 아무것도 넣지 않았다는 점을 유의하여 보십시오 메인 루프에서 아래와 같이 아날로그 값을 읽게 됩니다.
읽은 아날로그 값은 0에서 1023 사이의 값입니다. 이 값들을 0에서 8의 9개의 LED에 해당하는 숫자로 변경하여 주어야 합니다. 그래서 읽은 값을 114로 나누어 줍니다.
이제 LED를 원하는 숫자 만큼 켜주기 위해서 for loop안에서는 0에서 numLEDSLit까지 숫자를 카운트하면서 비트를 셋팅하게 됩니다.
updateShiftRegister함수를 호출하여 shift register를 업데이트합니다.
|