## Circuitos Digitales
### Asignación III
Comunicación serial.
>Diseñe un sistema maestro/esclavo que realice lo siguiente:
>
>**Maestro:**
>- Pulsador 1 = Activa Bomba.
>- Pulsador 2 = Desactiva Bomba.
>- Pulsador 3 = Solicita Temperatura Bomba.
>
> **Esclavo:**
> - Ejecuta las órdenes del maestro.
> - Monitorea el consumo de corriente de la bomba y la temperatura.
> - Si corriente bomba IB > 20 Amp. Apaga la bomba y envía señal de alarma al maestro, el cual no podrá ejecutar la orden 1 (Pulsador 1) hasta que la temperatura haya caído 20% menos. (Se asume que si IB > 20 Amp ≈ T>= 40°C).

### El hardware utilizado en la práctica:
#### **Maestro**
- `Arduino UNO`
- `LCD 20x4`
- `Pulsadores`
- `Resistencias 1kΩ`
#### **Esclavo**
- `Arduino UNO`
- `LCD 16x2`
- `LM35`
- `Pulsadores`
- `Optocoplador`
- `Transistor NPN`
- `Diodo`
- `Relé`
- `Resistencias (100, 330, 1k, 4.7k)Ω`
- `Lámpara`
> Todos los archivos necesarios para realizar la práctica estan en el siguiente enlace.
>
[Descargar archivos](https://drive.google.com/drive/folders/1g0SlN-QHqR0YRrkm_ncuOawqgmzv1g5Y?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?usp=sharing)
### Esquemáticos:


### Funciones del Maestro:
| Pulsador | Orden | Puerto Serial |
|:--------:|:---------------------------:|:-------------------:|
| 1 | Activar Bomba - ON | 'A' |
| 2 | Desactivar Bomba - OFF | 'D' |
| 3 | Solicitar Temperatura - S.T | 'S' |
> Estas son las órdenes que se envían desde el maestro al esclavo por el puerto serial en función al pulsador presionado.
### Funciones del Esclavo:
| Orden | Acción | Puerto Serial |
|:--------:|:------------------:|:-----------------:|
| 'A' | Activar Bomba | |
| 'D' | Desactivar Bomba | |
| 'T' | Enviar Temperatura | "Temperatura" |
> Estas son las órdenes que recibe el esclavo por el puerto serial.
### Diagrama de Flujo:



### Simulación:

> Para efectos prácticos la corriente de consumo de la bomba se ha simulado con una relación de temperatura para T>= 40°C ≈ IB > 20Amp.
### El software desarrollado para la práctica:
- `Asignacion_III_master.ino`
- `Asignacion_III_slave.ino`
- `Master.h`
- `Slave.h`
- `StateMachine.cpp`
- `StateMachine.h`
`Asignacion_III_master.ino`

`Master.h`

`Asignacion_III_slave.ino`

`Slave.h`

> *Si te ha gustado el contenido en general, el diseño de los componentes y módulos en Proteus puedes contactarme por:*
* [LinkedIn](https://www.linkedin.com/in/jssmarinl/)
* [Instagram](https://www.instagram.com/jss.marinl/)
* [WhatsApp](https://api.whatsapp.com/send?phone=+584120835034)