Quiero generar una señal pwm para controlar un coche de radio control escala 1:8. Para esto tengo un mando RC del cual he decodificado el ciclo de trabajo tanto del giro como de la traccion.
La idea es generar una señal pwm diferente a la del mando, es decir, de una frecuencia diferente pero que el ancho del pulso de lo de el mando.
Para generar la señal periodica utilizo este codigo
donde "Tcohe = 277 cuentas = 17.7 ms con un pre-scaler de 1024" es la varable donde marco el periodo de la señal que quiero generar pero no se como hacer para conmutar los estados entre 0 y 1 en funcion de las cuentas del ciclo de trabajo tanto del giro como de la traccion que como he mencionado antes los tengo decodificados no en tiempo ,sino en cuentas del contador del timer.
donde "Tcohe = 277 cuentas = 17.7 ms con un pre-scaler de 1024" es la varable donde marco el periodo de la señal que quiero generar pero no se como hacer para conmutar los estados entre 0 y 1 en funcion de las cuentas del ciclo de trabajo
Mejora esto por favor que no lo entiendo.
Si que Tcoche es 277 cuentas y que equivale a 17.7 mseg con un prescaler de 1024 entonces puedes armar una funcón para traducirlo si quieres manejarte con mseg por ejemplo, y si hiciera falta.
Por lo visto usaras timer1 y es donde vas a modificar el DC (Duty Cycle)?
Amigo.. vengo siguiendo a Bukanan y su proyecto de Radio control y te aseguro que no tiene las dudas que expresas.
Revisa sus posts anteriores. Click en su nombre y luego posts y verás de que hablo.
Como bien dice Surbyte, iburol, no estoy tan perdido como tu crees, eso tampoco quiere decir que me lo sepa todo, pero le he pegado unas cuantas leidas al datasheet del micro y se como funcionan los modos del micro, seguro que se me escapa algo, como a todos, y surbyte ....parece que lo de dar explicaciones no se me da muy bien...jejejej, pero es un poco dificil trasmitir tus ideas a traves de un foro, porq lo que tu tienes en tu cabeza, posiblemente no entre en la de todos, es decir, lo que tu puedeas llegar a enteder puede que otras personas no lo vean.
De todas formas sigo agradeciendo las respuesas y sugerencias que me dais aqui :).
Vamos a ver, la configuracion que tengo en cuanto al pre-scaler del micro es para tener una mayor resolucion en cuanto a tiempo. Esto lo necesito para una vez que he calculado los parametros que necesito, como son duty-cycle y periodo, poder verificar durante un tiempo limitado que todo esta correcto, es decir, una vez que los datos son ok espero 2 o 3 segundos para asegurarme de que todo esta bien y entonces generar la señal que controla el coche.
Por otro lado lo de Tcoche = 277 = 17.7ms, son los ciclos del coundel Timer1 necdesarios para tener el periodo que deseo en la señal, ok??.
Entonces la forma en la que quiero generar la señal es utilizando la funcion digitalWrite(), mediante la conmutacion de estados. Puedes decir porq no utilizas analogWrite??, porq como bien sabeis iburol, esta funcion genera una señal pwm pero de unos 409 Hz, cosa que no me vale, ok??, porq la señal que necesita el coche es de 56,5 Hz, de ahi el querer hacerlo con digitalWrite().
No se si he mejorado en cuanto a la explicacion, pero lo he intentado...jejej.