Let's Make Robots!

Multiplexing for my chess robot

Base over Apex showed to me that the "ghost piece" i was talking about could be fixed this way below. 

 Oh yeah i am doing this because my shift registers... well something happened...no im doing this.

This is a common problem. The answer is a diode on every switch. You still need to scan the rows and columns individually.

Here's how to kill the ghost:

diode_open.gif

Make your board with only 16 wires instead of 65.

 

Ok my question is how does a diode on every switch change the "ghost piece" problem?

and on the multiplexing where does the gnd go?

i am using arduino so it has a built in pull down resistor but idk how this darn multiplexing works. 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Yep, the idea is that if you're going to read row number 'N' then you set RowN+ high and RowN- low, and all other Row+ low and all other Row- high.
If you want to read Row6 for example then you set Row6+ high and Row6- low, and the rest are reversed.

As RowN+ and RowN- are always the opposite of each other, the octal inverter IC I mentioned previously allows you to just use 8 input lines, since you can have the inverter control all the RowN+ lines by using the inputs from the RowN- lines. If you use a 3-8 decoder IC then you only need 3 inputs, and only 1 of the decoder's outputs will ever be low at a time.

Edit: There was a minor error in the first diagram, but I can't edit the post now so I'm posting the updated one here:

Chess_Sensor_Array.jpg

ok i wired this circuit up and here are some things im finding. One that you do not want to make the other circuits all HIGH because then you read those too. But its best to not do anything with the ones your not reading. A single resistor is giving a different value on different squares. What does that mean? finally one resistor on a single row makes all the analog inputs equal to that one value. Thats deffinetly not good. What does this mean when it comes to the circuit? im sure the first thing you will ask me is if i have the analog inputs perpendicular to the rows im driving HIGH and i do. The columns are driven hight to read and the rows are the analog inputs. 
you know what nvm. It isnt quite as a problem as  i thought. It is a small i guess noise problem like a value of 189 would make the square next to it read about 100 but we will see if any resistors have that value of the noise and if not then it wont be too big of a problem. And about the resistor value being different on different squares is wrong too. 
Are you driving the Row+ high and the Row- low? If you have both of those going it should almosst completely wipe out any interference from other squares on the same row.

yes just for the row im reading

 

IndexQuantityPart NumberDescriptionCustomer ReferenceBackorder QuantityUnit Price
USD
Extended Price
USD
11AE9992-NDIC SOCKET STRAIGHT 16POS TIN00.45000$0.45
21CF1/4910JRCT-NDRES 910 OHM 1/4W 5% CARBON FILM00.08000$0.08
38CF1/41.5KJRCT-NDRES 1.5K OHM 1/4W 5% CARBON FILM00.08000$0.64
48CF1/42.2KJRCT-NDRES 2.2K OHM 1/4W 5% CARBON FILM00.08000$0.64
52CF1/43KJRCT-NDRES 3K OHM 1/4W 5% CARBON FILM00.08000$0.16
62CF1/43.9KJRCT-NDRES 3.9K OHM 1/4W 5% CARBON FILM00.08000$0.16
766CF1/45.1KJRCT-NDRES 5.1K OHM 1/4W 5% CARBON FILM00.02880$1.90
82CF1/46.8KJRCT-NDRES 6.8K OHM 1/4W 5% CARBON FILM00.08000$0.16
91CF1/49.1KJRCT-NDRES 9.1K OHM 1/4W 5% CARBON FILM00.08000$0.08
101CF1/413KJRCT-NDRES 13K OHM 1/4W 5% CARBON FILM00.08000$0.08
112CF1/418KJRCT-NDRES 18K OHM 1/4W 5% CARBON FILM00.08000$0.16
122CF1/430KJRCT-NDRES 30K OHM 1/4W 5% CARBON FILM00.08000$0.16
131CF1/468KJRCT-NDRES 68K OHM 1/4W 5% CARBON FILM00.08000$0.08
141296-9518-5-NDIC QUAD HALF-H DRVR 16-DIP02.75000$2.75
1591N4148T-73CT-NDDIODE SWITCH 100V 150MA DO-3500.20000$1.80

Chess_Sensor_Array_1_1.jpg

Version 1.1, ready to go. This fix should decrease the diode voltage fluctuations.

Chess_Board_Sensor_Array_1_2.jpg

As much as I hate to add more diodes back into the circuit, this may be the easiest way to cut out interference from adjacent pieces. Unfortunately the original design is not as resistant to that as I had thought.

oh wow. Im not too sure if i can do that. Um things are starting to become permanent in place. Ill see how the first circuit goes. If it does not work then i will do this but i am not ready yet to change it.
Since the diodes are so small you just add them underneath the squares themselves. I'd suggest going to Futurlec if you need to buy them, it'll only cost US$2.60 for 130 basic diodes =)