I have been trying to read a channel by interfacing MCP3008 with Raspberry Pi zero w through SPI. I am using the Adafruit blinka lib to do so. After giving data for some time it shows the error [Errno 24] Too many open files: '/dev/spidev0.0'
I have written the code in Python, and implemented it in a node.
import wiringpi
from time import sleep
wiringpi.wiringPiSetup()
import busio
import digitalio
import board
import adafruit_mcp3xxx.mcp3008 as MCP
from adafruit_mcp3xxx.analog_in import AnalogIn
class Readspi(Node):
def execute(self):
try:
input_io = self.get_input_params()
clock = int(input_io['clock'])
miso = int(input_io["miso"])
mosi = int(input_io["mosi"])
channel = int(input_io['channel'])
spi = busio.SPI(clock, mosi, miso)
cs = digitalio.DigitalInOut(board.D5)
mcp = MCP.MCP3008(spi, cs)
temp_value = AnalogIn(mcp, channel)
new_value = temp_value.value
print(type(new_value), " ", new_value)
spi.deinit()
except Exception as exception:
self.set_next_node_params([str(exception), ])
print("fail")
I guess your not closing your files properly and you then run into the open files limit You can check your current limit via
Typically this is 1024. To change this you can use