Arduino/서보 모터(Servo motor)

포텐시오미터의 입력 값에 따라 서보 모터의 각도 조절하기

DesignatedRoom 2020. 10. 28. 18:23

서보 모터의 연결은 아래와 같다.

designatedroom87.tistory.com/247?category=899480

 

서보 모터의 기본적인 연결 및 동작

서보 모터는 3개의 선으로 구성되어 있는데, 아래의 세 선이 서보 모터에 연결된 선이다. 이 선 색을 중심으로 보면 서보 모터의 가운데는 VCC에, 갈색은 GND에, 주황색 선은 출력선이다. 이 출력선

designatedroom87.tistory.com

포텐시오미터의 연결을 알아보자.

아래의 포텐시오미터의 연결 그림에서 왼쪽의 검은 선은 GND에 연결 된다.

중간의 선은 A0핀에 연결이 된다.

맨 오른쪽 선은 VCC에 연결 한다.

왼쪽의 검은 선 아래의 붉은 선은 신경쓰지말자. 서보 모터에 연결된 선이다.

 

아래의 버튼은 무시하자. 나중에 필요한 것이다.

 

아래의 예제는 

포텐시오미터의 값에 따라 서보 모터의 각도 조절하기이다. 
포텐시오미터는 0~1023사이의 값을 갖고 서보모터는 0~180도 사이의 값을 갖는다.
포텐시오미터의 값을 받아 이를 각도로 환산하면 된다.

소스 코드

//  포텐시오미터의 값에 따라 서보 모터의 각도 조절하기
//  포텐시오미터는 0~1023사이의 값을 갖고 서보모터는 0~180도 사이의 값을 갖는다.
//  포텐시오미터의 값을 받아 이를 각도로 환산하면 된다.
#include <Servo.h>

Servo servo;

void setup() {
  // put your setup code here, to run once:
  servo.attach(6);    //  6번핀

  Serial.begin(9600);
  
  pinMode(A0,INPUT);  //  A0핀과 포텐시오미터 연결
}

void loop() {
  // put your main code here, to run repeatedly:
  
  int poten = analogRead(A0);
  //Serial.println(poten);
  
  //  아날로그 값을 각도 값으로 환산
  int degree = (float)poten / 1023 * 180;
  
  Serial.println(degree);
  
  servo.write(degree);

  delay(100);
}