산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 우노로 정밀 주파수 & 듀티 사이클 측정기 만들기

부품 및 소모품

부품수량
아두이노 우노 (Arduino UNO)1
20x4 영숫자 LCD (알파뉴메릭)1

필요 도구

앱 및 온라인 서비스

프로젝트 소개

아두이노의 pulseIn() 함수를 활용하여 펄스 신호의 주파수, 하이 펄스 폭(Ton), 로우 펄스 폭(Toff), 듀티 사이클을 측정하고 20x4 LCD에 실시간 표시하는 계측기 프로젝트입니다.

아두이노 우노로 정밀 주파수 & 듀티 사이클 측정기 만들기

회로 구성

동작 원리

  1. 핀 7에서 HIGH 펄스 감지 대기 → pulseIn(pin, HIGH)로 Ton(µs) 측정
  2. 이후 LOW 펄스 폭 측정 → pulseIn(pin, LOW)로 Toff(µs) 측정
  3. 주기 = Ton + Toff
  4. 주파수 = 1,000,000 / 주기 (Hz)
  5. 듀티 사이클 = (Ton / 주기) × 100 (%)
  6. 1초 주기로 반복 측정 및 LCD 갱신

활용 분야

소스 코드

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);  // RS, EN, D4, D5, D6, D7
#define pulse_ip 7

int ontime, offtime, duty;
float freq, period;

void setup() {
  pinMode(pulse_ip, INPUT);
  lcd.begin(16, 4);
  lcd.clear();
  lcd.print("Freq:"); lcd.setCursor(0,1); lcd.print("Ton:");
  lcd.setCursor(0,2); lcd.print("Toff:"); lcd.setCursor(0,3); lcd.print("Duty:");
}

void loop() {
  ontime = pulseIn(pulse_ip, HIGH);
  offtime = pulseIn(pulse_ip, LOW);
  period = ontime + offtime;
  freq = 1000000.0 / period;
  duty = (ontime / period) * 100;
  
  lcd.setCursor(5,0); lcd.print(freq); lcd.print("Hz");
  lcd.setCursor(4,1); lcd.print(ontime); lcd.print("us");
  lcd.setCursor(5,2); lcd.print(offtime); lcd.print("us");
  lcd.setCursor(6,3); lcd.print(duty); lcd.print('%');
  delay(1000);
}

회로도

아두이노 우노로 정밀 주파수 & 듀티 사이클 측정기 만들기

제조공정

  1. AC 전력 시스템에서 주파수 및 위상 측정
  2. 파이썬 연동 아두이노 RFID 출석 관리 시스템 구축하기
  3. 아두이노, 1Sheeld, IR 제어로 만능 안드로이드 리모컨 만들기
  4. 아두이노와 스마트폰으로 만드는 스마트 전압계 – 초간단 DIY 프로젝트
  5. 스마트 IoT 자 제작: ESP8266, 아두이노 & 초음파 센서로 실시간 모니터링
  6. 아두이노 우노로 정밀 주파수 & 듀티 사이클 측정기 만들기
  7. 펌마타(Firmata)와 엑스박스 원 게임패드로 아두이노 로버 원활하게 제어하기
  8. 아두이노로 지구 질량 측정하기: 단계별 DIY 가이드
  9. 아두이노 소나 & 프로세싱으로 실시간 거리 측정 및 시각화
  10. 아두이노와 프로세싱으로 실시간 디지털 나침반 만들기