Medición precisa de frecuencia y ciclo de trabajo con Arduino UNO
Componentes y suministros
| Arduino UNO | 1 |
| Pantalla LCD alfanumérica 20x4 | 1 |
Herramientas necesarias
- Protoboard 270 pines
Aplicaciones y servicios online
- Arduino IDE
Sobre el proyecto
Arduino tiene varias aplicaciones. Podemos encontrarlas en muchos campos y áreas diferentes. También puede usarse en el campo de la medición para medir magnitudes eléctricas (voltaje, corriente, potencia, etc.) o físicas (temperatura, humedad, intensidad lumínica, etc.) o valores de componentes electrónicos.
El artículo muestra cómo medir frecuencia y ciclo de trabajo de pulsos usando Arduino. La medición de frecuencia es necesaria en muchas aplicaciones distintas. En comunicaciones, la medición de frecuencia es esencial. El ciclo de trabajo también es un parámetro importante porque da el % de ancho de pulso, es decir, el tiempo ON del pulso. En control de velocidad de motor DC y control de ángulo de servo es necesario medir el ancho de pulso. También se mide el ancho de pulso para comprobar la simetría del pulso en aplicaciones como receptores de señal digital, repetidores, etc. Veamos cómo usar Arduino para medir frecuencia y ciclo de trabajo de pulsos. En el proyecto dado, el Arduino mide frecuencia, tiempo ON, tiempo OFF y ciclo de trabajo de pulsos y los muestra en LCD 16x4 (en el texto original dice 16x4, pero el componente es 20x4).

Descripción
Como se muestra en la figura, solo hay dos componentes principales en el circuito: (1) placa de desarrollo Arduino UNO y (2) pantalla LCD 16x4 (20x4).
- Los pulsos se dan directamente como entrada al pin digital 7 del Arduino.
- Los pines Rs y En del LCD se conectan a los pines digitales 9 y 8 respectivamente del Arduino. El pin Rw se conecta a tierra.
- Los cuatro últimos pines de datos D4-D7 se conectan a los pines 10, 11, 12 y 13 del Arduino.
- El pin de ánodo del LED de retroiluminación (pin 15) y el pin Vcc (2) del LCD reciben 5V a través del Arduino.
- El cátodo del LED de retroiluminación (pin 16) y el pin Vss (1) se conectan a tierra.
- Un potenciómetro de 1K se conecta al pin Vee para variar el contraste del LCD.
Funcionamiento del circuito
- Al alimentar el Arduino por USB, cuatro parámetros se muestran en el LCD como "Freq: Ton: Toff: Duty:" en cada fila.
- Al alimentar pulsos al pin 7, el Arduino primero espera a que el pulso sea alto. Cuando lo es, calcula el período (en microsegundos) durante el cual el pulso permanece alto. Este es el tiempo Ton.
- Luego calcula el período (en microsegundos) durante el cual el pulso permanece bajo. Este es el tiempo Toff.
- Suma estos dos intervalos para obtener el tiempo total, es decir, el período.
- Del tiempo total, el Arduino calcula la frecuencia como: Frecuencia = 1 / tiempo.
- Y del Ton y Toff calcula el ciclo de trabajo como: Duty = Ton / (Ton + Toff).
- Muestra los cuatro parámetros en el LCD.
- Tras 1 segundo repite el mismo procedimiento.
- Así mide continuamente cambios en frecuencia y ciclo de trabajo del pulso.
Código
Programa para medir frecuencia y ciclo de trabajo y mostrarlo en LCD C/C++
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
#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(4,1); lcd.print(ontime); lcd.print("us");
lcd.setCursor(5,2); lcd.print(offtime); lcd.print("us");
lcd.setCursor(5,0); lcd.print(freq); lcd.print("Hz");
lcd.setCursor(6,3); lcd.print(duty); lcd.print('%');
delay(1000);
}
Esquemáticos
El circuito mide frecuencia y ciclo de trabajo de pulso usando Arduino.
Proceso de manufactura
- Sistema de Asistencia RFID Fiable con Arduino y Python
- Mando universal Android con Arduino, 1Sheeld y control IR
- Construye un Voltímetro Inteligente con Arduino y Smartphone – Proyecto DIY Fácil
- Construye un tarro inteligente IoT con ESP8266, Arduino y sensor ultrasónico: Monitorización en tiempo real
- Medición precisa de frecuencia y ciclo de trabajo con Arduino UNO
- Controla un Rover Arduino con Firmata y Mando Xbox One - Guía Completa
- Mide la masa de la Tierra con Arduino: Guía paso a paso DIY
- Medición de Distancia en Tiempo Real con Sonar Arduino y Visualización en Processing
- Control de brillo LED sin interrupciones con Bolt IoT y Arduino UNO
- Construye una Brújula Digital en Tiempo Real con Arduino y Processing
- Medición de Frecuencia y Fase en Sistemas de Potencia CA