반응형
안녕하십니까
전력전자와 각종MCU를 공부하고 최종적으로 작품을 만드는 전자 장인 입니다
오늘의 주제는
아두이노 우노 초음파센서 거리에 따른 서보모터 제어 코드 분석
1. 서보모터 개요
2024.01.06 - [프로그래밍/아두이노] - 아두이노 우노 서보모터 (Servo Motor) 사용법 및 코드 분석
2. 초음파센서 개요
2024.01.03 - [프로그래밍/아두이노] - 아두이노 우노 초음파센서(HC-SR04) 사용법 및 코드 분석
3. 초음파센서 및 서보모터 제어 실습 환경 세팅
1. 실습준비물
실습 준비물로는 다음과 같이 준비해주세요
1. 아두이노 우노
2. 브레드보드
3. 초음파센서
4. 서보모터 (Servo Motor)
5. 점퍼 와이어
2. 아두이노 우노 및 초음파센서, 서보모터 핀맵 연결
아두이노 우노 핀 | 초음파센서 핀 | 서보모터 핀 |
5V | VCC | VCC |
GND | GND | GND |
6 pin | - | PWM |
9 pin | Trig | - |
10 pin | Echo | - |
아두이노 우노와 초음파센서와 서보모터 간 연결 핀맵은 다음과 같습니다.
해당 핀맵 확인 후 연결해주세요
3. 코드 작성 및 결과확인
#include <Servo.h> const int trigPin = 9; // 초음파 센서 Trig 핀 const int echoPin = 10; // 초음파 센서 Echo 핀 Servo servoMotor; // 서보모터 객체 void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); servoMotor.attach(6); // 서보모터를 6번 핀에 연결 } void loop() { // 초음파 센서로부터 거리 측정 int distance = getDistance(); // 거리에 따라 서보모터 각도 제어 int angle; if (distance >= 10) { angle = 180; // 10cm 이상이면 180도 } else { angle = 0; // 10cm 미만이면 0도 } servoMotor.write(angle); // 거리 및 각도 출력 Serial.print("Distance: "); Serial.print(distance); Serial.print(" cm, Angle: "); Serial.println(angle); delay(500); // 일정 시간 대기 } int getDistance() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); return pulseIn(echoPin, HIGH) * 0.034 / 2; } |
반응형
'프로그래밍 > 아두이노' 카테고리의 다른 글
아두이노 우노 인체감지센서 (PIR) 사용법 및 코드 분석 (3) | 2024.01.10 |
---|---|
아두이노 우노 서보모터 (Servo Motor) 사용법 및 코드 분석 (3) | 2024.01.06 |
아두이노 우노 초음파센서 (HC-SR04) 값 LCD에 출력하기 (0) | 2024.01.05 |
아두이노 우노 초음파센서(HC-SR04) 사용법 및 코드 분석 (1) | 2024.01.03 |
아두이노 우노 온습도센서 (DHT11) 값 LCD에 출력하기 (0) | 2024.01.01 |
댓글