Looking for a non ucontroller sollution

Status
Not open for further replies.

zsh8me2

New Member
I'm trying to figure out a circuit to have the following outputs in sequence with a delay between each change which i can control with a pot (delay will be the same between each change in outputs)
1000000000
1100000000
1110000000
1111000000
1111100000
1111110000
1111111000
1111111100
1111111110
1111111111
delay
sequence restarts

I am looking for help, not for someone to "give" me the circuit. I have a little experience with plc's but I would like to do this with shift registers or something. If I were using a plc I would use an input to start the sequence, delay between each different output (latching the previous output) and the sequence continues until the last one is done, 10 second delay, then restart (I am sure there would be an easier way with ladder logic, but like I said I have a little experience with them)

any help is greatly appreciated

thanks

c
 
Last edited:
A shift register (serial input, parallel output type) IC with a 555 timer should do it I think. Reset the shift register so all putputs are zero and feed the input with a continuous 1 and clock it with a 555 timer. The one should load into the shift register's first output, while the output of all the shift registers is being passed from one to the next every clock cycle. As for the reset you would just need to feed the final output of the shift register back into it's reset input. If you need a delay run the final shift output through a delay circuit of some kind (RC circuit with a comparator or maybe another 555 timer) before feeding it back to the reset.
 
Last edited:
One way is to use a shift register with parallel input, parallel output, and serial input, such as a 74LS299 for example. Since the 299 is an 8 bit device and your sequence requires 10 bits, two 299s would be required. There are other devices, similar.

Your output word would be taken from the parallel outputs.

The parallel inputs to the shift registers would each be fixed logic levels and correspond to the start of your sequence (1000000000) and the load command to the shift registers would occur every 10 seconds.

When the load command occurs it forces the parallel outputs of the shift register to be equal to the fixed parallel inputs.

The 10 second load command could be generated in many different ways, such as a simple 555 timer IC, or a precise crystal oscillator divided down.

The serial input of one of the shift registers would be held logic 1 since your sequence adds a 1 each time the shift register is shifted. The shifting is accomplished by the clock input to the shift registers. The last bit of the shift register would be fed to the serial input of the other shift register.

The clock inputs to the shift registers would have a period equal to the delay you require between successive words in your sequence.

The variable clock for the shift registers can also be generated in many ways, a an astable 555 timer circuit being a common device for that purpose.
 
Last edited:
I recieved my 74hc299 s (I got 99 of them for around $16 )today. I guess I'm not understanding the spec sheet. If I understand your instructions ( make inputs high, send a cp to pin 12 , I should get my sequential outputs? 1000 1100 1110 1111). Could you re-instruct me using either the pin numbers or abbreviations for the pins MR CP S0. Etc.

Thanks

C (that stands for confused at this point)


I need a 555 for the cp and I would use a 555 for the load command, then I would use one for the delay of the reset?
So I would need 3 555's?
 
Last edited:
My. I would have been happy to provide a complete schematic, but I misunderstood you to mean you just wanted a general idea on how to go about the job of sequencing LEDs. Now, I look at the 299 data sheet and the parallel inputs are on the same pins as the outputs, making things considerably more complex than they would be with a different part number shift register.

Can you start your sequence with all zeros for a very brief period of time before beginning with 1000000000? It would be so brief a period you could not see the all zeros state with your eye.
 
Last edited:
A circuit with that logic requires not only shift registers, but also a decoding logic.

A sequence 1 - 1 - 1 from intially 1 - 0 - 0 is normally done in this sequence:

1 - 1 - 0
0 - 0 - 1
1 - 0 - 1
0 - 1 - 1
1 - 1 - 1

Boncuk
 
A circuit with that logic requires not only shift registers, but also a decoding logic.

A sequence 1 - 1 - 1 from intially 1 - 0 - 0 is normally done in this sequence:

1 - 1 - 0
0 - 0 - 1
1 - 0 - 1
0 - 1 - 1
1 - 1 - 1

Boncuk
what? if you feed all 1s into a shift register that is all 0s it sequentially fills each successive location with a 1 per the request with no additional logic other than feeding the last output to the clear input.

Dan
 
ccurtis, sorry, I normally pick things up a little quicker, but my confusion comes from the 299 spec sheet (where the inputs and outputs are the same pins). The start sequence is not critical (I should have made my requirements, or lack of more clear). I really do appreciate your patience with my lack of knowledge.



What I am trying to accomplish is a word (name) that looks like it is being written by hand (it will be done on a scale of 100-200 led's and 7 letters). If there is a different shift register that would make this easier, I am more than willing to get that and give it a shot. I'm not tied to the 299 by any means. If you know of any tutorials that you think that would educate me, please let me know.

Thanks again for your patience and time



C
 
Last edited:
Okay, now I understand better. With that in mind, we can go with the 299s you have already.

Let me explain one shift register first then we can connect the remaining shift registers up.

You hold the right serial input (DSR, pin 11) to a logic 1, since we are shifting a 1.

Since we are going to shift that 1 from left to right, you hold mode input S1 (pin 19) to a logic 0 (GND) and mode input S0 (pin 1) to a logic 1 (+5v).

The OE1 and OE2 inputs (pins 2 and 3) are held fixed at logic 0 so that the outputs (I/O 0 thru I/O 7) are always enabled.

Since the outputs of the 299 can drive the LEDs directly, connect the anode of each LED to each of the 299 outputs through a 120 ohm resistor. The cathodes of the LEDs are all connected to GND.

You bring the MR (pin 9) input low (logic 0) and then high (logic 1) whenever you want to set all the outputs to the logic zero state, turning off all the LEDs.

Now, every time the CP input transitions from low to high, the outputs of the shift register will fill up with 1s from left to right. Each CP input transition will add another 1 to the outputs, turning ON another LED.

To add another shift register, connect the I/O7 output of the first shift register to the DSR input the second shift register, and so on to add more shift registers. Connect all the MR inputs together. Connect all the CP inputs together.

Am I making sense?
 
Last edited:
I think it's coming together for me. I will check out the data sheet in the morning, and do a test on the breadboard to make sure I understand. Once again thanks for the help, should be able to post results in about 12 hours


Thanks


C
 

Worked just as described. I put it on a breadboard this morning with an a-stabble 555 with pots to adust the timing, and this is exactly what I am looking for. I am going to try and breadboard the delayed reset later today when I get time. If I get that correct I will put it into eagle and post. I looked at the data sheet again and saw the truth table for what you described, I should have done a little more fiddling with the truth table before asking for help, but I know for next time. I think I saw in the data sheet that the outputs of the 299 (I/O) are good for 35milliamps and the Q0 are good for 25milliamps, is that correct?

Oh yea, thanks a lot- you prevented a wall from being harmed by my skull.


C
 
Last edited:

I think I saw in the data sheet that the outputs of the 299 (I/O) are good for 35milliamps and the Q0 are good for 25milliamps, is that correct?

Oh yea, thanks a lot- you prevented a wall from being harmed by my skull.

All the outputs are bus driver outputs, rated for 35 mA (source and sink) maximum -- including Q0.

I'm happy to know I helped. Thanks for the opportunity. Anything else, just let me know.
 
I have been thinking about my delayed reset for the 299's and I think I have come up with a solution.
1 Take the last output of my last 299 use it to drive an NPN transistor that is connected to the trigger (pin 2) of my 555.
2 Take the output of the 555 to drive a PNP transistor that is connected to the 299's MR.



The more I think about this it may not work and is using a few more parts than anticipated. I'll think some more on this, if I am going in the total wrong direction, could someone put me back on track?
 
Ok I'm working this reset backwards. I'm taking the last output into an NPN transistor. The collector is connected to the MR. I have an led ( diode) I had on hand connecting the MR to 4.5 volts ( I did this so I wouldn't short the power supply). I'm try and find an on delay circuit I can put between the 299 output and transistor.
 
The more I think about this it may not work and is using a few more parts than anticipated. I'll think some more on this, if I am going in the total wrong direction, could someone put me back on track?

Sure use a microcontroller. Any reason you want to avoid them?
 
I'm not avoiding them, I think I will get into them once I'm done with this project. (Once I get somthing stuck in the old noggin it's tough for me to stop until I get it completed, then it's on to the next thing.). Also, I'm trying to re-learn the stuff I have forgotten or haven't used in years. I will probably do this same project with a micro once I start with them just for a comparison.


Thanks


C
 
Your making good progress. I'll check here now and then. 555 timer delay circuits are all over the internet.
 
I really appreciate the help and encouragement. Hopefully I can finish this project without further assistance, but I will postupdates as I progress. Hopefully within a week or two I will be able to post my schematic & maybe a video with a working board. I just got my dual side pcb today, I will have to order the led's and whatever resistors I will use ( based on the power supply I find to power this thing. I'll probably need a 5+ amp supply). Once again


Thanks


C
 
I found an on delay for the 555 and put it on the breadboard and it works perfectly. I have been playing with EAGLE a little bit and this is the schematic I have worked up for the first few 299's and the 555's.
 

Attachments

  • Christmasname.pdf
    24.7 KB · Views: 183
Last edited:
I found an on delay for the 555 and put it on the breadboard and it works perfectly. I have been playing with EAGLE a little bit and this is the schematic I have worked up for the first few 299's and the 555's.

Fine work. I didn't check everything, but two things I see are going to cause trouble. First, The diodes connected between VCC and the CLR inputs are going to short out the power supply when the transistor pair driving those inputs turns on. I suggest eliminating all but one of the diodes and replacing the remaining doide with a 10Kohm resistor. Second, there needs to be a resistor (4700 ohms should do) between the output (pin 3) of your bottom 555 and the base of the transistor it is connected to. That will limit the base current to a safe level to prevent transistor damage.
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…