24-04-2016, 11:17 AM
Buenos días!
Os cuento, estoy empezando con esto del arduino y su programación, hace años había visto algo de C++ y hay cosas de las que me acuerdo (pocas, ya lo digo) y otras en las que estoy totalmente perdido.
Aprovechando que tengo por aquí unas placas Arduino, me puse estos días a ver si era capaz de hacer un dimmer para unas tiras de led.
A ver si no meto la pata explicando lo que he podido entender hasta ahora, de ser así, disculpad.
La idea es usar esto para la entrada de casa, un sensor magnético me dirá cuando la puerta está abierta o cerrada, generando un HIGH o un LOW en una entrada digital y la salida se hará controlada por PWM y de ahí a un circuito con Mosfet (esta parte aún no me he puesto con ella).
Al abrir la puerta quiero que las tiras vayan subiendo la luminosidad hasta que lleguen al máximo y se mantengan ahí mientras la puerta esté abierta y una vez la puerta esté cerrada (HIGH en el pin digital), al cabo de unos segundos deberían empezar a bajar la luminosidad hasta apagarse completamente.
Todo esto he intentado hacerlo, pero no me va bien, al menos revisándolo con el "Monitor Serie" del GUI de Arduino, cuando detecta un nivel LOW en la entrada digital, ejecuta un bucle While el cual dentro va incrementando el valor de una variable "brillo" de 0 a 255 (¿Esto es así o debería usar valores más específicos como 64, 128, 192, 255?), después de llegar a ese "255", me salta a otro bucle en el que se se queda mientras el valor de la entrada digital siga siendo LOW, el problema es que no lo hace, se va directamente a la otra parte y empieza a descontar del 255 al 0 y al final es todo un bucle haciendo lo mismo, sube y baja. Cambiando diferentes cosas en el programa a veces sólo llega la cuenta hasta 20 o así.
Espero no haberme liado con la explicación!!
Luego os pongo el código de lo que he hecho para ver en que meto la pata, ya que a priori me parece sencillo, pero no consigo que funcione.
Os cuento, estoy empezando con esto del arduino y su programación, hace años había visto algo de C++ y hay cosas de las que me acuerdo (pocas, ya lo digo) y otras en las que estoy totalmente perdido.
Aprovechando que tengo por aquí unas placas Arduino, me puse estos días a ver si era capaz de hacer un dimmer para unas tiras de led.
A ver si no meto la pata explicando lo que he podido entender hasta ahora, de ser así, disculpad.
La idea es usar esto para la entrada de casa, un sensor magnético me dirá cuando la puerta está abierta o cerrada, generando un HIGH o un LOW en una entrada digital y la salida se hará controlada por PWM y de ahí a un circuito con Mosfet (esta parte aún no me he puesto con ella).
Al abrir la puerta quiero que las tiras vayan subiendo la luminosidad hasta que lleguen al máximo y se mantengan ahí mientras la puerta esté abierta y una vez la puerta esté cerrada (HIGH en el pin digital), al cabo de unos segundos deberían empezar a bajar la luminosidad hasta apagarse completamente.
Todo esto he intentado hacerlo, pero no me va bien, al menos revisándolo con el "Monitor Serie" del GUI de Arduino, cuando detecta un nivel LOW en la entrada digital, ejecuta un bucle While el cual dentro va incrementando el valor de una variable "brillo" de 0 a 255 (¿Esto es así o debería usar valores más específicos como 64, 128, 192, 255?), después de llegar a ese "255", me salta a otro bucle en el que se se queda mientras el valor de la entrada digital siga siendo LOW, el problema es que no lo hace, se va directamente a la otra parte y empieza a descontar del 255 al 0 y al final es todo un bucle haciendo lo mismo, sube y baja. Cambiando diferentes cosas en el programa a veces sólo llega la cuenta hasta 20 o así.
Espero no haberme liado con la explicación!!
Luego os pongo el código de lo que he hecho para ver en que meto la pata, ya que a priori me parece sencillo, pero no consigo que funcione.