ZEO 모듈을 처음 사용하시는 분은 http://whiteat.com/57501 를 참조하여 드라이버를 설치하시고, 프로그래밍 가이드를 따라 해 보시기 바랍니다.
하드웨어 연결
데이터시트의 핀명을 참조하여 아래 사진처럼 PWMA-1,2,3, PWMB-1,2,3,4, PWMC-1,2,3,4 에 각각 적색 LED와 1K옴 저항을 연결합니다.
(VCC – 1K옴저항 – 포트로 연결 합니다.)
Visual Studio 2008 의 C#으로 PWM11App 라는 응용프로그램을 만들어 보겠습니다.
먼저 Windows Forms Application Template 으로 PWM11App 라는 프로젝트를 생성합니다.
C#을 처음 접하시는 분은 http://whiteat.com/31559 를 먼저 해보시기 바랍니다.
라이브러리 추가 & 기본 코드 추가
http://whiteat.com/product/ZEO/ZEO-Programming_Guide.pdf 의 프로그래밍 가이드를 참조하여 라이브러리를 추가합니다.
라이브러리를 추가하면 아래와 같이 솔루션 창에 ZeoDotNetLib 와 LibUsbDotNet 이 생성됩니다.
Form_Load 이벤트와 Form_Closing 이벤트에 각각 ZEO 모듈의 초기화코드와 종료 코드를 추가합니다.
using ZeoDotNetLib;
namespace PWM11App { public partial class Form1 : Form { ZeoLib ZEO = new ZeoLib();
public Form1() { InitializeComponent(); }
private void Form1_Load(object sender, EventArgs e) { this.ZEO.Open(); this.ZEO.InitZeo(0); this.label1.Text = "ZEO-" + this.ZEO.GetZeroType().ToString();
// PWM 초기화 모든 LED 를 최대값으로 ON 한다. this.ZEO.InitPWMA(PWM_Frequency._2Khz, 0, 0, 0); this.ZEO.InitPWMB(PWM_Frequency._2Khz, 0, 0, 0,0); this.ZEO.InitPWMC(PWM_Frequency._2Khz, 0, 0, 0,0); }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { this.ZEO.Close(); } } } |
컨트롤 추가
11개의 PWM 을 제어하기 위해 11개의 Trackbar ( 슬라이드바)를 추가하고 좌측에 라벨을 붙여 줍니다.
TrackBar 의 Scroll 이벤트를 걸어 스크롤을 변경할 때마다 LED 밝기를 조절할 수 있습니다.
private void trbPWMA1_Scroll(object sender, EventArgs e) { this.ZEO.SetPWM(ZeoLib.PWM.A,1,Convert.ToUInt16((sender as TrackBar).Value)); }
private void trbPWMA2_Scroll(object sender, EventArgs e) { this.ZEO.SetPWM(ZeoLib.PWM.A, 2, Convert.ToUInt16((sender as TrackBar).Value)); }
private void trbPWMA3_Scroll(object sender, EventArgs e) { this.ZEO.SetPWM(ZeoLib.PWM.A, 3, Convert.ToUInt16((sender as TrackBar).Value)); }
private void trbPWMB1_Scroll(object sender, EventArgs e) { this.ZEO.SetPWM(ZeoLib.PWM.B, 1, Convert.ToUInt16((sender as TrackBar).Value)); }
private void trbPWMB2_Scroll(object sender, EventArgs e) { this.ZEO.SetPWM(ZeoLib.PWM.B, 2, Convert.ToUInt16((sender as TrackBar).Value)); }
private void trbPWMB3_Scroll(object sender, EventArgs e) { this.ZEO.SetPWM(ZeoLib.PWM.B, 3, Convert.ToUInt16((sender as TrackBar).Value)); }
private void trbPWMB4_Scroll(object sender, EventArgs e) { this.ZEO.SetPWM(ZeoLib.PWM.B, 4, Convert.ToUInt16((sender as TrackBar).Value)); }
private void trbPWMC1_Scroll(object sender, EventArgs e) { this.ZEO.SetPWM(ZeoLib.PWM.C, 1, Convert.ToUInt16((sender as TrackBar).Value)); }
private void trbPWMC2_Scroll(object sender, EventArgs e) { this.ZEO.SetPWM(ZeoLib.PWM.C, 2, Convert.ToUInt16((sender as TrackBar).Value)); }
private void trbPWMC3_Scroll(object sender, EventArgs e) { this.ZEO.SetPWM(ZeoLib.PWM.C, 3, Convert.ToUInt16((sender as TrackBar).Value)); }
private void trbPWMC4_Scroll(object sender, EventArgs e) { this.ZEO.SetPWM(ZeoLib.PWM.C, 4, Convert.ToUInt16((sender as TrackBar).Value)); } |
위와 같은 설정이 되면 아래의 결과를 얻을 수 있습니다.
PWMA-1부터 PWMC-4 의 PWM 을 차례대로 제어하는 동영상입니다.
'ZEO 시리즈' 카테고리의 다른 글
ZEO-S ADC 샘플링 테스트 C# (0) | 2013.04.16 |
---|---|
ZEO-IO BOARD – ZEO IO 실험 보드 (0) | 2013.04.10 |
ZEO-S 모듈로 서보모터 제어 (0) | 2012.11.16 |
02_인체감지 센서 모듈로 침입자 감시, 프로그램 작성 (0) | 2012.11.01 |
01_인체감지 센서 모듈로 침입자 감시, 하드웨어 연결 (0) | 2012.11.01 |