메뉴 바로가기

서브메뉴 바로가기

본문 바로가기

logo

문의(질문)하기

문의하기
ZEO 자료실
ZEO 자료실
ZEO-S 제품 자료입니다.

ZEO-S 의 Pulse Counter 로 스위치 입력을 카운터 해보았습니다. Pulse Counter 로 몇 KHz까지 정확히 읽을 수 있는지 실험해 보겠습니다.

 

ZEO-S 의 PWM (PA11) 과 Pulse Counter (PA12)를 점퍼로 연결합니다. 그러면 PA11의 PWM 출력이 PA12 의 Pulse Counter 로 입력됩니다.

 

 

 

100Khz 의 PWM으로 실험을 진행합니다.

 

 

 

 

 

10초 동안 아래처럼 약 1,000,000 개의 펄스를 입력 받게 됩니다.

 

 

 

 

 

24초 동안 아래처럼 약 24,000,000 개의 펄스를 입력 받게 됩니다.

 

 

 

 

 

 

200Khz 의 PWM에서는 10초 동안 아래처럼 약 2,000,000 개의 펄스를 입력 받게 됩니다.

 

 

200Khz 의 PWM에서도 정확한 카운터를 얻었습니다.

 

 

 

코드 C#

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ZeoDotNetLib;


namespace PulseInputFromPWM
{
  public partial class Form1 : Form
  {
    Double dTotalCnt = 0;
    UInt16 lastCnt = 0;
    ZeoLib ZEO = new ZeoLib();
    int iTmrCnt = 0;

    public Form1()
    {
      InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      this.ZEO.Open();
      this.ZEO.InitZeo(0);
      this.label1.Text = this.ZEO.ToString();

      this.ZEO.InitCount(7);
     
      // 2Khz 파형 발생
      //this.ZEO.InitPWMC(PWM_Frequency._2Khz, 0, 0, 0, 0);

      // 100Khz 파형 발생
      this.ZEO.InitPWMC(360-1, 0, 0, 0, 0);
    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
      this.ZEO.Close();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
      this.GetCounts();
      this.lblTmr.Text = (iTmrCnt++/5).ToString()+"초 경과";
    }
 
    public void GetCounts()
    {
      if (!this.ZEO.IsOpened) return;

      UInt16   _cnt = 0;
      this.ZEO.GetCount(7, out _cnt);


      if (_cnt - lastCnt >=0)
        dTotalCnt += (_cnt-lastCnt);
      else
        dTotalCnt += (_cnt - lastCnt)+65536;

      lastCnt = _cnt  ;

      this.lblTotalCount.Text = dTotalCnt.ToString();
 
    }

    private void btnStart_Click(object sender, EventArgs e)
    {
      this.ZEO.UpdatePWMC(2, 200);
      iTmrCnt = 0;
      dTotalCnt = 0;
    }

    private void btnStop_Click(object sender, EventArgs e)
    {
      this.ZEO.UpdatePWMC(2, 0);
    }
 

  }
}

 

 

 

 

DC 모터 구동에 필요한 PWM, 스텝모터 구동에 사용되는 PULSE 도 ZEO-S의 Pulse Counter로 감시하게 되면 동작 유무를 쉽게 판단할 수 있고, 데이터 라인에 연결하여 데이터 전송되는지 체크하는데 사용할 수도 있습니다.

 

 

 

 

전체 코드 Visual C# 2008 용

 

 다운로드



 

관련 문서가 검색되었습니다.
  1. [2019/04/22] [C# 코드]H-Server3 원격으로 RGB 색상 제어 by WhiteAT (355)
  2. [2019/04/22] [기본예제]H-Server3 원격으로 RGB 색상 제어 by WhiteAT (105)
  3. [2015/08/20] SG90 TowerPro 서보모터 by WhiteAT (1548)
  4. [2015/06/08] ZEO-S C++ 라이브러리 ver. 1.01 by WhiteAT (0)
  5. [2015/06/01] ZEO-S C++ 라이브러리 ver. 1.0 by WhiteAT (0)
  6. [2015/05/27] WIFI로 LCD 제어 (TCP/IP 사용) by WhiteAT (1281)
  7. [2015/04/15] 부저 실험 by WhiteAT (6307)
  8. [2015/03/15] 블루투스로 스텝모터 제어 by WhiteAT (3773)
  9. [2015/03/15] 시리얼 포트로 스텝모터 제어 by WhiteAT (2526)
  10. [2014/11/28] 컴퓨터-아두이노 간의 블루투스 통신 (채팅) by WhiteAT (3875)
List of Articles
번호 제목
공지 예제 ZEO 예제
공지 일반 ZEO 모듈,매뉴얼,드라이버,라이브러리,관리툴
16 예제 ZEO-S, CDS로 빛 밝기 -> LED ON/OFF
15 제품 ZEO-IO2 BOARD [ZEO IO 실험 보드2] file
» 예제 ZEO-S PWM 펄스를 Pulse Counter로 읽기, C#
13 예제 ZEO-S, Pulse Counter, C#
12 예제 ZEO-S, 스위치로 LED ON/OFF, C#
11 예제 ZEO-S, LED 연속으로 이동, C#
10 예제 ZEO-S, LED 이동 속도 조절, C#
9 제품 ZEO-IO BOARD – ZEO IO 실험 보드 file
8 예제 인체감지 센서 모듈로 침입자 감시 - 02. 프로그램 작성
7 예제 인체감지 센서 모듈로 침입자 감시- 01 하드웨어 연결
6 예제 ZEO-S 모듈로 PWM 펄스 11개 제어
5 예제 ZEO-S 모듈로 서보모터 제어
4 제품 ZEO 모듈이란? file
3 예제 포트 출력 테스트 - 프로그램(C# 2008)