pov display project without microcontroller
TRANSCRIPT
Digital Logic Circuits (Spring 2011-12) EE/CS-220
Project Report
Persistence of Vision
Group Members: 1. Zia ul Azam (2014-10-0106) (Major: EE) 2. Salman Nazir (2014-10-0110) (Major: EE) 3. Muhammad Qasim (2014-10-0111) (Major: EE) 4. Usama Mehmood (2014-10-0099) (Major: EE)
Project Objective & Introduction: The Project was based on the concept of persistence of vision (POV) which is phenomenon of the eye by which an after image is thought to persist for approximately one-twenty-fifth of a second on the retina. The main objective was to obtain a viable alphabetic and a numeric display using a high-speed rotating LED array.
Project Specifications:
#
IC NAME
Quantity
1 LM555 (to generate clock pulse) 1
2 74LS32 (2 input OR gate) 2
3 74LS27 (3 input NOR gate) 6
4 74LS04 (NOT gate) 3
5 74LS590 (8 bit counter) 5
6 74LS688 (8 bit comparator) 4
7 M27C128A (16 KB EPROM) 3
8 M27C32A (4 KB EPROM) 1
9 74LS541 (8 bit tri-state buffer) 4
10 Resistors 35
11 Capacitor 2
12 Infrared Sensor 1
13 Battery 1
14 Motor 1
15 Ultra bright square LEDs 33
Project Deliverables: After all the research, we found that this project is only done using microcontroller. Then it was obvious
that we had to design complete logic ourselves and we were successful. The sequence to be burned in the
ROMS was explicitly written by us. A rotation was divided into 256 frames and each frame was carefully
burned in the ROM to produce the desired image. As our project was analogue propeller clock, therefore
everything was synchronized with actual time. I mean second hand would move after each second and
minute hand after each minute. The numbers and lines to be displayed were written on a 4 KB Rom and
this sequence was repeated every rotation. One position for needle consisted of 256 frames, say one block
of code so 60 such blocks were written to display 60 different positions of a needle.
Exact data stored for static display = 256 bytes
Exact data stored for dynamic display = 15.36 kilobytes
Dynamic display was written on 3 ROMS for each needle. A single counter was driving the least significant
address bits of each ROM. Rest of the required address bits of 16 KB ROMs were controlled by different 8
bit counters. Let’s say motor was rotating at 1800 rpm that means 30 rotations per second. We needed the
second needle to stay at one position for 30 revolutions. It was achieved using counters and comparators.
At different rpm different repetitions of a block of code were required, so it was an extra feature that our
project was adjustable with the rpm. We used an 8 bit dip switch pulled down using resistors to adjust the
number of repetitions. Hence above procedure ensures that needle moves after each second. The minute
hand would only move after 60 seconds and reset the counter driving the ROM controlling second hand of
clock. Same goes for hour hand, it would only move after 60 minutes. An infrared sensor was also used to
keep the display at some reference position by resetting the counter driving the least significant 8 address
bits of every ROM at that position.
We designed two PCBs, one to test our logic and other was the complete version. Both the PCBs were
working and we were very much successful in our logic proved by the test case PCB. Unfortunately our
mechanical setup for big and heavy PCB didn’t work well; still we were able to show numbers and needles
separately. There are some pictures attached at the end of the document.
Digital Logic Circuits (Spring 2011-12) EE/CS-220
Project Modules and Design Overview:
Module 1: Mechanical Rotation Setup
1. DC motor was assembled on a solid surface.
2. The setup ensured high speed rotation of LED array.
Module 2: Generating a Clock Pulse
1. This was done using a 555 timer in astable multivibrator mode. 2. The resistor and capacitor values were set as such that the generated
pulse had frequency of 10 kHz that was enough to generate persistent changing frames.
Module 3: Driving of 8 Bit Counter and frame count setup
1. The clock output of 555 timer ensured enabling up key of 4-bit counter. 2. The output of counters was used to access the respective memory block
in ROM. 3. Another series of counters and comparators were employed in order to
add to user friendly features of the project. 4. This arrangement enabled user to enter the speed of the motor he is
using to the circuit using DIP switches so that circuit can calculate its frame display calculations using it.
Module 4: Storage of Images in ROMs 1. The output from counters
accessed the memory blocks in ROMs to gather the image sequences at particular point in rotation.
2. These image sequences were fed to rotating LED arrays through octal buffers.
Module 5: Lighting up LEDs 1. The Data sequence stored in
ROMs were passed on to the LED arrays to light them up in such a way that an observable pattern was seen.
Block Diagram(s):
IR sensor to keep
track of PCB
position
Clock Pulse Generation
Using 555 Timer
8 Bit Up/ Down
Counters and
counting frames
setup
ROMs with Stored
Image Sequences
followed by buffers
LED Arrays Assembly
DC Motor Mechanical
Setup to rotate PCB
Technical Issues Faced and How you resolved them:
The main challenge in this project was to ensure a stable mechanical setup for the smooth rotation of PCB at the desired frequency in order to synchronize the clock based computations of circuit with the DC motor used. Secondly, non-availability of dual layered PCB machine in the lab caused a massive scale requirement of jumpers and buses to complete the PCB. Lastly to ensure minimum wobbling in the PCB motion, additional workload was introduced in the form of machining of required shaft for motor and dual level bearing housings to keep shaft straight.
(Proteus setup of Applied Logic )
( Static Clock Display )
( Needle Display of Second hand of Clock)