아날로그(Analog)란 어떤 양 또는 데이터를 연속적으로 변환하는 물리량(전압, 전류 등)으로 표현 하는 것이고,
디지털(Digital)은 어떤 양 또는 데이터를 2진수로 표현하는 것을 말합니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
digitalWrite(2, HIGH); // 4. HIGH: 전압이 5V(아두이노 보드 전압)로 설정됩니다.
digitalWrite(2, LOW); // 6. LOW: 전압이 0V로 설정됩니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
처럼 HIGH(1)와 LOW(0) 두 값 뿐인 디지털 신호를
HIGH인 시간과 LOW인 시간의 비율을 조정해서 아날로그 효과를 내는 방법으로써 0~255의
값으로 표현된다. 0은 LOW 0V, 255는 HIGH 5V
HIGH와 LOW가 주기(pulse)를 가지며
0에서 255로 갈수록 다음과 같이 HIGH의 비중이 길어져 그 전압의 평균값을 출력으로 만들어낸다.
digitalWrite(pin, HIGH/LOW) 는 0V와 5V만 출력하지만
analogWrite(pin, 0~255 숫자) 로 0V와 5V사이의 특정 전압을 만들어내는 것이다.
int led = 3;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
for (int i = 0; i <= 255; i++) {
analogWrite(led, i);
delay(20);
}
for (int i = 255; i >= 0; i--) {
analogWrite(led, i);
delay(20);
}
}
int led = 3; 에서 핀을 지정할 땐 PWM전용핀을써야한다.
PWM전용핀은 디지털핀에서 - 이 숫자 앞에 쓰여 있다.
위 예제로 led의 밝기를 점점 밝게 > 점점 어둡게 할 수 있다.
아주 유용한 정보네요!