본문 바로가기

반응형

Arduino

(49)
[Arduino] 서보모터 실습: HIGH 값을 조절하여 서보모터 제어하기 HIGH 값을 조절하여 서보모터 제어하기 준비물) 아두이노 우노(Arduino Uno) USB 케이블 서보모터 (회로 연결) ​ #include // 서보모터 헤더파일을 선언한다. Servo myServo; // 서보모터 객체를 선언한다. void setup(){ myServo.attach(9); // ~PWM 아두이노 핀 번호를 선언한다. } void loop(){ myServo.writeMicroseconds(500); // HIGH 값을 500ms 동안 유지한다. delay(1000); myServo.writeMicroseconds(1000); // +45도 delay(1000); myServo.writeMicroseconds(1500); // +90도 delay(1000); myServo.writ..
[Arduino] 서보모터 파형 ※파형의 주기는 서보모터에 따라 다르다. (서보모터: SG90) ​ ​ 서보모터는 PWM 방식으로 제어되며 파형의 주기는 20ms(50Hz)이다. f: 주파수(Hz), T: 주기(s) 1ms = 0.001s ∴f = 1/T f = 1 / (20 * 0.001)s = 50Hz 입력 파형의 HIGH 값은 보통 1~2ms 값을 가지며, HIGH 값을 유지하는 시간에 따라서 서보모터의 각도를 변화시킬 수 있다. 즉 Duty Cycle의 값을 조절하여 서보모터의 각도를 제어할 수 있다. 데이터 시트(SG90) Duty Cycle에 따른 각도 변화 ~1ms = -90deg 1.5ms = 0deg ~2ms = 90deg
[Arduino] 서보모터 실습: 0도, 90도 반복해서 움직이기 0도, 90도 반복해서 움직이기 (준비물) 아두이노 우노(Arduino Uno) USB 케이블 서보모터 (회로 연결) #include Servo myServo; void setup(){ myServo.attach(9); // ~PWM 아두이노 핀 번호를 선언한다. myServo.write(0); // 서보모터의 초기 각도 값을 '0'으로 선언한다. } void loop(){ myServo.write(90); delay(2000); myServo.write(0); delay(2000); }
[Arduino] 서보모터 함수(attach, write, detach) 서보모터를 제어하기 위한 함수를 사용하기 위해서는 헤더 파일을 불러와야 한다. 1. attach() 서보모터에 연결할 핀을 선언하는 함수이다. #include Servo.attach() 2. write() 서보모터에 원하는 각도 값을 입력하는 함수이다. 단, 값의 범위는 0~180을 사용하도록 한다. #include Servo.write() 3. detach() 서보모터의 동작을 비활성화하는 함수이다. #include Servo.detach()
[Arduino] 서보모터(Servo Motor)란? 서보모터(Servo Motor)는 물체의 방위, 위치, 자세 등을 조절하는 부품이다. 계속해서 회전하는 일반적인 모터와는 달리 입력받은 제어 값만큼 정확하게 움직이는데, 만약 90도를 움직이라는 명령을 받으면 서보모터는 90도 만큼 움직이고 멈추게 된다. 이렇듯 어느 한 지점으로 이동하거나 속도 등을 제어하는 수치를 변경하여 원하는 값만큼 조절할 수 있다. 특히 서보모터는 자동화 시스템, 로봇, 장난감 등 다양한 분야에서 광범위하게 사용되고 있다. ​ 서보모터는 갈색(-), 적색(+), 황색(신호선) 3가지 핀으로 나누어져 있으며, 각각 GND, 5V, 데이터 핀에 연결하여 제어할 수 있다. 하지만 신호 값으로 움직이지 않고 무력으로 서보모터를 가동하면 고장의 원인이 되니 주의하여야 한다. 서보모터는 회..
[Arduino] 적외선 센서 실습: 물체 감지 시 경고등 켜기 물체 감지 시 경고등 켜기 (준비물) 아두이노 우노(Arduino Uno) USB 케이블 적외선 센서 LED 저항 점퍼 케이블 (회로 연결) int infrared = 13; int led = 12; void setup() { pinMode(infrared, INPUT); pinMode(led, OUTPUT); Serial.begin(115200); } void loop() { int inf = !digitalRead(infrared); digitalWrite(led, inf); delay(500); }
[Arduino] 적외선 센서란? 적외선은 자외선, 가시광선 보다 파장이 긴 전자기파이다. 파장이 길다 보니 에너지가 낮고, 자외선처럼 해로운 화학적·생물학적 반응을 일으키지 않는다. 또한 빛의 한 종류로 눈에 보이지 않으며, 직진하는 성질이 있고 물체에 닿으면 반사된다. ​ 적외선은 주로 발열이 있는 물체에서 방출되기 때문에 온도 측정 및 감시카메라, 열화상 카메라 등에 사용되고 있다. ​ ​ 적외선 센서는 크게 적외선 LED(IR-LED)와 포토트랜지스터(Phototransistor) 모듈로 구성되어 있다. ​ 적외선 LED는 발광부로 적외선을 방출한다. 포토트랜지스터는 수광부로 물체에 부딪혀 돌아오는 적외선을 인식한다. ​ 즉, 적외선 LED로 적외선을 방출하면, 적외선은 물체에 반사되어 되돌아오게 된다. 이때 포토트랜지스터는 되돌..
[Arduino] 조도 센서 실습: 조도 값에 따라 LED On/Off 제어하기 조도 값에 따라 LED On/Off 제어하기 (준비물) 아두이노 우노(Arduino Uno) USB 케이블 조도센서 LED 점퍼 케이블 (회로 연결) int cds = A0; int led = 13; void setup() { Serial.begin(9600); pinMode(led, OUTPUT); Serial.println("Start"); } void loop() { int data = analogRead(cds); Serial.println(data); // 조도 값 출력 if(data = 100){ digitalWrite(led, HIGH); // LED On } delay(500); }

반응형