
Arduino
#26
Publicado el 04 October 2012 - 10:02 AM
#27
Publicado el 04 October 2012 - 01:47 PM
#28
Publicado el 04 October 2012 - 02:33 PM
carlos me interesa para suavizar aun mas la salida pwm,cuenta ,cuenta eso si te puedo comentar que de 0 a 255 pulsos en un intervalo de 1 hora no se precia a simple vistaHola de nuevo. Algunos ya sabéis que estoy trasteando con el Arduino, los DS18B20, el ULN2803 y un DS2408. El objetivo era usar el bus 1-wire que lleva el DS18B20 para controlar también las luces, de tal forma que pudiera controlarlo todo mucho más al detalle, pudiendo hacer zonas más o menos iluminadas según me interesara. Así, con 4 pines (12V, 5V, GND y datos) podría poner todas las luces que quisiera y controlarlas mejor. Peeeeeeeero, he de decir que casi seguro que no se puede, porque el DS2408 que convierte de 1-wire a paralelo tarda 10ms en cada escritura, con lo que se hace casi imposible hacer un PWM del que no se note el parpadeo (peor si ponemos más de uno). Además de que no se podría usar el PWM que lleva el Arduino, y tendría que implementarlo yo mismo. Investigando sobre el tema del PWM y como implementarlo yo mismo descubrí que, como otros microcontroladores, el Arduino tiene temporizadores (timers), que son los que realmente se encargan de hacer el PWM. En concreto tiene 3 timers (6 timers si es el mega), y cada uno de ellos controla 2 pines, por lo que así tenemos 6 señales PWM. Bien, pues las características de estos timers y su funcionamiento se puede programar, y podemos hacer que se ejecute una función cada cierto número de milisegundos, por ejemplo. Pues viendo que 6 (o 15 PWMs en el mega porque algunos timers controlan 3 pines) podrían ser pocos si quisiéramos un control más en detalle, y aprovechando que estaba trasteando, se me ocurrió una rutina para poder conseguir hacer un PWM con intervalo distinto en cada uno de los pines del Arduino. Eso sí, con una frecuencia menor a la original. Igual es una locura, pero a veces puede ser necesario. No se si a alguien le interesa lo que he planteado, pero como se me ha ocurrido, lo he implementado (en mi caso para los 32 pines del 22 al 53 del mega) y he visto que funciona, pues he pensado en compartirlo. No pongo el código porque aun no lo tengo terminado del todo, pero si a alguien le interesa, o tratar el tema de los timers, que me lo diga y nos ponemos a ello. Un saludo.
#29
Publicado el 04 October 2012 - 09:43 PM
#30
Publicado el 11 December 2012 - 12:01 AM
#31
Publicado el 16 December 2012 - 09:48 PM
#32
Publicado el 16 December 2012 - 10:31 PM
#33
Publicado el 27 December 2012 - 05:32 PM
Toggle shoutbox
Chat PA
|