## Circuitos Digitales ### Asignación II Manejo de periféricos (teclado con pulsadores, pantalla LCD, LEDs, PWM y RTC). > Diseñe un selector de PWM con 3 botones para un LED RGB, el cual debe sacar tres colores (Rojo, Amarillo y Verde), Es decir: si se presiona el botón 1, el led alumbra Verde, si se presiona el botón 2, el led alumbra amarillo y si se presiona el botón 3 el led alumbra rojo. A su vez. Por cada acción presentada, se muestra la información en una pantalla LCD 16x4 lo que se está ejecutando y el porcentaje PWM estimado para cada color en las primeras dos líneas de la pantalla LCD. > > Adicional, en las restantes dos líneas de la pantalla LCD se muestra con un reloj calendario la fecha y la hora actual. ### El hardware utilizado en la práctica: - `Arduino UNO` - `RTC DS1307` - `LCD 16x4` - `Pulsadores` - `Resistencias (200, 1k, 4.7k)ohm` - `LED RGB cátodo común` > Todos los archivos necesarios para realizar la práctica estan en el siguiente enlace. > [Descargar archivos](https://drive.google.com/drive/folders/1iUVUy3Z3CzXQ8oaexNDPAwuLp9_Nmzox?usp=sharing) > La simulación se realizó en Proteus 8.12 SP0, puedes descargarlo en el siguiente enlace. [PROTEUS 8.12 SP0](https://drive.google.com/file/d/1yxIai7s24u0Z8m3205IsnTtkGZgxsdHm/view) ### Esquemático: ![harware](https://i.imgur.com/aQOPBPT.png) > Al presionar cualquiera de los tres botones disponibles, el LED RGB irá cambiando de color de acuerdo a las condiciones establecidas. | Botón | Color | RGB | %PWM | |:-----:|:--------:|:---------:|:---------:| | 1 | Verde | 0-255-0 | 0-100-0 | | 2 | Amarillo | 255-255-0 | 100-100-0 | | 3 | Rojo | 255-0-0 | 100-0-0 | > Cada una de estas combinaciones da el color deseado. > > En la pantalla LCD 16x4 se muestra el color seleccionado y el porcentaje del PWM presente en cada uno de los anodos del LED RGB, de acuerdo a una conversión 255 (valor máximo de las salidas analógicas del Arduino UNO) equivale al 100%. ### Diagrama de Flujo: ![DF](https://i.imgur.com/mK4DWPO.png) ### El software desarrollado para la práctica: - `Asignacion_II.ino` - `funtions.h` `Asignacion_II.ino` ![main](https://i.imgur.com/uV681Xz.png) `funtions.h` ![funtions_1](https://i.imgur.com/GtVcNa8.png) ![funtions_2](https://i.imgur.com/pegxOKu.png) ![funtions_3](https://i.imgur.com/evbAxPb.png) > Las librerías usadas en la programación son propias de Arduino, puedes descargarlas desde el mismo IDE en caso de no tenerlas siguiendo estos pasos. ![](https://i.imgur.com/qe3kfJI.png) > Buscas la librería que necesitas desde el **Administrador de bibliotecas** e instalas. ![](https://i.imgur.com/KaNGbRx.png) > *Si te ha gustado el contenido en general, el diseño de los componentes y módulos en Proteus puedes contactarme por:* * [Behance](https://www.behance.net/jssmarinl) * [Instagram](https://www.instagram.com/jss.marinl/) * [LinkedIn](https://www.linkedin.com/in/jssmarinl/) * [WhatsApp](https://api.whatsapp.com/send?phone=+584120835034)