아두이노 기초 수업
푸쉬버튼으로 전원 스위치 역할 만들기
SwMaker_Jun
2025. 6. 9. 13:54
728x90
반응형
푸쉬버튼 모듈을 위 그림과 같이 디지털 3번에 연결
360도 서보모터 디지털 7번에 연결
#include <Servo.h> // 서보모터를 제어하기 위한 라이브러리 포함
int button = 3; // 버튼을 연결한 핀 번호 (디지털 3번)
int mode = 0; // 버튼을 누를 때마다 바뀌는 변수
int servoPin = 7; // 서보모터를 연결한 핀 번호 (디지털 7번)
Servo myServo; // 서보모터 객체 생성
void setup() {
Serial.begin(9600); // 시리얼 통신 시작 (속도: 9600bps)
myServo.attach(servoPin); // 서보모터를 지정한 핀에 연결
myServo.write(90); // 서보모터를 정지 상태(90도)로 설정 [정지]
pinMode(button, INPUT); // 버튼 핀을 입력 모드로 설정
}
void loop() {
int a = digitalRead(button); // 버튼의 현재 상태를 읽어서 변수 a에 저장
// 버튼이 눌렸을 때 (a == 0 : 버튼이 눌리면 LOW 신호가 들어옴)
if (a == 0) {
mode = mode + 1; // mode 값을 1 증가시켜 상태를 바꿈
delay(500); // 너무 빠르게 눌리는 것을 방지 (디바운싱)
}
Serial.println(mode); // 현재 mode 값을 시리얼 모니터에 출력
// mode가 짝수일 때 (정지 상태)
if (mode % 2 == 0) {
myServo.write(90); // 서보모터를 정지 위치(90도)로 설정
}
// mode가 홀수일 때 (회전 상태)
else {
myServo.write(180); // 서보모터를 회전 위치(180도)로 설정
}
}
푸쉬버튼을 누를때 마다 mode 값은 1씩 증가하고
그 값을 2로 나눈 나머지가 0 또는 1 인 조건에 따라 서보모터 제어
728x90
반응형