## 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). ![AsignacionIII](https://i.imgur.com/6fAlxdk.png) ### 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: ![Master](https://i.imgur.com/jr2ZQCq.png) ![Slave](https://i.imgur.com/W2m2YrP.png) ### 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: ![DFMaster](https://i.imgur.com/ffzdQNG.png) ![DFSlave](https://i.imgur.com/fRlYilb.png) ![MSSlave](https://i.imgur.com/Q7W3kTs.png) ### Simulación: ![Simulacion](https://i.imgur.com/sYK1h0R.png) > 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` ![mastercode](https://i.imgur.com/1hUlonI.png) `Master.h` ![masterlibrary](https://i.imgur.com/1WrEDlp.png) `Asignacion_III_slave.ino` ![slavecode](https://i.imgur.com/PoT7dFN.png) `Slave.h` ![slavelibrary](https://i.imgur.com/Y34A5tV.png) > *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)