[Arduino|아두이노] 서보모터(SG90) 구동하는 방법 (Tower Pro, Micro Servo, B10K, 가변저항)

아두이노 서보모터(SG90) 구동하는 방법


인터넷에서 저렴하게 구할수 있는 미니 서보모터(Servo Moter)를 

구동하는 예제를 만들어 보자.


서보모터(SG90)180도를 회전할수 있으며 

1도씩 각도 값을 전달하여 정밀하게 모터를 컨트롤 할 수 있다. 

로봇을 제작할때 많이 사용한다고 한다.



소스는 아두이노 기본 예제를 참조 하였다.




서보모터가 180도 회전하고 다시 반대로 180도 회전하는 예제



서버 모터를 쉽게 컨트롤 하기 위해서는 "Servo.h" 파일은 포함해야 한다


#include<Servo.h>

Servo myservo; int servoPin = 12; int pos = 0; void setup() { myservo.attach(servoPin); } void loop() { for(pos = 0; pos < 180; pos += 1) { myservo.write(pos); delay(15); //delay값을 조정하여 모터의 속도를 컨터롤가능 } for(pos = 180; pos>=1; pos-=1) { myservo.write(pos); delay(15); } }


모터의 3가지 선을 잘 연결한다

브라운색 GND, 빨간선 5V, 오렌지색 12번핀




연결이 다 되었으면 구동시켜 보자

모터가 180도 회전하고 다시 반대로 180도 회전하는 것을

확인할 수 있다

내 모터는 불량품인지 180도를 다 회전하지 못한다 ㅠ




가변저항(B10K)의 값만큼 모터를 구동하는 예제



"map"함수를 사용하여 가변저항의 값(1024)과 서버모터 회전각도(180)과

매핑하여 가변저항값 만큼 서버모터가 회전하도록 한다


#include<Servo.h>

Servo myservo;
int servoPin = 12;
int potPin = A0;
int val;

void setup() {
  myservo.attach(servoPin);
}

void loop() {
  val = analogRead(potPin);
  val = map(val, 0, 1023, 0, 179);
  myservo.write(val);
  delay(15);  
}


쉽게 구할수 있는 가변저항(B10K) 이다

0~1023의 값을 출력한다



가변저항을 아두이노에 연결한다




서보모터도 아두이노에 연결한다



가변저항을 돌려서 값을 전달하면 서보모터가 해당 값만큼

회전하는 것을 확인할 수 있다


 

댓글

Designed by JB FACTORY