Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By SentinelAeon
#91869 Hello,

I am trying to see if esp8266 is capable of a certain task. So we have a board that has lets say 9 spots. On each spot you can put a cube. Each cube has 6 sides. Now the board itself will house an ESP8266. U need to put the correct cube on each of the spots, but not only that, u need to use the correct side of the cube. The system will alert the user whether he put the correct one, with the correct side on the correct spot. Now obviously, i need a way to detect this.

So for this small scale example, we have 9 cubes with 6 sides. That means system has to be somehow able to differentiate 54 different "sides". There are a couple of ways i can think of to do this:

- each side having different resistance and i am measuring that
The problem here is that i only have 1 ADC, which means i can only measure 1 cube. That is not enough, i have to be able to measure 6 cubes at once which means i would need 6 ADCs.

- each side has different voltage
Same as above ... i only have 1 ADC ..

- i supply a 3.3V to each cube. Then i have some pins ... some of them are connected to this 3.3V, some of them are connected to GROUND. I use GPIOs to measure which pins are "1" and which are "0" and i differentiate cubes and sides by that.
The problem is that in order to read differentiate 6 sides, i would need 3 GPIOS (2^3 = 8) for each cube, which is 18 GPIOS for the whole thing. I dont have that many GPIOS.

Any other ideas ?
User avatar
By SentinelAeon
#91870 edit: just thought of kind of a solution, though will need your input still. DS18B20 temperature sensors each have an individual ID number on them. So if each side of the cube had this sensor, i could just read its ID number ... and have that ID number stored in the system so i could configure which is correct and which is not. Those sensors are cents a piece, though it somehow seems a waste to use them for just that. But if there is no other way, i guess thats ok too :)