Práctica: Simulación del control de nivel mínimo de líquido en varios depósitos. Para realizar las siguientes prácticas emplearemos el picaxe 18A, una placa con pulsadores para simular las entradas y otra placa con leds para las salidas. Propuesta A. Deseamos controlar el nivel mínimo de liquido en 2 depósitos simultáneamente. Cuando en ambos depósitos el líquido este por encima de un mínimo se encenderá un led verde. Si en cualquiera de ambos desciende del mínimo se encenderá un led amarillo y si los dos Deposito1 Deposito 2 Salida descienden del mínimo un led rojo. 0 0 1 1 0 1 0 1 Rojo Amarillo Amarillo Verde Una posibilidad para el programa de control seria: symbol deposito1 = input1 symbol deposito2 = input2 main: if deposito1=0 and deposito2=0 then goto rojo if deposito1=1 and deposito2=1 then goto verde if deposito1=0 or deposito2=0 then goto amarillo goto main verde: let pins = %10000000 goto main amarillo: let pins = %01000000 goto main rojo: let pins = %00100000 goto main Propuesta B. Igual planteamiento que el caso anterior pero con tres depósitos. Deposito1 Deposito 2 Deposito 2 0 0 0 Uno o dos depósitos por debajo del mínimo 1 1 1 Salida Rojo Amarillo Verde Una posibilidad para el programa de control seria: symbol deposito1 = input1 symbol deposito2 = input2 symbol deposito3 = input0 main: if deposito1=0 and deposito2=0 and deposito3=0 then goto rojo if deposito1=1 and deposito2=1 and deposito3=1 then goto verde if deposito1=0 or deposito2=0 or deposito3=0 then goto amarillo goto main verde: let pins = %10000000 goto main amarillo: let pins = %01000000 goto main rojo: let pins = %00100000 goto main Propuesta C. A diferencia del caso anterior en esta propuesta se encenderá el led verde si hay al menos un deposito que baja del mínimo, el led amarillo si hay 2 depositos que bajen del mínimo y el rojo si los tres depósitos bajan del mínimo. Si todos los depósitos están llenos todos los leds estarán apagados. Deposito1 Deposito 2 Deposito 2 0 0 0 Dos depósitos por debajo del mínimo Un deposito por debajo del mínimo Salida Rojo Amarillo Verde Una posibilidad para el programa de control seria: let b0=0 main: let b0=pins if b0=%0000000 then rojo if b0=%0000011 or b0=%0000110 or b0=%0000101 then verde if b0=%0000001 or b0=%0000100 or b0=%0000010 then amarillo let pins = %00000000 goto main verde: let pins = %10000000 goto main amarillo: let pins = %01000000 goto main rojo: let pins = %00100000 goto main Propuesta D. Mismo caso que la A, pero en esta ocasión emplearemos el display para mostrar el nivel de los depósitos. Una posibilidad para el programa de control seria: symbol deposito1 = input1 symbol deposito2 = input0 pause 500 serout 7,N2400,(254,1) serout 7,N2400,("Nivel bajo en:") main: if deposito1=0 and deposito2=0 then goto rojo if deposito1=1 and deposito2=1 then goto verde if deposito1=0 or deposito2=0 then goto amarillo goto main verde: pause 500 serout 7,N2400,(254,192) serout 7,N2400,("0 depositos") goto main amarillo: pause 500 serout 7,N2400,(254,192) serout 7,N2400,("1 deposito") goto main rojo: pause 500 serout 7,N2400,(254,192) serout 7,N2400,("2 depositos") goto main