Uso de interrupcion de temporizador para generar PWM

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!! :slight_smile:

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.