Hopefully this is in the correct topic, sorry if it's not - first post here.
I am looking at building some punch card scanners using probably an Arduino Nano or UNO that would send data to a PC where it would be pulled into a DB system.
Current thinking is an array of opto switches/IR sensors.
The cards are as shown:
The black shapes are punched out of the card.
I'm planning 5 columns of opto's plus one to read the black column to check the orientation of the card is correct.
The card will be placed into a reader in a registered recess.
I'm thinking each numeral location would have a light source on one side of the card and the opto on the other, except the black column which would use a reflective sensor.
Sometimes when the cards are punched the holes are poorly aligned but they invariably remove the digit.
If a mistake is made and the wrong digit is punched the correction is made by punching out all digits except the correct one. This should be OK to deal with in software. It's a fairly manual process so it's no big deal if the odd card can't be scanned correctly as long as I can flag that there's a possible error. I'm thinking a LED on the reader that lights if the results aren't sensible - eg no reading from a row, or a double reading. Maybe a LED for each row so the operator can see that the correct number of rows are read and also which row has a possible error. Details really.
I don't really care at this stage how the data appears in the Arduino but my first thoughts are:
- Bitwise eg "00001" for the first row shown.
- individual digital inputs
I've had a bit of a look at options to connect the sensors but I'm not too sure which might be the best way to go.
I've seen I2C & SPI I/O expanders and also Shift Registers but I don't really understand the pros and cons of each. It seems to me that they both end up with the Arduino receiving pretty much the same data - 8 bits for each group of 8 inputs.
I've also seen multiplexers, but they look to me like there might be a fair bit more work writing the code to make it all work, and possibly also setting up the electronics.
Speed isn't an issue but reduced software complexity would be good for a beginner like me.
Buying pre-built boards/shields would be preferable, if it works out OK I'd probably end up making 10-20 devices so the less assembly required the better. I've seen the centipede shield which is much more than I need but would certainly provide all the I/O's if I went that way. Still looking around to see what other options are available.
I'll 3D print the housing.
I've very little experience with Arduino and limited electronics skills, but enough to put basic circuits like this together. And I've a handy friend who actually knows what he's doing on that front.
I know this is a pretty open question, but I hope to get a better reaction here than I did at Arduino Stackexchange!
Thanks