Dangerous Prototypes

Other projects => Past projects => Open 7400 Competition => Topic started by: voidptr on October 17, 2011, 11:48:03 am

Title: [ENTRY] Silly bunch of unbounced switches :-)
Post by: voidptr on October 17, 2011, 11:48:03 am
My silly bunch of unbounced switches :-)

Few years ago, I restarted playing with few hardware home build prototypes,
and, of course the same old silly problems of electronics were still there ...

Because I was (and still) doing this for fun on the corner of my desk,  I didn't had money
to buy expensive or ready made tools ...

So I build this addon to my breadboard to get ride-off of  some bounces !
I wanted to have a clean rise or fall of a TTL level through some switches, 
and I wanted to do that on at least  a byte wide with few more to control things.





So I got together :

3  SR Latches Quad  74LS279  (LS because it is available and still useful, thanks to my old TTL databook)
3 dip sockets
6 inline 1k resistor strips
4 connector banks
12 switches DPDT  ON-ON  ( I didn't find any SPDT at my local harware store, so im just using one pole of the switch)
protoboard, telephone wire, soldering stuff and few beers :-)


The design is really strait forward,  each switch will connect to one SR Latch 

V is 5 volts
r resistor is 1k
one or the other throws will result has !S or !R to be low, so correctly driving the SRLatch,
the result is of course debounce and availble on Q 
in the travel between stop positions we will get !S and !R  high so Q =Qo





I started by solderind sockets, V and Gnd on the back and finished the links to switches and terminals on the top with wires :o)
I mounted the protoboard and push the wires under a plastic part on my breadboard.
And I was done it  worked since that time :o)





Few months ago I bought DangerousPrototype's Logic Sniffer and, for the first time I look at one switch :o)
( it could have been really fun to have a analogue scope to  read V and see TTL level thresholds at the same time)



so starting form Switch = OFF we got !R = L and  !S  = H  and of course Q = L
at -6.3ms  I start to move the lever of the switch  so the logic sniffer see few bounces  and I got  !R = H 
(of course Q stay the same many resets  make no difference)

at the red zigzag we are traveling between the throws and ... I cut the pic cause it was to big  :oP
so  !R and !S are H  so Q = Qo

at 0ms the contact in the switch touched the other pole and at the same time Setting  the latch Q = H
few bounces their also ( many Set make no difference of course)

time past and a bit after 274.05ms (there's a display error when zooming with the software ...)
I started the reverse move ... so still fews bounces at each throws ...

BUT,  we got clean rise and fall signals Q from a switch !!!



Of course this is a text book application :o) 

It  was NOT intended to be nice and be (re)produce but it works fine has is...

Since the time I made it, I thought of few things who could be enhance ...
like different voltage (TTL famillies level and power level 3.3v, 5 volts)
the current TTL current fanout is ok, but it could be made better for driving a manual clock (like adding transistors or ...)
etc...
 
But I think everyone can build there own without any problem,  it is still really useful in our microcontroller world  ;oP

We all need few clean simple signals to do things !!!

:o)
PS sorry for my bad english :o)

( ! ) Fatal error: Uncaught exception 'Elk_Exception' with message 'Please try again. If you come back to this error screen, report the error to an administrator.' in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
( ! ) Elk_Exception: Please try again. If you come back to this error screen, report the error to an administrator. in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
Call Stack
#TimeMemoryFunctionLocation
10.00942054312session_write_close ( )...(null):0
20.00972185904ElkArte\sources\subs\SessionHandler\DatabaseHandler->write( )...(null):0
30.00982186680Database_MySQL->query( ).../DatabaseHandler.php:119
40.05442325416Database_MySQL->error( ).../Db-mysql.class.php:273