이전 블로그에서 브레드보드와 3가지 색의 LED를 제어하는 방법을 알아보았습니다.
https://iot-lab.tistory.com/83
오늘은 틴커캐드 아두이노 시뮬레이터를 이용해서 LED 를 서서히 켜고 서서히 꺼지는 페이드 인 페이드 아웃을 구현하는 방법을 알아보도록 하겠습니다.
사전 지식
PWM
PWM(Pulse Width Modulation) 펄스 변조의 종류로 신호의 크기에 따라 펄스의 폭을 변조하는 방식으로, LED를 페이드 인 페이드 아웃 제어하거나, 모터의 속도를 제어하는데 사용하는 기술입니다.
오실로스코프
오실로스코프(oscilloscope)는 특정 시간 간격(대역)의 전압 변화를 볼 수 있게 해주는 장치입니다.
오늘은 PWM 파형을 측정하는 데 사용할 예정입니다.
구성요소 목록
새 회로 작성
좌측 사이드바에서 Circuits 를 클릭하시고 새 회로 작성 버튼을 클릭합니다.
Curcuits -> 새 회로 작성
아두이노 준비
우측에 부품 리스트에서 아두이노를 찾아서 위치시킵니다.
아두이노 보드를 클릭 혹은 드래그해서 위치시키기
브레드보드 준비
오른쪽 부품 리스트에서 브레드보드를 찾아 위치시킵니다.
브레드보드를 클릭 혹은 드래그해서 위치시키기
전원선 배선하기
전원선과 그라운드선을 배선합니다.
핀 부분과 브레드보드에 마우스 커서를 이동시키면 연결부위가 강조되며 클릭으로 배선을 할 수 있습니다.
1. 전원선인 아두이노 5V핀과 브레드보드의 [+]부분과 연결
2. 전원선은 오른쪽 윗부분 와이어에서 색상을 빨간색으로 변경
3. 그라운드(GND)의 아두이노 핀과 [-]부분과 연결
4. 그라운드 선은 오른쪽 윗부분 와이어의 색상을 검정색으로 변경
(선택사항) 배선 부분을 더블클릭하여 반듯하게 정리(*선택사항으로 취향에 따라 정리하시면 됩니다)
LED 배치 및 저항 연결
위 작업과 같이 LED를 제어하기 위하여 저항과 함께 배선합니다.
1. 오른쪽 부품리스트에서 LED를 배치
2. 브레드보드는 세로로 연결되어 있으므로 세로로 저항을 배치
3. 저항값은 오른쪽 위의 레지스터에서 저항값을 1k 옴으로 입력 (저항은 100~1K 옴 값으로 설정하면 문제없음)
4. 데이터선을 각각 아두이노의 9번 핀을 아래 그림과 같이 연결
소스코드
소스코드를 아래와 같이 입력합니다.
int brightness = 0;
void setup()
{
pinMode(9, OUTPUT);
}
void loop()
{
for (brightness = 0; brightness <= 255; brightness += 5) {
analogWrite(9, brightness);
delay(30); // Wait for 30 millisecond(s)
}
for (brightness = 255; brightness >= 0; brightness -= 5) {
analogWrite(9, brightness);
delay(30); // Wait for 30 millisecond(s)
}
}
코드 설명
- int brightness = 0;
- brightness라는 변수를 선언한다.
- setup함수의 pinMode(9, OUTPUT);
- 9핀의 모드를 OUTPUT(출력)으로 설정한다.
- loop함수의 첫 번째 for문
- brightness 변수를 0 ~ 255까지 5씩 증가시키면서 LED에 신호를 보낸다.
- 지연시간을 30ms를 줘서 LED가 서서히 켜지도록 한다.
- loop함수의 두 번째 for문
- brightness 변수를 255 ~ 0까지 5씩 감소시키면서 LED에 신호를 보낸다.
- 지연시간을 30ms를 줘서 LED가 서서히 꺼지도록 한다.
동작확인 (오실로스코프 연결)
소스코드의 동작을 오실로스코프를 연결하여 파형을 같이 보면서 LED가 페이드 인 페이드 아웃하는 것을 확인한다.
1. 검색에서 "오실로스코프" 검색
2. 아래 그림과 같이 오실로스코프를 LED 각각의 단자에 연결
3. 오실로스코프의 시간을 1ms로 설정
4. 동작 확인
동작확인 (멀티미터 - 전압 확인)
소스코드의 동작을 멀티미터를 연결하여 파형을 같이 보면서 LED가 페이드 인 페이드 아웃하는 것을 확인한다.
1. 검색에서 "멀티미터" 검색
2. 아래 그림과 같이 멀티미터를 GND(그라운드)와 LED 단자에 연결
3. 동작 확인
오늘은 PWM 파형을 이용해서 LED를 페이드인/아웃하는 방법에 대해서 알아보았습니다.
회로에서 LED가 아닌 모터로 변경한다면 모터의 속도도 제어할 수 있습니다.
'아두이노 > 아두이노 기초' 카테고리의 다른 글
틴커캐드 아두이노 푸시버튼(스위치) 제어하기 (0) | 2020.09.05 |
---|---|
틴커캐드 아두이노 3색 RGB LED 제어하기 (1) | 2020.08.04 |
틴커캐드 아두이노 브레드보드와 LED 3개 제어하기 (0) | 2020.05.27 |
틴커캐드 아두이노 시뮬레이터 LED 제어하기(깜빡이기) (0) | 2020.05.26 |
틴커캐드 아두이노 시뮬레이터 사용법 (0) | 2020.05.25 |