Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Medição Precisa de Frequência e Ciclo de Trabalho com Arduino UNO

Componentes e Materiais

Componente Quantidade
Arduino UNO 1
Display LCD Alfanumérico 20x4 1

Ferramentas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

O Arduino tem várias aplicações em medição de grandezas elétricas (tensão, corrente, potência) ou físicas (temperatura, umidade, luminosidade) ou valores de componentes eletrônicos.

Este artigo demonstra como medir frequência e ciclo de trabalho (duty cycle) de pulsos usando Arduino. Medição de frequência é essencial em comunicações. Ciclo de trabalho indica % de largura de pulso (tempo ON) — crucial no controle de velocidade de motor DC, ângulo de servo, verificação de simetria de pulso em receptores digitais, repetidores, etc.

O projeto mede frequência, tempo ON, tempo OFF e duty cycle, exibindo no LCD 16x4 (no texto original; componentes listam 20x4).

Medição Precisa de Frequência e Ciclo de Trabalho com Arduino UNO

Descrição do Circuito

Operação do Circuito

  1. Ao alimentar o Arduino via USB, quatro parâmetros aparecem no LCD: Freq:, Ton:, Toff:, Duty: (um por linha).
  2. Quando pulsos chegam ao pino 7, o Arduino espera pulso ficar HIGH. Mede tempo (µs) em HIGH → Ton.
  3. Mede tempo (µs) em LOW → Toff.
  4. Soma os dois → Período total.
  5. Frequência = 1 / Período (em segundos; usa µs → 1.000.000 / período).
  6. Duty Cycle = Ton / (Ton + Toff) × 100%.
  7. Exibe os quatro parâmetros no LCD.
  8. Repete a cada 1 segundo, monitorando variações contínuas.

Código

#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); // Note: use lcd.begin(20,4) se display for 20x4
  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(5,3); lcd.print(duty); lcd.print('%');
  delay(1000);
}

Esquemático

Medição Precisa de Frequência e Ciclo de Trabalho com Arduino UNO

Processo de manufatura

  1. Medindo Frequência e Fase em Sistemas de Potência AC
  2. Sistema de Presença RFID Confiável com Arduino e Python
  3. Controle Remoto Universal Android com Arduino, 1Sheeld e IR
  4. Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
  5. Construa um Pote Inteligente IoT com ESP8266, Arduino e Sensor Ultrassônico – Monitoramento em Tempo Real
  6. Medição Precisa de Frequência e Ciclo de Trabalho com Arduino UNO
  7. Controle um Rover Arduino com Firmata e Gamepad Xbox One
  8. Medir a Massa da Terra com Arduino: Guia DIY Passo a Passo
  9. Medição de Distância em Tempo Real com Sonar Arduino e Visualização no Processing
  10. Construa uma Bússola Digital em Tempo Real com Arduino e Processing