'serbo'에 해당되는 글 2건

  1. 2012.11.16 ZEO-S 모듈로 서보모터 제어
  2. 2012.11.15 서보 모터 제어 방법 1

 

먼저 서보모터에 대한 설명을 참조하세요

http://whiteat.com/58171

 

 

 

아날로그 서보 모터 제어

 

ZEO-S 모듈로 간단하게 아날로그 서보 모터를 제어할 수 있습니다.

 

 

 

 

ZEO-S 모듈에 연결

 

ZEO-S 모듈

서보 모터

3.3V (우측 1번핀)

VCC

PA0 (PWMA-1)

Control

GND (우측 20번 핀)

GND

 

서보모터 컨트롤 핀을 ZEO-S 모듈의 PA0 핀에 연결합니다.

서보모터의 VCC 핀은 ZEO-S 모듈의 3.3V에 연결하고 GND끼리 연결합니다.

 

 

 

 

C# 소스 코드

 

먼저 C#으로 작성된 전체 소스를 보면 아래와 같습니다.

 

namespace ZEO_SERVOApp

{

public partial class Form1 : Form

{

// ZEO 모듈 제어용 클래스 선언

ZeoLib ZEO = new ZeoLib();

 

UInt16 MAX_PWMA = 0;

 

public Form1()

{

InitializeComponent();

 

// 트랙바(슬라이드바)의 최소, 최대값 설정

this.trackBar1.Minimum = 700;

this.trackBar1.Maximum = 2300;

}

 

private void Form1_Load(object sender, EventArgs e)

{

// ZEO 모듈 열기

this.ZEO.Open();

 

// ZEO 모듈 초기화

this.ZEO.InitZeo(0);

 

// PWMA에 20mS 의 주기의 PWM 생성

this.ZEO.InitPWMA_US(20000, 10, 20, 20, out MAX_PWMA);

}

 

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

this.ZEO.Close();

}

 

private void trackBar1_Scroll(object sender, EventArgs e)

{

// 700uS 에서 2300uS 의 ON 신호 발생

this.ZEO.UpdatePWMA(1, Convert.ToUInt16((sender as TrackBar).Value));

}

}

}

 

 

윈도우 폼이 열릴 때 ZEO 모듈을 초기화해 주고 (Form1_Load 함수)

윈도우 폼이 닫힐 때 ZEO 모듈을 종료합니다. (Form1_FormClosing 함수)

그리고 트랙바(슬라이드바)를 움직일때마다 PWMA-1번 핀의 ON 값을 변경해 주면 됩니다.

 

 

 

 

서보 모터 제어 동영상

 

아래의 동영상과 같이 ON 값에 따라 -90도 ~ +90도를 회전합니다.

 

 


 

출처: http://whiteat.com/58172

 

Posted by WhiteAT
,


서보 모터 종류

 

서보 모터는 아날로그 서보 모터와 디지털 서보모터가 있습니다.

큰 차이점은 아날로그 서보 모터는 지속적인 PWM 신호를 주어야 하고 디지털 서보 모터는 해당 서보모터에서 제공하는 프로토콜에 맞게 시리얼 데이터를 줘야 하는 것입니다.

 

아날로그 서보 모터는 PWM 입력이 없을 경우 모터가 고정(Lock)되지 않고 풀리(UnLock)게 되어 힘을 받지 못하게 되고

디지털 서보 모터는 한번의 데이터 전송으로도 해당 각도를 유지하게 됩니다.

 

아날로그 서보 모터의 경우 제품 특성상 약간의 차이가 있을 수 있으나 대부분 조작 방법이 거의 동일합니다. 반면 디지털 서보 모터의 경우 공급업체에서 제공하는 프로토콜을 참조하여 작성 가능하며 업체마다 약간의 차이가 있을 수 있습니다.

 

 

 


 

아날로그 서보 모터








 

핀 명

설명

VCC

전원 (3~5V)

CONTROL

컨트롤 신호

GND

그라운드

 


 

PWM 20mS의 주기로 ON 시간을 0.7mS ~ 2.3mS로 하여 -90도 ~ +90도 까지 제어할 수 있습니다.

 

아래는 ON 시간에 따른 위치입니다.

 

ON시간: 0.7mS

축의 위치: -90도

 

서보 모터 -90 도서보 모터 -90 도 이동

 

 

 

 

ON시간: 1.5mS

축의 위치: 0도

 

서보 모터 0 도서보 모터 0 도 이동


 

 

 

 

ON시간: 2.3mS

축의 위치: +90도

 

 

서보 모터 90 도서보 모터 90 도 이동

 

 


-90도 +90도 사이의 임의의 각으로 이동하려면 ON 시간을 적당히 조절하면 됩니다. 
전체 움직이는 각도(180도)와 ON 시간의 차이(2.3mS -  0.7ms) 는 1.6mS/180도 = 0.0088888mS/1도 가 됩니다.
(즉, 펄스의 HIGH 시간을 0.0088888ms 늘릴수록 서보모터는 1도씩 더 이동하게 됩니다.)
예를 들어 30도에 위치하려면 
 1.5mS(0도 기준) + 0.26mS(30도 이동하려면  0.0088888*30 = 0.26mS ) 이니 1.76mS 만큼 HIGH 를 유지하면 됩니다.

 

 

 

 

파형은 어떻게 만드나요?

 

PWM 파형은 AVR 이나 PIC 등의 MCU으로 구현할 수 있습니다.

만약 PWM 파형 구현이 어려우시다면 Output 포트를 직접 구동할 수도 있습니다.

 

 

// -90 도 이동 예제

PORT = 1 // ON 시킵

Delay(700);// // 700uS 딜레이

PORT = 0;//

Delay(19300);// 19.3mS 딜레이







출처: http://whiteat.com/58171 



 

 

'전자/일반' 카테고리의 다른 글

빵판에서 사용 가능한 푸쉬,리셋 스위치  (0) 2016.04.20
USB2.0 MINI 5p cable 미니5핀 케이블  (0) 2016.03.31
다양한 저항 종류 – 용량  (0) 2016.03.31
체리, ON/OFF 제어 방식  (2) 2012.11.28
PID 제어  (4) 2012.11.28
Posted by WhiteAT
,