반응형
일정한 거리 값(15cm 이내)이 측정되면, 서보모터 움직이기
(준비물)
아두이노 우노(Arduino Uno)
USB 케이블
서보모터
초음파 센서
점퍼 케이블
(회로 연결)
#include<Servo.h> // 서보모터 헤더파일 추가
Servo myservo; // 서보모터 구조체 선언
int pin_trig = 13; // 초음파 센서 송신부
int pin_echo = 12; // 초음파 센서 수신부
float duration = 0, distance = 0; // 초음파 센서를 이용한 주기 및 거리 측정
void setup(){
pinMode(pin_trig, OUTPUT);
pinMode(pin_echo, INPUT);
}
void loop(){
digitalWrite(pin_trig, HIGH); // 초음파 발생하여 주기 측정
delay(10);
digitalWrite(pin_trig, LOW);
duration = pulseIn(pin_echo,HIGH); // pulseIn() 함수를 이용한 초음파 센서 주기(ms) 반환
distance = ((float)(340 * duration)) / 10000 / 2; // cm 단위 거리 변환
if(distance < 15){ // 거리가 15cm 미만일 때
myservo.attach(9);
myservo.write(90); // 서보모터 제어
delay(100);
myservo.write(140);
delay(100);
myservo.detach();
}
else{
delay(300);
}
}
반응형
'Arduino' 카테고리의 다른 글
[Arduino] 초음파 센서 실습: 장애물까지의 거리 계산하여 출력하기 (0) | 2021.06.16 |
---|---|
[Arduino] pulseIn() (0) | 2021.06.14 |
[Arduino] 초음파 센서 실습: pulseIn() 함수 사용하여 시간(㎲) 출력하기 (0) | 2021.05.27 |
[Arduino] 초음파 센서(Ultrasonic Sensor)란? (0) | 2021.05.23 |
[Arduino] 서보모터 실습: 시리얼 통신으로 서보모터 제어하기 (switch) (0) | 2021.05.19 |