I bought 6 Controllino maxi to automate my home lights, every Controllino will control its internal 10 relays directly connected with lights.
There will be 10 groups of buttons that will control the light switching with 5 different actions
click: simple on off
long click: local group of lights on off
super long click: local group of lights off
long click over network: network group of lights on off
super long click over network: network group of lights on off
Network actions will be actions shared between 2 or more Controllinos, the network command (and states and pings) will be sent in Json format to an esp32 attached to serial via a level shifter, then esp32 will send the command to a raspberry with node red that will serve the request asking the status to every Controllino and imposing the new status via Json, serial communication with PC is working, I have to test it yet with esp32 attached to pin header (RX2 TX2 I guess).
Almost all the local Controllino logic has been done, Button groups from 1 to 10 are attached to A0-A9 set as INPUT_PULLUP and it works as expected.
I have problems with interrupts, I want to use IN0 and IN1 to control buttons (like the others), however I didn’t find a way to make it works.
Connecting them like so: IN0-BTN-GND and setting up them as INPUT_PULLUP does not work, digitalRead is always 0, analogRead is always 420 (or so), I tried from pin header and from screw terminal, same result, then I tried to use them as a pure interrupt using attachInterrupt function, however it does not work either, it does not detect a change, it’s a very strange behaviour
Someone can help me?
PS: I think that Controllino Maxi pinout table is wrong, for example following that schematics A0 on pin header should be connected to physical pin 97, but in fact it is connected to pin 54… Am I wrong or there is some confusion there?
PPS: there is a way to use digital screw terminals (D0-D11) as a digital INPUT_PULLUP?
to IN0 and IN1 – please note that these inputs have external pull-down inside the CONTROLLINO.
Do not use INPUT_PULLUP and connect it IN0-BTN-SUPPLY and it will work fine.
To the pinout diagram – grey numbers are numbers of physical pins at the microcontroller. Arduino pin numbers are blue.
To the digital inputs – the same situation like with the IN0 and IN1. Use already existing pull-downs inside CONTROLLINO and switch it to supply voltage. Or, use additional external pull-ups. Check our FAQ No.12 for more details about the external pull-up values.