Go Down

Topic: Uso de interrupcion de temporizador para generar PWM (Read 1 time) previous topic - next topic

RedHack

Hola a todos/as!

Estoy realizando un proyecto de electrónica de potencia para controlar un motor de DC de 230W mediante pulsos PWM unipolares aplicados a este. La idea es que el micro me genera los disparos con cierto ciclo de trabajo en función del nivel de un potenciometro ( potenciometro a 0% -> ciclo de trabajo=0, potenciometro=100% -> ciclo trabajo=70%), que a continuación paso a un driver que los amplifica a 0-15V para asi hacer funcionar los 4 IGBT's de un puente completo. Solo me falta por hacer el programa que controla todo esto, pero el micro que tengo es un viejo 515 de 8 bits que me está dando muchos problemas, con lo que me he comprado un arduino mega R3 (ATMEGA 2560).

Soy completamente nuevo con arduino, y necesito usar un timer de forma de que salte su interrupción en funcion del nivel del potenciometro, y en el vector de interrupcion del timer quiero cambiar el valor de los pines de cada IGBT. Esquematicamente, y para un solo IGBT el proceso seria:

1- leo el valor del potenciometro
2- configuro el tiempo que tiene que estar el pin del IGBT a 1 y lanzo el temporizador a contar
3- cuando salta la interrupcion, en ella apago el pin del IGBT y calculo el tiempo que debe estar apagado este. Vuelvo a encender el temporizador.
4- cuando vuelve a saltar la interrupcion, vuelvo a mirar el valor del potenciometro, configuro el tiempo que debe estar el pin del IGBT a 1 y vuelvo a lanzar el timer.

Y así sucesivamente. El periodo de la señal debe ser fijo de 1KHz . Alguien sabe que timer debo usar, si debo usar algun prescaler, como configurar todo y en que registros debo hacer la recarga de dicho timer para temporizar en funcion del nivel de dicho potenciometro??

Muchas gracias!!  :)

noter

Hola.
Creo que deberías comenzar googleando y buscando información sobre PWM+arduino. Verás que tu mega tiene varias salidas PWM y que son tan sencillas de manejar como escribir analogWrite(pin,cicloactivo0-255).
Si la frecuencia de 1KHz es crítica, deberás buscar información sobre cómo configurar el prescaler PWM, en google encontrarás mucha información también.
Saludos.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy