// Código na linguagem Python Rinaldo Lima
import spidev
import time
# Configuração do MCP3008
spi = spidev.SpiDev()
spi.open(0, 0) # Abre o barramento SPI 0, dispositivo 0
# Canal a ser lido(0 a 7)
channel = 0
# Função para ler o valor analógico e calcular o nível de água
def read_water_level():
adc = spi.xfer2([1, (8 + channel) << 4, 0])
raw_value = ((adc[1] & 3) << 8) + adc[2]
voltage = (raw_value / 1023.0) * 5.0 # Converte para volts(0 - 5V)
water_level_percent = (voltage / 5.0) * 100.0 # Mapeia para a escala de 0 a 100 %
return water_level_percent
try:
while True:
water_level = read_water_level()
print(f'Nível de água: {water_level:.2f}%')
time.sleep(1) # Aguarda 1 segundo antes da próxima leitura
except KeyboardInterrupt:
spi.close()
print('Conexão SPI encerrada.')