코딩과 아두이노의 찰떡궁합 Ep-16

안녕하세요~^^ 에듀아이입니다^^ 이번 시간에는 소리를 측정해 소리의 크기에 따라 빛의 밝기를 조절하는이퀄라이저를 구현해보겠습니다. 우선 연결에 필요한 부품부터 알아보겠습니다~^^

아두이노 우노(Uno), 사운드센서모듈, LED, 암수 케이블이 필요합니다. 위 부품을 아래와 같이 연결해주세요~ LED의 긴핀을 디지털 11번 핀에, 짧은핀은 GND에 연결합니다. 사운드센서 모듈의 S(OUT, A0) 핀을 아두이,노 우노의 A0에, -(G)핀을 GND에, +핀을 5V에 연결합니다.

사운드센서 모듈은 소리의 크기를 측정하는 아날로그/디지털 센서입니다. 소리의 크기를 측정해 0~1023의 값으로 표현합니다. 가장 작 상태의 값을 0으로, 가장 큰 소리의 상태 값을 1023으로 표현해줍니다. 이번 코드는 지난번 스마트 전등(가로등) 만들기 제어 코드와 같습니다. 코드를 자세히 살펴보겠습니다. 작성이 어려운 분들은 아래 코드를 복사해 사용하세요~


void setup() { pinMode(11, OUTPUT); // 11번(LED) 핀을 출력 모드로 설정 } void loop() { int SValue = analogRead(A0); // 아날로그 0번 핀 값을 SValue 변수에 저장 analogWrite(11, SValue/4); // 사운드센서 상태 값에 따라 11번 핀 LED 밝기 조절 delay(10); }


위 코드에 대해 설명드리겠습니다. void setup() { } 내용은 처음 한번만 실행되는 내용을 코딩하는 곳입니다. void loop() { } 내용은 반복해서 실행할 내용을 코딩하는 곳입니다. pinMode(11, OUTPUT); 디지털 11 핀(LED가 연결된 핀)을 출력 모드로 설정하는 내용이 들어갑니다.
int SValue = analogRead(A0); int SValue 는 SValue라는 변수를 정수형(Integer)으로 선언하는(만드는) 명령입니다=analogRead(A0);은 조도센서를 연결한 아날로그 0번핀의 값을 읽어와 SValue 변수에 넣으라는 명령입니다.
analogWrite(11, SValue/4); analogWrite()는 괄호안에 설정한 핀번호로 신호를 보내는 명령입니다. 괄호 안에는 2개의 인수가 들어가는데, 첫번째 인수는 핀번호이고, 두번째 인수는 핀의 상태값을 표기하는 것입니다. 지난 시간에 설명드린 내용과 같습니다. analogWrite()의 두번째 인수는 0~255의 값으로 LED의 밝기를 제어합니다. 0은 LED를 끈 상태이고 255는 LED가 가장 밝게 빛나는 상태를 의미합니다. 128 정도면 중간정도의 LED 밝기가 되겠죠?^^ SValue는 사운드센서의 값을 읽어와 저장해놓은 변수입니다. 이 값에 나누기 4(/4)를 한 이유는 사운드센서로부터 측정된 값이 0~1023까지이기 때문입니다. 아날로그 장치는 상태값이 0~1023 사이의 값을 가지며, 디지털 장치는 0~255의 값을 갖습니다. 아두이노 보드를 보면 디지털 핀번호 앞에 물결모양(~)이 표시되어 있는 번호가 있습니다. 3, 5, 6, 9, 10, 11번 핀입니다. 이 핀들을 PWM(Pulse Width Modulation) 지원 핀이라고 합니다. PWM은 디지털 값이 0, 1 사이에 254단계의 미세한 전류 변화값을 설정할 수 있다고 이해하시면 됩니다. PWM을 제어할 때는 analogWrite()를 이용합니다.
delay(10); delay는 바로 윗줄의 코드 내용을 일정한 시간동안 지속하는 명령입니다. delay(10);은 0.01초 동안 유지하라는 의미입니다. 1초나 2초로 설정하지 않는 이유는 void loop(){ } 내용은 계속 무한 반복되기 때문에 길게 설정하지 않아도 됩니다.

이제 코드를 업로드해 테스트를 해볼 시간입니다^^ 동영상으로 코드 내용을 업로드한 결과를 보겠습니다. https://www.youtube.com/watch?v=26B1pe6k89U

LED를 2개 이상 연결해 여러개의 LED가 한꺼번에 반응하도록 만들어볼 수도 있습니다.

이건 숙제?^^로 드릴까요?

오늘 내용은 여기까지 입니다.

▶상상을 현실로 만드는 아두이노(Arduino) ■ 박경진 지음 / 에듀아이 출판 ■ 알라딘, Yes24, 교보문고, 영풍문고, 반디앤루니스, 인터파크에서 구입가능합니다. [책에서 다루는 내용] ■ 소프트웨어 코딩을 이해하고 아두이노에 업로드/테스트하는 방법 ■ 서서히 색상이 그라데이션 형태로 바뀌는 LED 무드등 만들기 ■ 리드 스위치 모듈로 창문이나 현관 문 열림 감지하기 ■ 토양 수분 센서로 화분의 수분 상태를 측정해 물 공급시기 체크하기 ■ 비접촉식 온도 센서로 비접촉 체온 측정기 만들기 ■ 이 세상 하나뿐인 우리집 미세 먼지 측정기 만들기 ■ 주변 밝기를 측정해 자동으로 켜지고 꺼지는 스마트 전등(가로등) 만들기 ■ 거리를 측정하는 초음파 센서를 이용해 자동차 후방 감지기 만들기 ■ 일정한 거리내의 사람을 인식해 자동으로 열리고 닫히는 스마트 휴지통 만들기 ■ 스마트폰 블루투스로 연결해 제어하는 RC 카 만들기 ■ 집밖에서 스마트폰으로 집안의 사물인터넷 기기 제어 [이 책의 대상 독자] ■ 소프트웨어 교육 의무화로 소프트웨어 코딩을 배우고 싶은 학생 ■ 사물인터넷 제품을 만들어 스마트 홈을 구현하고 싶은 독자 ■ 어렸을 때 생각했거나 상상했던 제품을 직접 만들어보고 싶은 독자 ■ 소프트웨어와 하드웨어의 상관 관계를 이해하고 제어하고 싶은 독자 ■ 로봇, 드론 등의 제품 구현을 위한 기본 지식을 습득하고자 하는 독자 끝까지 읽어주셔서 고맙습니다^^ 다음 에피소드에서 또 뵙겠습니다^^

IT 교육전문가 코딩, 소프트웨어, 사물인터넷 정보보안, 스마트폰 영상편집 등의 강의 및 출판을 전문으로하는 1인기업입니다.
Follow
4.7 Star App Store Review!
Cpl.dev***uke
The Communities are great you rarely see anyone get in to an argument :)
king***ing
Love Love LOVE
Download

Select Collections