반응형
안녕하세요
이번엔 서보모터 중에 sg90을 제어해 봅시다.
sg90은 다음과 같은 스펙을 가지고 있습니다.
토크 : 1.8kg/cm
정격 전압 : 4.8v
정격 전압이 4.8v니 아두이노 5v로 연결해줘야 됩니다.
다음과 같이 회로를 구성해줍니다.
9번 핀을 노란색 부분에 연결해주시고
GND를 갈색
5V를 빨간색에다가 꽂아주세요
그리고 아두이노 IDE를 실행시켜 줍니다.
SWEEP 회로를 업로드시켜줍니다.
그러면 서보모터가 180도씩 방향을 바꿔가면서 회전합니다.
코드 분석
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
일단 Servo모터를 제어하기 위해 myservo 객체를 생성하였습니다.
그리고 pos는 여기서 각도를 말합니다. 초기에 0으로 설정하였습니다.
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
setup부분에서 attach(9)로 설정하였는데
이건 9번핀을 쓰겠다는 의미입니다.
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15 ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15 ms for the servo to reach the position
}
}
loop부분에서 반복문을 통해 pos를 1씩 증가하고 있고 이걸 myservo객체에 write 해주고 있습니다.
이를 통해 서보모터가 0도에서 180도씩 증가하는걸 알 수 있습니다.
그리고 180까지 증가하면 delay(15)를 통해 15밀리세컨드 대기하고
다시 180도에서 0도로 회전을 합니다. 그리고 다시 delay 15를 하고 있습니다.
이상 아두이노 sg90. 서보모터 제어하기 였습니다.
'Coding > Arduino' 카테고리의 다른 글
아두이노 16X2 LCD 제어하기 (0) | 2022.06.20 |
---|---|
아두이노 적외선 라인트레이서 hw-511 사용법 (0) | 2022.06.17 |
아두이노 압력센서 값 얻어오기 (0) | 2022.06.15 |
아두이노 LED 켜기 (0) | 2022.06.15 |
아두이노 Wemos D1 R1 웹서버로 LED 제어하기 (0) | 2022.06.11 |