## 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)