Como tercera revisión de los módulos del kit de Arduino vamos a ver como hacer uno de los tantos usos que se le pueden dar a las resistencias, leds y pulsadores.
En este caso concreto se quiere mediante tres botones poder controlar el led para poderlo encender, apagar, subirle el brillo y bajárselo.
Para ello se usan tres pulsadores, el de la izquierda baja el brillo, el central enciende y apaga el led y el de la derecha sube el brillo.
Todas estas operaciones se realizan con la funcion analogWrite() salvo la de apagar que se ha preferido digitalWrite() aunque daba igual.
Hay que tener en cuenta también que el led deberá de estar conectado en un pin digital con soporte de PWM para poder ajustar el brillo ya que de lo contrario no funcionara. En el caso del Arduino mega los pines que lo soportan son del D0 al D13, si usamos otro Arduino conviene ver la documentación oficial.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
/* Author: Alberto Gil Tesa WebSite: http://giltesa.com/?p=14371 License: CC BY-NC-SA 3.0 Description: Ejemplo de uso de los pulsadores y un led por PWM El codigo permite cambiar el brillo y encender y apagar un led. http://giltesa.com/wp-content/uploads/2013/07/dealextreme-ejemplo-button-led.png */ #define btnMenos 4 #define btnMas 2 #define btnOnOff 3 #define led 7 #define salto 2 boolean estadoLed = true; byte brillo = 100; void setup() { pinMode( btnMenos , INPUT ); pinMode( btnMas , INPUT ); pinMode( btnOnOff , INPUT ); pinMode( led , OUTPUT ); } void loop() { // Baja el brillo: if( digitalRead(btnMenos) && brillo > salto) { brillo = brillo - salto; delay(20); // Retarda el cambio del brillo para que no pase del maximo al minimo demasiado deprisa } // Sube el brillo: else if( digitalRead(btnMas) && brillo < 255-salto) { brillo = brillo + salto; delay(20); } // Enciende y apaga el led: else if( digitalRead(btnOnOff) ) { while(digitalRead(btnOnOff)){} // Espera hasta que se suelte el boton delay(20); estadoLed = !estadoLed; } if( estadoLed ) analogWrite( led , brillo ); else digitalWrite( led , LOW ); } |
Hola Alberto,
Me gusta mucho la información súper detallada y minuciosa en tu web, las lecciones, tu ayuda especializada y personalizada, el excelente seguimiento y respuesta que das a quienes tienen dudas y las exponen en tu web.
¡¡FELICIDADES ALBERTO POR TU ESFUERZO!!
En este post comparto contigo y tus lectores, estos archivos que estoy seguro van ayudar de mucho pues están muy bien hechos y muy bonito. Son PDF con información detallada de los pines del Arduino en sus muchas versiones.
Entra aquí: http://www.pighixxx.com
Nota: Ese es un sitio sobre información de electrónica y Arduino y no es un sitio XXX.
Aquí puedes descargar casi todos los PDF del sitio en ZIP son 19.2MB:
https://mega.co.nz/#!rBdlFLBD!A3NoOl3LQz_P4ti997GQAgfk7qh5SyDXv7Jvbvyh9sg
DIOS quiera y sigamos en contacto…
:=D
Bye!!
Hola,
Me alegro mucho de que te sea de interes lo que publico y de que me lo hayas dicho 🙂
En cuanto a los planos por el blog es cierto que no los he publicado, pero si en la plataforma de Arduino de forocoches y en el foro de Arduino de spainlabs
Si saco tiempo le dedicare una entrara y los publicare todos.
Saludos!
Saludos Alberto,
Soy de México y me gustaría mucho platicar contigo en línea por medio de Skype sobre temas de electrónica y componentes. ¿Te gustaría a ti platicar conmigo por ese medio?
:=)
Pues hombre, si tuviera tiempo y nada mas que hacer pues no me importaría, pero estoy todo el día que no paro :/
Si me vas poniendo preguntas por aquí las puedo ir respondiendo cuando las lea.
Saludos!
Alberto :=)
Mira esta ganga, es un LCD de 122×32 con backlight, te va agradar su precio, con el envío incluido, vale solamente $1.99USD
Ya compre varios y me han llegado con Tracking Number. La calidad es muy buena y el empaque esta excelente porque envían cada pieza de LCD en paquetitos de unicel.
Miralo aquí funcionando:
http://www.edersales.com/eletronic/sed1520/sed1520.php
Pide varios que seguro no vas a encontrar un precio mejor alrededor de todo el mundo.
:=D
Se me olvidó incluir el Link del LCD de 122×32 a $1.99USD
Aquí:
Son mis primeros pasos con arduino y soy bastante pez en electrónica (yo vengo de la mecánica) y no veas el mosqueo que me han dado que los pulsadores tuviesen cuatro patillas y que hubiese cables unidos tres y no dos de ellas :D.
Me ha costado un ratillo darme cuenta del asunto
Así es, aunque tiene cuatro patillas luego en realidad son como dos ya que están unidas por dentro:
http://www.ladyada.net/images/arduino/buttonlegsdiag.jpg
Sí, eso he encontrado tras rayarme un rato. Por cierto, cómo haces los diagramas? Quedan bien guapos
Los hago con el programa Fritzing, va muy bien para este tipo de circuitos.