Dangerous Prototypes

Other projects => Past projects => Open 7400 Competition => Topic started by: udif on October 19, 2011, 04:46:06 pm

Title: [Entry]TTL based range finder
Post by: udif on October 19, 2011, 04:46:06 pm
[Update: added a picture, and updated schematics due to missing VCC connection on the 7-Seg].

This is my 7400 contest entry. It is an ultrasonic range finder implemented using TTL components and an ultrasonic sensor.

Due to the little time I had to work on this, everything is implemented on 3 messy breadboards.

How the circuit works:

IC1A (74LS123, a dual retriggerable one-shot) is used to generate a ~80ms time base to set the time between measurements. The exact value is not too important, but it should be above 60ms to allow some window of time where we are sure no measurement is taking place (max measurement time is ~25ms).
The output from IC1A is driving IC2 (74LS121, one shot with clear and complementary output) which is generating a 10us pulse every 80ms. This 10us pulse is driving the ultrasound sensor (HC-SR04), as required by its specification.
The echo pulse returning from the HC-SR04 sensor is an active high pulse whose width is proportional to the distance measured.
The echo pulse is used for 2 purposes:

1. Gating another clock generator (IC1B, 74LS123) - when there is no pulse, there is no clock. This clock is counting the duration of the echo pulse, and is calibrated in such a way that each clock pulse represents 1cm of the distance measured.
In order to be reasonably accurate, the circuit uses one fixed resistor to get the RC network in range, and a small trimmer in series, so we could calibrate the distance measurement.

2.Blanking the display while the echo pulse is active, so that only stable data is displayed. Since the blanking signal needs to be low, the echo pulse is inverted using a 74LS14 (IC10A).

ICs 6,7,8 are BCD counters counting from 0 to 999. They are cleared by the trig pulse to the sensor, and incremented by the pulse from IC1B. The 3 counters are cascaded using a 74LS08 "AND" gates (IC9), so that the next counter increments only when all previous counters are at the value of "9". We can check only QA & QD == 1 (and ignore checking for zeros at QB,QC) since 1001 is the lowest value among all 1xx1 combinations, and is reached first by the counters.

The BCD counters are driving three 7447 BCD-to-7Seg chips (IC3,4,5). Which in turn, drive 3 common-anode displays (TIL312).


Some notes:

You will find here attached a link to a video showing the board, and a PDF schematics.

YouTube video:
http://www.youtube.com/watch?v=umTaJH-2pLM (http://www.youtube.com/watch?v=umTaJH-2pLM)

( ! ) 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.00952055352session_write_close ( )...(null):0
20.00992186944ElkArte\sources\subs\SessionHandler\DatabaseHandler->write( )...(null):0
30.00992187720Database_MySQL->query( ).../DatabaseHandler.php:119
40.05752326456Database_MySQL->error( ).../Db-mysql.class.php:273