Cómo cambiar la frecuencia PWM de Arduino Mega

¿Sabías que puedes cambiar la frecuencia PWM en tu Arduino Mega? En este artículo te enseñaremos paso a paso cómo hacerlo. ¡Prepárate para llevar tus proyectos a otro nivel de personalización y precisión!

Arduino Mega es una bestia cuando se trata de proyectos de automatización multitarea. Debido a su gran cantidad de pines digitales y analógicos, Mega es la primera prioridad en muchos proyectos complejos, incluido el control de múltiples salidas. Pero la frecuencia predeterminada en los pines PWM de Arduino Mega puede ser una limitación cuando se trata de circuitos de control de alta frecuencia. Sí, la frecuencia en los pines PWM está configurada por defecto y puede cambiar fácilmente la frecuencia usando un simple código de una línea. Lea a continuación para saber cómo cambiar la frecuencia PWM de arduino mega.

Hay algunos datos interesantes sobre Arduino con los que muchos estudiantes y fabricantes no están familiarizados. Y uno de los hechos es este: “Hay una cierta frecuencia predeterminada para cada pin PWM, que se llama cuando se usa el comando analogWrite en ese pin. Y esta frecuencia predeterminada se puede cambiar a un valor tan alto como 65Khz y tan bajo como 30Hz usando solo un código de línea sin alterar la forma de la onda PWM o la atenuación”.

La frecuencia predeterminada en el pin PWM respectivo de Arduino Mega:

Arduino Mega tiene un total de 15 pines PWM. 12 de ellos son del pin 2 al pin 13, mientras que los 3 restantes son D44, D45 y D46. La frecuencia PWM predeterminada para todos los pines es 490 Hz, excepto los pines 4 y 13 cuya frecuencia predeterminada es 980 Hz.

Frecuencia PWM de D2 a D13:

490.20 Hz (El PREDETERMINADO)

Frecuencia PWM para D4 y D13:

976,56 Hz (el PREDETERMINADO)

Ahora, estas frecuencias son óptimas para aplicaciones de baja frecuencia como atenuar un LED. Pero estas frecuencias predeterminadas no son adecuadas para circuitos de alta frecuencia. Por ejemplo, 1Khz no es nada cuando se trata de un SMPS

Hay muchos proyectos en los que requerimos pulsos de alta frecuencia, uno de esos proyectos es un Convertidor de moneda. Entonces, para lograr una frecuencia más baja o más alta que la frecuencia predeterminada en los pines PWM, el código de una línea que podemos usar antes de inicializar el pin PWM como salida se muestra a continuación:

CÓDIGO PARA CAMBIAR FRECUENCIA ARDUINO MEGA PWM:

Código de frecuencia PWM disponible para D4 y D13:

TCCR0B = TCCR0B y B11111000 | B00000001; // para frecuencia PWM de 62500 Hz

TCCR0B = TCCR0B y B11111000 | B00000010; // para frecuencia PWM de 7812.50 Hz

TCCR0B = TCCR0B y B11111000 | B00000011; // para frecuencia PWM de 976,56 Hz (El valor por defecto)

TCCR0B = TCCR0B y B11111000 | B00000100; // para frecuencia PWM de 244,14 Hz

TCCR0B = TCCR0B y B11111000 | B00000101; // para frecuencia PWM de 61,04 Hz

TCCR5B = TCCR5B y B11111000 | B00000101; // para frecuencia PWM de 30,64 Hz

Código de frecuencia PWM disponible para D11 y D12:

TCCR1B = TCCR1B y B11111000 | B00000001; // para frecuencia PWM de 31372.55 Hz

TCCR1B = TCCR1B y B11111000 | B00000010; // para frecuencia PWM de 3921.16 Hz

TCCR1B = TCCR1B y B11111000 | B00000011; // para frecuencia PWM de 490,20 Hz

TCCR1B = TCCR1B y B11111000 | B00000100; // para frecuencia PWM de 122,55 Hz

TCCR1B = TCCR1B y B11111000 | B00000101; // para frecuencia PWM de 30,64 Hz

Código de frecuencia PWM disponible para D9 y D10:

TCCR2B = TCCR2B y B11111000 | B00000001; // para Frecuencia PWM de 31372,55 Hz

TCCR2B = TCCR2B y B11111000 | B00000010; // para frecuencia PWM de 3921.16 Hz

TCCR2B = TCCR2B y B11111000 | B00000011; // para frecuencia PWM de 980,39 Hz

TCCR2B = TCCR2B y B11111000 | B00000100; // para frecuencia PWM de 490,20 Hz

TCCR2B = TCCR2B y B11111000 | B00000101; // para frecuencia PWM de 245,10 Hz

TCCR2B = TCCR2B y B11111000 | B00000110; // para frecuencia PWM de 122,55 Hz

TCCR2B = TCCR2B y B11111000 | B00000111; // para frecuencia PWM de 30,64 Hz

Código de frecuencia PWM disponible para D2, D3 y D5:

TCCR3B = TCCR3B y B11111000 | B00000001; // para frecuencia PWM de 31372.55 Hz

TCCR3B = TCCR3B y B11111000 | B00000010; // para frecuencia PWM de 3921.16 Hz

TCCR3B = TCCR3B y B11111000 | B00000011; // para frecuencia PWM de 490,20 Hz

TCCR3B = TCCR3B y B11111000 | B00000100; // para frecuencia PWM de 122,55 Hz

TCCR3B = TCCR3B y B11111000 | B00000101; // para frecuencia PWM de 30,64 Hz

Código de frecuencia PWM disponible para D6, D7 y D8:

TCCR4B = TCCR4B y B11111000 | B00000001; // para frecuencia PWM de 31372.55 Hz

TCCR4B = TCCR4B y B11111000 | B00000010; // para frecuencia PWM de 3921.16 Hz

TCCR4B = TCCR4B y B11111000 | B00000011; // para frecuencia PWM de 490,20 Hz

TCCR4B = TCCR4B y B11111000 | B00000100; // para frecuencia PWM de 122,55 Hz

TCCR4B = TCCR4B y B11111000 | B00000101; // para frecuencia PWM de 30,64 Hz

Código de frecuencia PWM disponible para D44, D45 y D46:

TCCR5B = TCCR5B y B11111000 | B00000001; // para frecuencia PWM de 31372.55 Hz

TCCR5B = TCCR5B y B11111000 | B00000010; // para frecuencia PWM de 3921.16 Hz

TCCR5B = TCCR5B y B11111000 | B00000011; // para frecuencia PWM de 490,20 Hz

TCCR5B = TCCR5B y B11111000 | B00000100; // para frecuencia PWM de 122,55 Hz

Frecuencia PWM ejemplo:

Para mostrarle cómo cambia la frecuencia al aplicar el código anterior, el circuito Arduino se simula en Proteus (para Arduino UNO):

Consulte: Cómo agregar la biblioteca Arduino a Proteus y simular proyectos Arduino | Edición 2018

1.Se seleccionan dos Arduino y se colocan en el panel frontal

2. El pin digital 3 (pin PWM) de cada Arduino está conectado a un osciloscopio

3. Se escriben dos programas separados para cada Arduino:

Programa A: frecuencia predeterminada en el pin 3

configuración vacía () {

pinMode(3, SALIDA);
// pon tu código de configuración aquí, para ejecutar una vez:

}

bucle vacío () {
escritura analógica (3155);
// pon tu código principal aquí, para ejecutar repetidamente:

}

Programa B: frecuencia modificada en el pin 3

configuración vacía () {

TCCR2B = TCCR2B y B11111000 | B00000001; // para frecuencia PWM de 31372.55 Hz
pinMode(3, SALIDA);
// pon tu código de configuración aquí, para ejecutar una vez:

}

bucle vacío () {
escritura analógica (3155);
// pon tu código principal aquí, para ejecutar repetidamente:

}

4 .El archivo hexadecimal de los programas anteriores se entrega a Arduino

5. Ejecutar simulación

Cómo cambiar la frecuencia PWM de Arduino Mega

>

6. Se puede ver claramente en un osciloscopio que la frecuencia aumenta a un valor muy alto cuando se usa este código (para Arduino UNO):
TCCR2B = TCCR2B y B11111000 | B00000001; // para frecuencia PWM de 31372.55 Hz

Leer artículos similares:

| Cómo agregar Arduino Library a Proteus y simular proyectos Arduino

| Cómo agregar una biblioteca de micrófonos a Proteus y generar formas de onda de audio

| Cómo agregar y simular una biblioteca de sensores ultrasónicos en Proteus

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded





Preguntas frecuentes sobre cómo cambiar la frecuencia PWM de Arduino Mega

Preguntas frecuentes sobre cómo cambiar la frecuencia PWM de Arduino Mega

1. ¿Qué es la frecuencia PWM en Arduino Mega?

La frecuencia PWM (Pulse Width Modulation) en Arduino Mega es la velocidad a la que el microcontrolador genera
los pulsos en una señal PWM. Esta frecuencia determina el tiempo que el pulso está en estado alto (encendido)
y en estado bajo (apagado).

2. ¿Por qué querría cambiar la frecuencia PWM de mi Arduino Mega?

Existen varias razones por las cuales desearías cambiar la frecuencia PWM de tu Arduino Mega. Algunas de ellas
incluyen:

  1. Adaptar la frecuencia al requisito de tu proyecto.
  2. Evitar interferencias con otros componentes electrónicos.
  3. Mejorar la eficiencia energética.
  4. Controlar la velocidad de motores o servomotores de forma más precisa.

3. ¿Cómo puedo cambiar la frecuencia PWM en Arduino Mega?

Para cambiar la frecuencia PWM en Arduino Mega, puedes utilizar la función analogWriteFreq()
seguida de la frecuencia deseada. Por ejemplo, si deseas establecer una frecuencia de 1000Hz, deberás utilizar
el siguiente código:

analogWriteFreq(1000);

Recuerda que la frecuencia máxima soportada por Arduino Mega es de 62.5 kHz.

4. ¿Puedo modificar la frecuencia PWM de manera independiente para cada pin?

No, en el Arduino Mega la frecuencia PWM se establece de forma global para todos los pines habilitados. Al
cambiar la frecuencia, afectará a todos los pines que estén utilizando PWM.

5. ¿Hay algún riesgo al cambiar la frecuencia PWM?

No hay riesgos significativos al cambiar la frecuencia PWM en Arduino Mega. Sin embargo, es importante tener
en cuenta que al alterar la frecuencia, también se pueden afectar otros componentes o módulos conectados que
dependan de la señal PWM.

Recursos adicionales:

Si deseas obtener más información sobre Arduino Mega, PWM o cualquier otro tema relacionado, puedes consultar
los siguientes enlaces:

Deja un comentario