'Analog' 태그의 글 목록 :: 잡다한 프로그래밍
반응형

1. ADC란?

Analog Digital Converter로서 연속적인 신호인 아날로그 신호를 부호화된 디지털 신호로 변환하는 장치를 의미한다. A\DC는 온도, 압력, 음성, 영상신호, 전압 등을 실생활에서 연속적인 아날로그 신호를 측정하여 그 신호를 컴퓨터로 입력하고 디지털로 변환하는 것을 의미한다. 여기서 우리가 사용할 가변저항이 ADC역할을 한다.

ADC그림


2. 가변저항 실습하기

가변저항과 LED를 사용하여 Analog Input / Output 실습을 진항한다. 실습에 필요한 사전 준비물은 다음과 같다.

  • 가변저항이란 : 저항의 값이 고정되어있지 않고 회전 스위치를 이용하여 임의의 저항값으로 변경이 가능한 저항

실습 준비물

가변저항은 다음과 같이 GND, A0, 5V로 구성되어있다

가변저항 설명

준비가 끝났다면 다음과 같이 회로를 구성한다 5V GND를 가변저항과, LED에 가변저항 A0은 아두이노 A0부분에, LED의 + 부분은 9번핀에 연결한다

회로구성

회로를 구성하였다면 다음과 같이 코드를 작성한다. 이때 sensorValue를 보면 sensorPin/4를 하는데 4로 나눠주는 이유는 0~1024 까지나 오는 결과 값을 analogRead에 맞게 0~255로 바꾸기 위해 4로 나눠주는 것이다

int sensorPin = A0;
int led = 9;
void setup()
{
	pinMode(led, OUTPUT);
	Serial.begin(9600);
}
	void loop()
{
	int sensorValue = 0;
	sensorValue = analogRead(sensorPin)/4;
	analogWrite(led, sensorValue);
	Serial.println(sensorValue);
	delay(10);
}
반응형
반응형

1. PWM이란?

Pulse Width Modulation으로서 펄스폭을 조절해서 전류를 조정하는것 ex) 무드등 제어, 부저 음계 제어 등

아두이노 우노 보드에서는 다음 그림과 같이 3, 5, 6, 9, 10, 11번 핀이 PWM 출력 기능을 제공함

아두이노 PWM 핀 번호

만약 사용자가 전류를 흘리고 싶다면 analogWrite() 함수에 숫자를 넣으면 사용할 수 있고 이는 0~255 범위를 가진다. 다음 그림처럼 사용자가 0, 64, 127, 191, 255를 입력했을때 다음과 같은 펄스폭을 가지게 된다

펄스폭 예


2. PWM을 이용한 LED밝기 조절 예제

PWM이 무엇인지 알았다면 LED를 이용하여 실제 예제를 학습해보자. 다음 그림과 같이 브레드보드 1개, 아두이노 우노, LED 1개, 1K저항 1개를 사용하였다.

실험 준비

준비한 준비물의 회로를 다음과 같이 구성한다. LED와 1K저항을 연결하고 빨간선은 +를 의미 검은선은 GRN을 의미한다

회로구성

다음과 같이 회로를 구성하였다면 다음과 같이 코드를 작성한다. 다음 코드는 analogWrite를 사용해서 9번핀에 brightness만큼 전류를 흘려주고 돌때마다 brightness가 5씩 증가하고 최대인 255에 도달하였다면 - 해주는 방식으로 진행되는 코드이다

int led = 9; //9번핀을 사용한다
int brightness = 0; // 처음 LED밝기
int fadeAmount = 5; // 5씩 밝아지게 함
void setup()
{
	pinMode(led, OUTPUT);
}
void loop()
{
	analogWrite(led, brightness);
	brightness = brightness + fadeAmount;
	if (brightness == 0 || brightness == 255) {
		fadeAmount = ‐fadeAmount ;
	}
	delay(30);
}

 

반응형

+ Recent posts