-
아두이노 프로젝트 | 밝기 조절이 가능한 스탠드Technology/Arduino 2023. 9. 1. 18:00
1. 밝기 조절이 가능한 스탠드
일상에서 쉽게 발견할 수 있는 스탠드를 아두이노 플랫폼으로 구현해보자. 구현하고자 하는 스탠드는 택트 스위치와 가변저항으로 구성된 다이얼 스위치를 한 번 누르면 노란색 LED가 켜진다. 노란색 LED가 켜진 상태에서 다이얼을 돌리면 LED의 밝기를 조절할 수 있다. 노란색 LED가 켜진 상태에서 다이얼 스위치를 다시 한 번 더 누르면 노란색 LED가 꺼지는 프로그램을 작성해보자.
2. 프로젝트
2.1. 회로 구성
2.2. 프로그램 작성
int LED = 11; // 정수형 변수 선언 후 디지털 핀 번호 11로 초기화 int state = 0; // 정수형 변수 선언 후 0으로 초기화 int Potentiometer = A0; // 정수형 변수 선언 후 아날로그 핀 번호 A0로 초기화 int value = 0; // 정수형 변수 선언 후 0으로 초기화 int Switch = 8; // 정수형 변수 선언 후 디지털 핀 번호 8로 초기화 int present = 0; // 정수형 변수 선언 후 0으로 초기화 int previous = 0; // 정수형 변수 선언 후 0으로 초기화 void setup() { pinMode(LED, OUTPUT); // 디지털 11번 핀을 출력(OUTPUT) 모드로 설정 pinMode(Potentiometer, INPUT); // 아날로그 A0번 핀을 출력(INPUT) 모드로 설정 pinMode(Switch, INPUT); // 디지털 8번 핀을 출력(INPUT) 모드로 설정 } void loop() { present = digitalRead(Switch); // 디지털 8번 핀으로부터 디지털 신호를 입력 받은 후 변수에 저장 // 택트 스위치 토글 // 과거 변수에 저장된 값이 1, 그리고 현재 변수에 저장된 값이 0이면 실행 if (previous == 1 && present == 0) { if (state == HIGH) // 변수에 저장된 값이 HIGH라면 실행 { state = LOW; // 변수에 LOW값을 저장 } else // 변수에 저장된 값이 HIGH가 아니라면 실행 { state = HIGH; // 변수에 HIGH값을 저장 } } // LED 밝기 조절 if (state == HIGH) // 변수에 저장된 값이 HIGH라면 실행 { // 아날로그 A0번 핀으로부터 받은 아날로그 신호값을 변수에 저장 value = analogRead(Potentiometer); // 변수에 저장된 신호값의 범위를 0~1023에서 0~255로 조정 value = map(value, 0, 1023, 0, 255); analogWrite(LED, value); // 디지털 11번 핀에 변수에 저장된 신호값을 출력 } else // 변수에 저장된 값이 HIGH가 아니라면 실행 { analogWrite(LED, 0); // 디지털 11번 핀에 아날로그 신호 0을 출력 } previous = present; // 과거 변수에 현재 변수에 저장된 값을 저장 }
[함께 읽으면 좋은 페이지]
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 프로젝트 | 디지털 피아노 (0) 2023.11.10 아두이노 | 피에조 부저 (1) 2023.11.03 아두이노 | 가변저항 (0) 2023.08.25 아두이노 아날로그 신호 출력: PWM (0) 2023.08.18 아두이노 프로젝트 | 어두우면 켜지는 가로등 (0) 2023.08.11