본문 바로가기

반응형

Arduino

(49)
[Arduino] 서보모터 실습: 일정한 거리 값(15cm 이내)이 측정되면, 서보모터 움직이기 일정한 거리 값(15cm 이내)이 측정되면, 서보모터 움직이기 (준비물) 아두이노 우노(Arduino Uno) USB 케이블 서보모터 초음파 센서 점퍼 케이블 (회로 연결) #include // 서보모터 헤더파일 추가 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); // 초음파 발..
[Arduino] 초음파 센서 실습: 장애물까지의 거리 계산하여 출력하기 장애물까지의 거리 계산하여 출력하기 (준비물) 아두이노 우노(Arduino Uno) USB 케이블 초음파 센서 점퍼 케이블 (회로 연결) int pinEcho = 12 ; int pinTrigger = 13 ; void setup ( ) { Serial . 시작 ( 9600 ) ; pinMode ( pinEcho , INPUT ) // 수신부 pinMode ( pinTrigger , OUTPUT ); // 송신부 (초음파를 보냄) Serial . println ( "시작" ); } void loop ( ) { float fDuration= 0, fDistance = 0; digitalWrite(pinTrigger, HIGH); // 초음파를 보냄 delayMicroseconds(10); // 10us 동..
[Arduino] pulseIn() pulseIn() 함수는 펄스 신호(HIGH 또는 LOW)를 읽어 그 길이를 마이크로초 단위로 반환해 주는 함수이다. pulseIn(pin, value); pulseIn(pin, vlaue, timeout); 지정한 핀으로부터 value 펄스(HIGH 또는 LOW)를 읽어들인다. value가 HIGH 이면, 핀의 신호가 HIGH에서 LOW로 바뀔 때까지의 시간을 마이크로초(us)로 반환하지만 지정한 timeout 시간 이전에 펄스가 감지되지 않으면 0을 반환하게 된다. pulseIn() 함수는 마이크로초 단위이기 때문에 길이(cm)로 변환하기 위해서 아래와 같은 수식을 적용해 준다. // 거리 = 속도 × 시간 거리 계산하기 (340m/s) × pulseIn()ms × (1/2) = (340m/s) × ..
[Arduino] 초음파 센서 실습: pulseIn() 함수 사용하여 시간(㎲) 출력하기 pulseIn() 함수 사용하여 시간(㎲) 출력하기 (준비물) 아두이노 우노(Arduino Uno) USB 케이블 초음파 센서 점퍼 케이블 (회로 연결) ​ int pin_trig = 13; // 초음파 발생 핀 int pin_echo = 12; // 초음파 수신 핀 void setup(){ pinMode(pin_trig, OUTPUT); // trig 송신부 출력 선언 pinMode(pin_echo, INPUT); // echo 수신부 입력 선언 Serial.begin(115200); } void loop(){ digitalWrite(pin_trig, HIGH); // 초음파 발생(HIGH, LOW 반복하며 신호 발생) delay(10); digitalWrite(pin_trig, LOW); Serial..
[Arduino] 초음파 센서(Ultrasonic Sensor)란? 초음파는 보통 사람이 들을 수 없는 20,000Hz 이상의 높은 진동수를 가진 소리를 말하며, 박쥐, 돌고래 등의 동물들이 초음파를 사용하고 있다. ​ 높은 주파수와 짧은 파장을 지닌 초음파 센서는 로봇 청소기, 자동차 등 물체를 감지하거나 물체 사이의 거리를 측정할 때 주로 활용된다. ​ 초음파 센서는 초음파를 송신하는 Trig와 수신하는 Echo 두 부분으로 나누어지는데, 송신부에서는 일정한 간격으로 높은 주파수의 초음파를 발생시키고, 수신부는 물체에 부딪혀 반사되어 되돌아오는 초음파를 받는다. 이때 초음파가 발생된 후, 되돌아오는 시간을 측정하여 물체와의 거리를 잴 수 있다. ​ ​
[Arduino] 서보모터 실습: 시리얼 통신으로 서보모터 제어하기 (switch) 시리얼 통신으로 서보모터 제어하기 (switch) (준비물) 아두이노 우노(Arduino Uno) USB 케이블 서보모터 (회로 연결) #include Servo myServo; int servo = 9; // 서보모터의 ~PWM 아두이노 핀 번호를 선언한다. void setup(){ myServo.attach(servo); Serial.begin(115200); Serial.println("Strat!"); } void loop(){ if(Serial.available() > 0){ char data = Serial.read(); switch(data){ case '1': myServo.writeMicroseconds(500); break; case '2': myServo.writeMicrosecond..
[Arduino] 서보모터 실습: 시리얼 통신으로 서보모터 제어하기 (오류) 시리얼 통신으로 서보모터 제어하기 (오류) (준비물) 아두이노 우노(Arduino Uno) USB 케이블 서보모터 (회로 연결) ​ #include Servo myServo; int servo = 9; // 서보모터의 ~PWM 아두이노 핀 번호를 선언한다. void setup(){ myServo.attach(servo); Serial.begin(115200); Serial.println("Strat!"); } void loop(){// "Wrong Number" 문자열이 계속해서 출력되는 오류 발생 char data = Serial.read(); if(data == '1'){ myServo.writeMicroseconds(500); } else if(data == '2'){ myServo.writeMic..
[Arduino] 서보모터 실습: 시리얼 통신으로 서보모터 제어하기 (if~else) 시리얼 통신으로 서보모터 제어하기 (if~else) (준비물) 아두이노 우노(Arduino Uno) USB 케이블 서보모터 (회로 연결) #include Servo myServo; int servo = 9; // 서보모터의 ~PWM 아두이노 핀 번호를 선언한다. void setup(){ myServo.attach(servo); Serial.begin(115200); Serial.println("Strat!"); } void loop(){ if(Serial.available() > 0){ char data = Serial.read(); if(data == '1'){ myServo.writeMicroseconds(500); } else if(data == '2'){ myServo.writeMicrosecon..

반응형