ZEO-S 제품 자료입니다.
먼저 서보모터에 대한 설명을 참조하세요
아날로그 서보 모터 제어
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 시간에 따른 위치입니다.
ON시간: 0.7mS
축의 위치: -90도
ON시간: 1.5mS
축의 위치: 0도
ON시간: 2.3mS
축의 위치: +90도
-90도 +90도 사이의 임의의 각으로 이동하려면 ON 시간을 적당히 조절하면 됩니다.
전체 움직이는 각도(180도)와 ON 시간의 차이(2.3mS – 0.7ms) 라서
1.6mS/180도 = 0.0088888mS/1도 가 됩니다.
예를 들어 30도에 위치하려면
0.0088888*30 = 0.26mS 니, 1.5mS(0도 일 때) + 0.26mS(30도 일 떄) 만큼 ON 하면 됩니다.
서보 모터 제어 동영상
아래의 동영상과 같이 ON 값에 따라 -90도 ~ +90도를 회전합니다.
- [2016/07/06] SLA7024M,SLA7026M 데이터시트 (2199)
- [2015/08/20] SG90 TowerPro 서보모터 (2142)
- [2015/06/08] ZEO-S C++ 라이브러리 ver. 1.01 (0)
- [2015/06/01] ZEO-S C++ 라이브러리 ver. 1.0 (0)
- [2015/04/15] 2N2222 NPN 트랜지스터 (3113)
- [2015/03/15] 블루투스로 스텝모터 제어 (4821)
- [2015/03/15] 시리얼 포트로 스텝모터 제어 (3319)
- [2014/11/28] 간단한 유니폴라 스텝모터 구동 (3883)
- [2014/11/28] 컴퓨터-아두이노 간의 블루투스 통신 (채팅) (4806)
- [2014/04/18] 0. LED 깜박이기 (3114)