We are using Intel Edison micro controller.
Our setup involves 16 LED matrices (I2C). Since the LED matrices provide an address range of 0x71 to 0x77, we are using a Multiplexer to extend the address range to 16.
Each bus on the multiplexer is supporting 2 LED matrices. Here is the addressing info .
Bus 0: LED Matrix 1 (0x70) and LED Matrix 2 (0x72)
Bus 1: LED Matrix 3 (0x70) and LED Matrix 4 (0x72)
Bus 2: LED Matrix 5 (0x70) and LED Matrix 6 (0x72)
Bus 3: LED Matrix 7 (0x70) and LED Matrix 8 (0x72)
Bus 4: LED Matrix 9 (0x70) and LED Matrix 10 (0x72)
Bus 5: LED Matrix 11 (0x70) and LED Matrix 12 (0x72)
Bus 6: LED Matrix 13 (0x70) and LED Matrix 14 (0x72)
Bus 7: LED Matrix 15 (0x70) and LED Matrix 16 (0x72)
Please note that the addressing of the LED matrices is the same across the buses. The combination of the Bus address and the LED matrix address makes it unique.
We are running Arduino’s WiFi Server on the board and receiving the requests from a Client (external Web page (which sends the requests to the Server’s/Board’s IP address). So, based on the request received we turn on (or) off the specific LED matrix. Since we are using the Multiplexer, we first address the Multiplexer Bus and then address the specific LED matrix.
This setup works well for a limited period of time, after which the Server stops receiving further client requests. The limited period of time is variable based on the “delay( )” value in the loop(). As we increase the delay( ) value, the timeout. We cannot increase the delay( ) beyond 700 as it slows down the response time of our application.
DebugBigCart.ino (7.9 KB)