일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바스크립트
- cocos2d-x
- 프로그램
- c#
- HTML
- flex
- 챗지피티
- 그누보드
- Php공부
- Python
- 아두이노 초보
- 쿠팡파트너스
- php
- 웹
- Ajax
- vultr
- 아두이노 기초강좌
- 아두이노 강좌
- 가상서버
- 자동글쓰기
- 자동포스팅
- Javascript
- vps
- 아두이노
- 파이썬
- 워드프레스
- ChatGPT
- 무료일러스트
- 파싱
- 자동블로그
- Today
- Total
플밍
아두이노 기초강좌 - 7. 아날로그 출력 본문
본 강좌는 지인의 사이트에서 허락받고 퍼온 강좌입니다.
다른곳으로 불펌하시면 곤란합니다.
그리고 제가 아두이노를 그리 잘 알지는 못합니다.
저한테 물어보시는것도 곤란.... ^^
#ads_1
아날로그 출력은 입력에 비해 그렇게 간단하지는 않습니다.
말은 아날로그 출력이지만 실제로는 디지털 출력입니다. 아두이노는 디지털로만 출력할 수 있기 때문이죠.
그럼 어떻게 아닐로그 출력을 흉내 낼까요?
아래 그림을 보세요
[그림 1]
[그림 2]
V = IR V : 전압, I : 전류, R : 저항 |
#ads_2
#define LED_PIN 3
void setup() { Serial.begin(9600); }
void loop() { float val = analogRead(A0); int pwm_val = (int)(255 * (val / 1023)); Serial.println(pwm_val); analogWrite(LED_PIN, pwm_val); delay(100); }
|
가변저항으로부터 입력받는건 앞에서 했으니까 넘어갑니다.
int pwm_val = (int)(255 * (val / 1023));
가변저항으로부터 입력받은 아날로그 값은 0~1023까지 입니다.
그런데 아날로그 출력은 0~255까지입니다.
그래서 입력된 값의 백분률로 곱해주면 출력할 값이 나옵니다.
analogWrite(LED_PIN, pwm_val);
위에서 계산된 결과를 analogWrite() 로 출력을 해줍니다.
업로드를 하시고 가변저항을 천천히 돌려보세요.
LED의 불빛 세기가 저항값에 따라 바뀌는게 보이시나요?
#ads_3