설명
아날로그 신호는 아두이노 보드의 ~가 있는 핀을 사용하여 얻을 수 있다.
또한 아날로그 신호의 입력은 A0 ~ A5 를 통해 입력이 가능하다.
아날로그 신호의 입력은 5V 신호를 가변저항을 사용하여 가변적인 아날로그 신호를 A0로 입력한다.
아날로그 신호는 0 ~ 1023사이 값이며 이는 10비트를 사용하기 때문이다. 아날로그 출력은 ~5 포트를 사용한다.
구성된 회로는 다음과 같다.
회로

코드
// C++ code
//
int value, value1; /// 아날로그 입력 값
void setup()
{
Serial.begin(9600);
}
void loop()
{
value = analogRead(A0); /// A0를 통해 얻은 전압값을 0~1023으로 받음 10비트 사용
value1 = map(value, 0, 1023, 0, 255); /// 아날로그 출력은 255까지 8비트 사용함
analogWrite(5, value1);
Serial.print("analog read : ");
Serial.print(value);
Serial.print("analog write: ");
Serial.println(value1);
delay(50);
}
analogRead 함수는 0 ~ 1023 값으로 받으며 analogwrite로 가능한 범위는 0 ~ 255이다.
이에 map함수를 통해 0, 1023 의 범위 값을 0, 255범위로 정규화할 수 있다.
추가 설명
A0에는 0에서 5V 사이 값으로 입력된다. ATmega 명세에 따르면 AD컨버터는 10비트를 사용하므로 0 ~ 1023값을 받는다.
아날로그 출력을 위한 타이머는 8비트 이므로 0 ~ 255사이 값을 갖는다.
Serial 통신을 위해 세팅은 9600baud로 하여 읽은 아날로그 신호와 LED를 제어하기 위한 아날로그 신호의 값을 출력한다.
'아두이노' 카테고리의 다른 글
| 아두이노 / 시리얼 통신을 통한 서보 제어 (2) | 2024.12.20 |
|---|---|
| 아두이노 / 라즈베리파이와 아두이노의 시리얼 통신 (0) | 2024.12.20 |
| 아두이노 / 외부 전원으로 서보모터 제어하기 (5) | 2024.12.20 |
| 아두이노 / 아날로그 출력신호(PWM)로 LED 밝기 제어하기 (4) | 2024.12.08 |