Tienes los conceptos equivocados. Pero en la base estas bien.
Una PWM es por definición Pulse Width Modulation o Modulación de ancho de pulsos.
Qué pulsos?
Pulsos de onda cuadrada.
Que modulamos?
Modulamos esa onda cuadrada para que su valor medio de lo que queremos que termine dando.
Que podemos conseguir?
Practicamente cualquier cosa.
Asi que. Puedo conseguir una senoide con PWM, si. Una senoide centrada en 2.5V con 2.5Vpp es posible, milivolts mas o menos.
Puedo conseguir una triangular, también.
Espero tu próxima consulta y de paso te invito a que leas las normas del foro, por un montón de razones, pero la mas importante: Preguntas en español van en el foro en español, preguntas en inglés en los foros respectivos.
Si, eso lo entiendo, pero mi sorpresa vino al ver que la PWM de "serie" en arduino tenia el Dutty cycle fijo, no como en las SPWM(que al parecer se llaman asi) en la que los pulsos son más largos o más cortos dependiendo de senoidal de control.
PD: He puesto la pregunta en español en el foro de español y la pregunta en ingles en el foro general.
Te lo expliqué por privado pero lo repito aca.
Las PWM siempre tienen el ancho de pulso fijo.
Para hacerlo variable se usa una tabla y esa tabla se va muestreando o barriendo a intervalos fijos para que te de en promedio la senoide que buscas en la salida de transistores IGBT o MOSFET que alimentan tu carga inductiva que termina promediando la corriente del motor.
Entonces, tienes una frecuencia de conmutación, tienes un array o vector con valores de ancho de pulso tal que daran la senoide a la salida, calculados de tal modo que minimicen armónicos (otro gran tema), estos valores del vector se usan a intervalos dados por otro timer el que garantiza que todo se haga en tiempo y no sobrecargues la CPU. Normalmente se toman 256 valores.
Hace poco un profesor de escuela hizo un control SPWM para un proyecto simil al tuyo.
No tiene mas de un mes el post asi que si buscas para atras lo encontrarás.