How much did I mess this up (split flap diagram... with mspaint skills)

[edit]Fixed card attachment[/edit]

So I have been working on this for a while now, and being an INTJ I tend to (over)think things through before finally jumping in. Last week I purchased a bunch (to me) of electronics including switches, logic gate ICs, diodes, shift registers, etc. For power, I purchased a 100a 5v power supply.

Anyway, after drawing a few circuits out I came up with an interesting solution. The project is a 10x10 miniature split-flap display, so 100 individual displays. Most of these projects are done with stepper motors but this is costly. I am trying to keep this project within a $1500 limit and 100 steppers+controllers would put me right there without anything else. Instead, I have been trying to get around this by using inexpensive dc motors + physical switches and ICs.

The program starts by shifting out the bits needed to only get a HIGH signal on the S5 switch (the one corresponding to the BLANK card). The OR gates send HIGH because the S5 is still closed, the mosfet activates allowing current to flow to the motor. Once the BLANK card is rotated into the switch bank, it activates the switch, opening the circuit. This means the OR gates send LOW signal out which deactivates the mosfet which kills the motor.

After that, bits will be shifted out for specific displays. IF the next display to be sent is lower than the previous display (a 3 when a 5 was displayed) the signal to the BLANK will be sent first and then the correct display (5 → BLANK → 3). For the other displays, a LOW signal will be shifted out to those so the motor does not run (2 → 6 → null). For the displays that remain the same a LOW signal will be shifted out to those each time (4 → null → null).

The possible issues.

  1. This will require 60 shift registers to work. I have initially purchased 25 to see if I can send reliable signals that far (I should have just bought 60 knowing I would need them and would have to test the signal regardless). Will I need some sort of signal amplifier to make sure the signals don’t get degraded?
  2. I have purchased diodes but don’t know exactly where to place them. Just inline after the mosfet, before the motor’s negative lead? Or in parallel to the motor between the positive and negative leads?
  3. I purchased 10k and 100k resistors for pulldown purposes.
    a) Do I just need one off the pin from the arduino
    b) Do I need one for each register
    c) Do I need them for the OR gate IC inputs (can’t imagine that I do since the switches are physically open/closed if I want the IC’s to operate)?

Note in the diagram, the series of OR gates is accomplished through two 3-input OR gate ICs in serial, but the app I used (schemeit from digikey) is limited to 2 input gates.

So how much did I screw this up? Did I miraculously get this close to correct?

You have the same diagram for 3 and 6. You will have 100 motors? Each motor will have a shift register output associated with it? So you can just shift out 100 bits (13 shift registers) to set the motors on/off as needed. The motors only need current flow in one direction? Maybe skip the MOSFETs and use TPIC6B595 (150mA current sink) or one of the higher power variants - combined shift register and high current from up to 50V sources.

In regards to 3 and 6... oops. It is a binary progression but my brain messed it up. (fixed)

Yes, 100 motors.

Not quite a 1 for 1, 5 outputs needed for each motor so 5 * 100 / 8, 63 registers.

Yes, only 1 way for the motors.

Skip the mosfets and the OR gates? Tie the outputs of the switches directly to the motor? (I guess I could get rid of the OR gates right now and just tie the outputs of the switches to the mosfet gate?)

What kind of motor is it that needs 5 control lines? Do you have any links for the display & motors?

What ever else you need a diode across each motor for the back emf.

CrossRoads: What kind of motor is it that needs 5 control lines? Do you have any links for the display & motors?

No, per the diagram, the 5 outputs from the shift registers go to switches so the display flips to the right output. The motor is a simple 2 wire. I am making the display from scratch, no links for that.

Grumpy_Mike: What ever else you need a diode across each motor for the back emf.

So, between the +/- terminals of the motor body?

I'm not following. You have 5 signals, any of which being high will drive the motor with the OR gates. What do the "card"s do?

CrossRoads:
I’m not following.
You have 5 signals, any of which being high will drive the motor with the OR gates.
What do the "card"s do?

Sorry, here is a picture to a split flap schematic:

In my version, the “cards” are keyed so that the display rotates to the correct card each time. So the motor drives the wheels on the display which cycles the cards (rolodex style) until the shift register HIGHs line up with the switches and then the motor dies keeping it at that position.

Ah - making more sense now. What is the feedback from the mechanical assembly back to the electronics? Optical bar code or equivalent on the side of the wheel that you read with a 4-bit light/dark sensor? Actual mechaniical switch that triggers at blank position, and another that is tripped as each digit goes by? Is the plan for 100 motors too?

CrossRoads: Ah - making more sense now. What is the feedback from the mechanical assembly back to the electronics? Optical bar code or equivalent on the side of the wheel that you read with a 4-bit light/dark sensor? Actual mechaniical switch that triggers at blank position, and another that is tripped as each digit goes by? Is the plan for 100 motors too?

No feedback is required. Just time to run the motors for the longest sequence. At the end of that time, the displays should have advanced to the correct outputs. The switches will be triggered mechanically and killing the circuit automatically at (hopefully) the correct position.

That will never be stable over the long term.you need some form of feedback.

What switches? What trips them? Will you be able to determine at least 1 known position?

Grumpy_Mike: That will never be stable over the long term.you need some form of feedback.

I am interested in why you think that. The driving mechanism to get to the correct card is all electro-mechanical. If that method, which should be automatic, fails to get to the right card, no amount of feedback will allow me to get there as well. Either the card flips to the correct one, or the device KNOWS it didn't flip to it... then what, tries to flip to it again?

The possible failures that I can foresee: 1) The cards flip to the correct position but a few fall forward to the next card. This closes the circuit which drives the motor again and it might catch the card in the correct position. Or it will loop until another signal is sent. 2) The correct card never fully engages the switch bank. The system will loop until it catches or another signal is sent.

You will note that both times, the system itself tries to fix through another rotation w/o any feedback. The easiest feedback is from the switches, since it is a SPDT the feedback could come in a form of reading the HIGHs from the momentary position. But what will this feedback solve? There is no way I can think of to "fix" either of these two issues using feedback. Just possibly acknowledge there is a glitch and continue on or shut it off to debug.

Note, this is not a remote installation. I should be near when this is running.

CrossRoads: What switches? What trips them? Will you be able to determine at least 1 known position?

The switches are momentary NC lever actuated. The individual cards will trip them as the wheel rotates around for each display character. If you look at the inline picture, and then look at my attachment newcardfix, picture the top of the 3 having the cutout tabs. Those tabs hit the momentary switches (S1 and S2). If the shift register is sending HIGH only to output's 1 and 2 then the circuit opens, killing the motor. If not, the motor spins the wheel until the correct card matches with the outputs.

Currently there is no feedback in the system. The initial determination is done by using S5 as the BLANK and shifting out the signal so only the outputs correlating to the 100 individual S5's are HIGH. Once the displays rotate to the BLANK card, the circuit opens and the display remains there.

Ok, this is making sense now. We were missing the part about the card edges working with switches. In this case, having a 5th switch seems overkill as you have less than 16 states you are detecting at each position, but whatever. Are you bringing the 5 switch info from each of the 100 displays back to the processor, via a set of shift registers? Then drive each motor to kick over to desired digit? In that case, 4 switches would be better, could knock down the hardware needs to (4 * 100)/8 = 50 shift-in registers (74HC165) for reading current position of each switch, and then (100/8) = 13 shift-out registers (TPIC6B595 for 150mA motors, TPIC6D595 for 350mA motors), sink current thru each motor as needed to spin it into position. Is that what you are envisioning?

For example, here are 4 shift-in registers cascaded. Expand to 50 would not be a problem.
Cascading TPIC6B595s to drive motors would be similar, with MOSI supplying data to the first device in the string of 13. Course that depends on the motor current needed also, which I don’t think has been described yet.

The reason for the 5th switch is for the initialization step/reset to BLANK. Think of the signal out being read if I am on card 3 and want to progress to card 1. Only S1 would be high, and the circuit would start open and the motor would never engage. So I needed to have another switch to get to the reset step so S5 goes high, flips to BLANK. Then I send the S1 high and it progresses to card 1.

I have no shift in registers, everything is outputting. To look at the first display only:

A single shift register's first 5 outputs are connected to display 1's switch bank (S1-S5). Initially the command will be sent to make output 5 high on the shift register. If the display is already on card BLANK then the circuit is open and the motor does not spin. Otherwise, the circuit is closed and the motor spins until S5 opens (which lines up with card BLANK).

After that, let's say I want to display card 3. So I shift out the bits so that output 1 and 2 (switch S1 and S2) are high and the rest are low. The motor engages until card 3 rotates into position. This card opens the momentary switches S1 and S2 which opens the circuit, killing the motor.

Then let's say I want to display card 1. IF I don't first rotate to the BLANK, the current logic of making only output 1 high is already active. The motor would not spin and the display would be on 3. Instead, I first shift out a high to output 5, this rotates the display to BLANK. Then I shift out output 1 to high and the motor spins to the 1 card.

Currently there is no feedback in the system.

but

Either the card flips to the correct one, or the device KNOWS it didn't flip to it... then what, tries to flip to it again?

That is feedback. The fact that the device knows that there was no flip is what engineers call feedback. What did you think feedback means?

Either the card flips to the correct one, or the device KNOWS it didn't flip to it... then what, tries to flip to it again?

That is feedback. The fact that the device knows that there was no flip is what engineers call feedback. What did you think feedback means?

I am aware of what feedback means, and I am implying that if the device knows of this (through feedback) it can't solve any potential issues.

If the uC commands the motors to position 5, and then reads back from the switches what actually ended up, say 7, it can rotate the motor thru again, and stop it sooner the next time. That's where we are coming from. If you are not reading the switch info in, then yeah, it doesn't solve anything.

I don't follow the shift-out register to the switches & OR gates to turn the motor off yet.

Hi, sounds like the mechanical flip type displays that were/are used at airports displaying flight information. We have a clock that has flip type digits, wife says its over 30years old, still runs, one D cell per year weather it needs it or not.

Tom......... :)