Saltar al contenido
fariagallery.com

Invernadero Hidropónico: una lechuga controlada por trece compuertas lógicas

Un sistema que riega, calienta, ventila y oscurece un invernadero solo, sin procesador y sin una línea de código. La decisión entera vive en el cable.

Publicado
hace 20 horas
Tema
Lógica digital, Logisim, Hardware
Obra
Ver el proyecto (se abre en una pestaña nueva)

Este fue el nano proyecto de Conceptos de Computación, entregado en diciembre de 2025 en el Centro Universitário Senac, Santo Amaro. Trabajo en grupo, con Paulo Henrique de Castro Lima, Gabriel Quaresma da Silva, José Victor Souza de Abreu, Vinicius de Castro Marques, Eduardo Almeida Oliveira y Luciano Alves de Andrade Neto, bajo la orientación del Prof. Ing. Jean Carlo Wagner.

El enunciado pedía un sistema de control para un invernadero hidropónico de lechuga. Leer sensores, accionar bombas, válvulas, ventiladores, calefactor y lámparas. El tipo de cosa que cualquiera resolvería con un microcontrolador de cinco dólares y treinta líneas de código.

Solo que la regla era otra: lógica combinacional pura, en Logisim, usando únicamente compuertas de dos entradas. Sin procesador. Sin memoria. Sin código.

Qué cambia cuando no existe el código

Programar es escribir un orden en el tiempo: primero esto, después aquello, y si tal condición es verdadera, haz esta otra cosa. Un circuito combinacional no tiene tiempo ni orden. Es una afirmación permanente sobre la realidad.

No se escribe “si la temperatura sube, enciende el ventilador”. Se construye un camino por donde la corriente solo puede llegar al ventilador mientras el sensor de calor está en 1. La condición no se evalúa. La condición es el cable.

Esa inversión es lo que enseña el proyecto, y al principio incomoda. Uno pasa unos días buscando dónde quedó el if hasta entender que el if se volvió el dibujo.

Los rangos que el sistema mantiene

Magnitud Rango ideal
pH del agua de riego entre 4 y 6
Temperatura ambiente entre 10 °C y 25 °C
Luminosidad ambiente entre 50% y 70%
Presión del agua en las canaletas por encima del 40%

Los sensores entregan esto ya digitalizado, cada uno como un bit: Tc dice que hace demasiado calor, Tb que hace demasiado frío, Pg que falta presión, pH_F que el pH de las canaletas salió del rango aceptable, Da que hay luz de día afuera.

Las ocho decisiones, escritas por extenso

Después de armar las tablas de verdad y pasar cada una por mapa de Karnaugh, el sistema entero cupo en ocho expresiones:

BhlC = Pg . (Tc + pH_F)      enciende la bomba central
Vlv  = BhlC                  las valvulas acompanan a la bomba
BhlS = pHT . BhlC'           inyecta abono solo con la bomba apagada
Lp   = Tb + Lb               lamparas en el frio o en la penumbra
aqD  = Tb                    calefactor en el frio
vlF  = Tc                    ventiladores en el calor
Op   = Tc                    oscurece el vidrio en el calor
Tr   = Tb . Da               aclara el vidrio en el frio, si hay sol

Vale la pena leer dos de ellas en voz alta, porque no son código: son frases sobre una huerta.

BhlS = pHT . BhlC' dice: inyecta abono solo cuando el pH del tanque esté alto y la bomba central esté apagada. La barra sobre BhlC es una negación, y existe para impedir que las dos bombas tiren agua al mismo tiempo. Es un enclavamiento de seguridad, y no es una verificación que alguien se acordó de escribir: es físicamente imposible de violar, porque el circuito no tiene por dónde.

Tr = Tb . Da dice: aumenta la transparencia del vidrio cuando haga frío y haya luz de día. Dejar entrar el sol para calentar es gratis; hacerlo de noche no calentaría nada. Un and de dos entradas resolvió lo que, en código, sería alguien olvidándose de mirar la hora.

Simplificar aquí cuesta dinero, no elegancia

En software, refactorizar ahorra lectura. En hardware, ahorra compuerta física, que ocupa espacio, consume energía y se compra.

La minimización por Karnaugh quitó cerca de diez compuertas de dos entradas del proyecto. BhlC bajó de ocho compuertas a dos. Lp bajó de cinco a una.

El total final fue de trece compuertas: tres AND, dos OR y ocho XOR. La disciplina de siempre, con una consecuencia material que el software esconde.

La parte que me parece más bonita

Ocho de las trece compuertas no controlan nada en el invernadero. Se ocupan de otra cosa: verificar si la información llegó entera.

El circuito genera un bit de paridad impar sobre las ocho salidas de control, en una cadena de XOR, y el receptor lo compara con lo que recibió:

P = Vlv XOR BhlS XOR BhlC XOR vlF XOR Op XOR aqD XOR Tr XOR Lp
E = P XOR P_in

Si E es 0, los datos llegaron como salieron. Si es 1, un bit se dio vuelta en el camino.

Un bit de más, y el sistema deja de confiar ciegamente en el cable. Ese es exactamente el principio que sostiene el checksum de red, la memoria ECC y la verificación de disco. En un trabajo de primer año, sobre lechuga, aparece la idea de que la transmisión es un lugar donde las cosas salen mal, y de que se puede saber cuándo salieron.

Lo que quedó

El circuito está en el repositorio, junto con el informe del grupo, y abre en Logisim 2.7.1. El video de presentación no se subió, y fue una decisión consciente: lleva la voz de los seis compañeros, que aceptaron entregárselo al profesor, no publicarlo en la internet abierta y permanente.

Queda un proyecto sin una línea de código en una colección que es casi toda software. Está aquí a propósito. Es el único en el que se puede señalar con el dedo el lugar exacto donde ocurre la decisión.

Volver al blog