아두이노 릴리패드(RallaPad) 코딩 기초 시리즈 7번째 편입니다. 이번 주제는 아날로그 입출력으로, 3색 LED로 색을 만들고, 가변저항(포텐셔미터)으로 값을 읽어 LED 밝기를 조절합니다. 먼저 디지털과 아날로그의 차이부터 정리합니다.
메이크샌드박스에 오신것을 환영합니다.
3-1. RallaPad 프레임워크 실습(아래 이미지 중 해당 번호를 클릭하면 해당 페이지로 넘어갑니다)
makesandbox.cc
메이크샌드박스에 오신것을 환영합니다.
makesandbox.cc
1. 디지털 vs 아날로그
- 디지털 — 0 또는 1(꺼짐/켜짐)만 다룸.
pinMode(),digitalRead(),digitalWrite(HIGH/LOW) - 아날로그 — 값을 일정 구간으로 나눠 연속적인 세기를 다룸.
analogRead()(입력 0~1023),analogWrite()(출력 0~255, PWM) - 핀 구분 — 릴리패드에서 3·5·6번은 아날로그 출력(PWM) 가능 핀, 13번은 디지털 전용 핀입니다.
2. 3색 LED — 아날로그 출력
RGB 세 색의 밝기를 analogWrite(0~255)로 조합해 다양한 색을 만듭니다.
int redPin = 9; // 3색 LED red 핀
int greenPin = 10; // 3색 LED green 핀
int bluePin = 11; // 3색 LED blue 핀
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
RGB_Act(0, 255, 255); // red
delay(1000);
RGB_Act(255, 0, 255); // green
delay(1000);
RGB_Act(255, 255, 0); // blue
delay(1000);
RGB_Act(255, 255, 255); // off (이 소자는 값이 반전됨)
delay(1000);
}
// analogWrite로 각 색의 밝기(0~255)를 지정
void RGB_Act(int r, int g, int b) {
analogWrite(redPin, r);
analogWrite(greenPin, g);
analogWrite(bluePin, b);
}
⚠️ 소자에 따라 값이 반전될 수 있습니다. 이 예제의 LED는 값이 반전되어 (0,0,0)이 흰색, (255,255,255)가 꺼짐이 됩니다. 색이 반대로 나오면 값을 뒤집어 보세요.
[#욜로#랄라패드] #RallaPad_FrameWork_A&O(Analog&Output,아날로그&출력)_실습_3색LED
안녕하세요! 누구나 원하는걸 만들어보는 메이크샌드박스 입니다! 오늘 소개해 드릴 내용은 저희가 이번에 ...
blog.naver.com
3. 가변저항 — 아날로그 입력
슬라이드 가변저항의 위치를 analogRead()로 읽어 시리얼 모니터에 출력합니다. 값은 0~1023 범위입니다.
int VAR = A5; // 슬라이드 가변저항이 연결된 핀
void setup() {
Serial.begin(9600); // 시리얼 통신 시작
}
void loop() {
int a = analogRead(VAR); // 가변저항 값 읽기 (0~1023)
Serial.print("VAR = ");
Serial.println(a); // 시리얼 모니터로 출력
}
[#욜로#랄라패드] #RallaPad_FrameWork_A&I(Analog&Input,아날로그&입력)_실습_슬라이드 가변저항
안녕하세요! 누구나 원하는걸 만들어보는 메이크샌드박스 입니다! 오늘 소개해 드릴 내용은 저희가 이번에 ...
blog.naver.com
4. 입력 → 출력 연결 — 밝기 조절 디머
입력(가변저항 0~1023)과 출력(analogWrite 0~255)의 범위가 다르므로, 4로 나눠 범위를 맞춘 뒤 LED로 보냅니다. 가변저항을 돌리면 LED 밝기가 실시간으로 바뀝니다.
int LED = 3; // LED를 아날로그(PWM) 핀 3번에 연결
int val = A5; // 가변저항 핀
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
// analogRead(0~1023)를 4로 나눠 analogWrite 범위(0~255)로 변환
val = analogRead(A5) / 4;
analogWrite(LED, val); // 가변저항 값으로 LED 밝기 조절
}
핵심 포인트: analogRead(0~1023) ÷ 4 ≈ analogWrite(0~255). 이 범위 변환(맵핑)이 아날로그 입출력을 연결하는 열쇠입니다. 더 정확하게는 map(val, 0, 1023, 0, 255) 함수를 쓸 수도 있습니다.
'푸닥거리' 카테고리의 다른 글
| 아두이노 플랫폼을 활용한 코딩 기초(릴리패드)-9 (0) | 2022.04.03 |
|---|---|
| 아두이노 플랫폼을 활용한 코딩 기초(릴리패드)-8 (0) | 2022.04.03 |
| 크롬 시크릿모드 구글드라이브 파일다운로드 (0) | 2022.04.03 |
| Oracle MySQL Korea 유튜브 채널 (0) | 2022.04.02 |
| 아두이노 플랫폼을 활용한 코딩 기초(릴리패드)-6 (0) | 2022.04.02 |
댓글