Cómo cambiar la frecuencia en los pines PWM de Arduino UNO

¿Quieres sacarle el máximo provecho a tu Arduino UNO? Descubre cómo cambiar la frecuencia en los pines PWM y conseguir resultados aún más asombrosos en tus proyectos. En este artículo te mostraremos paso a paso cómo hacerlo. ¡No te lo pierdas!

Arduino Uno es una de las placas de desarrollo más utilizadas en la actualidad. Se puede utilizar para casi cualquier aplicación que se pueda imaginar. Una de esas aplicaciones es en circuitos de alta frecuencia. Pero para usar un controlador en un circuito de alta frecuencia como en un convertidor reductor, el controlador debe poder generar un ondas PWM de alta frecuencia. Y si el controlador que está utilizando es Arduino Uno, entonces debe saber cómo cambiar la frecuencia en los pines PWM de Arduino Uno.

Ahora bien, hay muchos datos sobre Arduino con los que muchos estudiantes 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”.

También puede ver este video para una referencia rápida:



Aquí está la frecuencia predeterminada de cada pin PWM de Arduino UNO:

Frecuencia PWM para D3 y D11:

490.20 Hz (El PREDETERMINADO)

Frecuencia PWM para D5 y D6:

976,56 Hz (el PREDETERMINADO)

Frecuencia PWM para D9 y D10:

490.20 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 Buck-Converter. Entonces, para lograr una frecuencia más baja o más alta que la frecuencia predeterminada en los pines PWM, a continuación se proporciona un código de una línea que puede usar para cambiar la frecuencia en los pines PWM de Arduino Uno:

PARA ARDUINO UNO:

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

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 (DEFAULT)

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 D5 y D6:

TCCR0B = TCCR0B y B11111000 | B00000001; // para frecuencia PWM de 62500.00 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 (DEFAULT)

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

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

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

TCCR1B = TCCR1B y B11111000 | B00000001; // establece el divisor del temporizador 1 en 1 para la 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 (DEFAULT)

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

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

EJEMPLO:

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

Consulte: Cómo agregar la biblioteca Arduino a Proteus y simular proyectos Arduino

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

2. El pin digital 3 (pin PWM) de cada Arduino está conectado al 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 en los pines PWM de Arduino UNO

6. Se puede ver claramente en el osciloscopio que la frecuencia aumenta a un valor muy alto cuando se usa este código:
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

| Agregue la biblioteca de micrófonos a Proteus y genere 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 en los pines PWM de Arduino UNO

Preguntas frecuentes sobre cómo cambiar la frecuencia en los pines PWM de Arduino UNO

La placa Arduino UNO es un dispositivo muy popular para la creación de proyectos electrónicos. Uno de los aspectos fundamentales de Arduino UNO es su capacidad para generar señales PWM (Pulse Width Modulation) en sus pines. Sin embargo, muchos usuarios tienen dudas sobre cómo cambiar la frecuencia de estas señales. A continuación, responderemos a algunas de las preguntas más frecuentes sobre este tema.

1. ¿Qué es la frecuencia PWM?

La frecuencia PWM se refiere a la cantidad de ciclos completos que la señal realiza en un segundo. En el caso de Arduino UNO, la frecuencia predeterminada en los pines PWM es de aproximadamente 490 Hz.

2. ¿Cómo cambiar la frecuencia en los pines PWM de Arduino UNO?

Para cambiar la frecuencia en los pines PWM de Arduino UNO, es necesario modificar el valor del prescaler en el registro TCCR1B. Este registro controla la frecuencia en los pines 9 y 10 de la placa.

Primero, es importante entender cómo funciona el prescaler. El prescaler es un circuito que divide la frecuencia del reloj interno de Arduino UNO (16 MHz) para obtener la frecuencia deseada en los pines PWM. Estos son los valores posibles para el prescaler:

  1. 1 (sin división)
  2. 8 (división por 8)
  3. 64 (división por 64)
  4. 256 (división por 256)
  5. 1024 (división por 1024)

El valor del prescaler se puede modificar utilizando la función analogWritePrescaler() con el número correspondiente al prescaler deseado:

analogWritePrescaler(numeroPrescaler);

Por ejemplo, si queremos establecer una frecuencia de 1 kHz en los pines PWM de Arduino UNO, podemos utilizar el siguiente código:

analogWritePrescaler(8);

Este código establecerá un prescaler de división por 8, lo que resultará en una frecuencia de aproximadamente 1 kHz en los pines PWM.

3. ¿Existen limitaciones al cambiar la frecuencia en los pines PWM de Arduino UNO?

Sí, existen algunas limitaciones a tener en cuenta al cambiar la frecuencia en los pines PWM de Arduino UNO. La frecuencia máxima alcanzable depende de la resolución elegida en la función analogWrite(). Para obtener más información sobre estas limitaciones, consulta el siguiente enlace de referencia: https://es.wikipedia.org/wiki/Modulaci%C3%B3n_por_ancho_de_pulsos.

Esperamos que estas preguntas frecuentes te hayan ayudado a entender cómo cambiar la frecuencia en los pines PWM de Arduino UNO. ¡Diviértete experimentando con tus proyectos electrónicos!


Deja un comentario