+ All Categories
Home > Documents > Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

Date post: 28-Nov-2014
Category:
Upload: athar-noriaz
View: 1,150 times
Download: 5 times
Share this document with a friend
27
PROPELLER LED DISPLAY AJMAL BlN MUHAMAD SAZALI This Report Is Submitted In Partial Fulfillment of Requirements for the Bachelor of Electronic Engineering (Industrial Electronic) with honours. Fakulti Kejuruteraan Elektronik dan Kejuruteraan Komputer Universiti Teknikal Malaysia Melaka April 2007
Transcript
Page 1: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

PROPELLER LED DISPLAY

AJMAL BlN MUHAMAD SAZALI

This Report Is Submitted In Partial Fulfillment of Requirements for the Bachelor

of Electronic Engineering (Industrial Electronic) with honours.

Fakulti Kejuruteraan Elektronik dan Kejuruteraan Komputer

Universiti Teknikal Malaysia Melaka

April 2007

Page 2: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

vii

ABSTRACT

Conventional methods of displaying images to public are using LCD display and

dot-matrix LED board. Propeller LED display is a device that project an image or time

as if the images are floating in the air. The floating image is received because of human

eye limitation. Actually the floating images emerge by synchronizing LED'S blink to

form an image at particular time and rate.

The programming of PIC is using Assembly Language. This project consist two

main circuit; motor controller circuit and LED circuit. 9VDC will be used to supply the

power for motor controller circuit. Then the motor controller circuit will provides power

to LED circuit and DC motor. When DC motor is rotating, the floating image will

appear. The synchronization of DC motor speed and LED blink cause the image visible

to human eyes. So the desired image such as clock, date or symbol can be programmed

and displayed.

Page 3: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

ABSTRAK

Antara kaedah konvensional untuk memaparkan imej adalah menggunakan

papan LCD dan papan LED dot-matrik. Paparan Berputar LED adalah alat untuk

menayangkan imej atau masa seolah-olah imej tersebut terapung di udara. Imej yang

terbentuk ini dapat diterima kerana batasan mata manusia. Sebenarnya, imej ini timbul

kerana keselarian kerlipan LED untuk membentuk imej pada masa dan kadar yang

khusus.

Bahasa pengaturcara Assembly digunakan untuk diprogramkan kedalam PIC.

Projek ini terbahagi kepada dua litar utama, iaitu litar pengawal litar motor dan litar

LED. 9VDC digunakan untuk membekalkan voltan kepada litar pengawal motor.

Apabila motor DC berpusing, imej yang terapung akan terhasil. Keselarian di antara

kelajuan motor DC dan kelipan LED akan mengakibatkan imej yang nyata untuk dilihat

oleh mata manusia. Oleh itu, imej seperti jam, tarikh dan simbol boleh diprogramkan

dan dipaparkan.

Page 4: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

CHAPTER I

INTRODUCTION

1.1 PROJECT SYNOPSIS

Nowadays, there are so many way to displaying a message such as using 7

segment, Frosted Light Bar (RGB 16.7 millions true colows), digital clock and etc.

These kind of device are used to advertise or displaying some sort of message in

order to attract people. It is different than a conventional method such as poster,

banner and etc. These projects are cheaper, easier and even carry out the same

purpose as any display apparatus.

1.2 PROBLEM STATEMENTS

From other article and project, there are some problems which are effected

the outcome of the image displayed. The main problem is concerning the motor. A

VCR motor has to be used as a motor in order to prevent noise. The circuit also have

to use photo transistor to generate precise index pulse. In order to display the date

and clock, the circuit must have memory capacitor to keep the clock ticking even

when the power is not supplied to the circuit. The memory capacitor is expensive

plus, it bigger and heavy. To replace the memory capacitor, a small, cheap and light

3V lithium battery is used as a replacement. A voltage regulator also has to be used

Page 5: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

in order to allow rotation speed change without effecting the circuit and displayed

images.

1.3 OBJECTIVES

The objectives of this project are:

i. To design a display system using LEDs which rotate on a motor.

ii. To design a program using Assembly language.

iii. To display clock, date and symbol using LEDs.

iv. To develop software that can generate LEDs display with accurate

synchronization and timing.

1.4 SCOPES OF PROJECT

The scopes of this project are:

i. The circuit is mounted on DC motor.

ii. LED'S are used to display clock, date and symbol. . . . 111. PICF84A is used to control and transmit the signal and utilizing the

Assembly language.

1.5 CHAPTER SUMMARY

CHAPTER I will describe the definition of this project will be explained in

this chapter. Also in this chapter there will be summary the project progress.

CHAPTER I1 will discuss about research and information which are related to

this project. Every fact and information are gained from different references will be

discussed so that the best technique and method can be implemented on this project.

Page 6: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

CHAPTER I11 will be describing how this project is separated to small

partition. The elements which are used to build each circuit are described by concept

and theory. Plus, figures are provided to ensure the understanding.

CHAPTER IV is describing about the project result and outcome discovery.

The project outcome discovery will be presented from the many data analysis results.

The final chapter, CHAPTER V will be explaining about the conclusion of the

whole project which includes project finding, achievement analysis and conclusion

about the research implementation which have been used. The project suggestion for

enhancement also discussed.

Page 7: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

CHAPTER I1

LITERATURE REVIEW

2.1 INTRODUCTION

This chapter is all about discussing the theory and concept from the past

projects. The objective is to explain the perspective and method which has been used

in the past projects and to observe how this project can be related with existing

research and theory. This shows how the theory and concept have been implemented

in order to solve project problem. The theory understanding is crucial as a guidance

to start any project. The result of a project cannot be assessed if it's not compared to

the theory.

Page 8: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

2.2 HENK'S PROPELLER CLOCK ON A MIRROR PROJECT

Figure 2.1 : Displaying Clock And Date.

The LEDs turn on and turn off, one after another, very rapidly. Due to the

slow response of the human eye, the impression that the lights are on all together is

obtained and the display can be read. Scanning in this clock is mechanically. A

limited number of LEDs are placed in a row and attached to a rotating arm. The arm

spins at 1500rpm (or more) and the LEDs are turned on and off at very precise times

and places. This gives the impression that there are several hundred LEDs making up

a complete display. The fact that the arm is spinning at 1500rpm the LEDs, the

electronics and the arm itself are hardly visible. The visible things are the lighted

dots from the LEDs making a readable display that seems to float.

Depending on the form of the arm, the display is either a cylinder or a disc.

The cylinder shaped display can only show digits. With the disc shaped display it is

also possible to simulate analog hands. The electronics is used to drive the LEDs and

to keep time are located on the rotating arm. Early versions used buttons on this arm.

Page 9: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

Other designs use a reed-switch that can be actuated by holding a magnet

near the rotating arm. Chester Lowrey's Propeller Clock using one visible light, one

infrared, to create a two-button system. This made settings the time a lot easier.

But Henk wanted to display time and date. To set time and date with just

two buttons would not be very efficient. So an infrared sensor is connected to the

CPU and programmed it to decode signals from a remote control. This opened up a

lot more possibilities. The remote can be used to set time and date. It can also be

used to set different display modes. The successful project is shown in Figure 2.1.

Page 10: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

2.3 BOB BLICK'S PROPELLER CLOCK PROJECT

Figure 2.2: Seven Light Emitting Diodes Spin.

Bob Blick made the clock spinning on a piece of perfboard. The power is

provided from the spinning armature of a plain DC motor. In order to run the wires

out of the motor, the bearing is removed from one end of the motor, leaving a big

hole. There are three terminals inside most small DC motors, and it acts a lot like

three-phase alternating current, so it must be rectified back to DC. A nice side effect

of this is that the position of the motor can be detected by taking one of the phases

straight into the microprocessor.

Bob Blick used perfboard (Vectorboard) and handwired the circuit together.

Use an 18-pin socket for the 16C84 is used because it needs to be programmed

before putting it in the circuit. For the 7 current-limit resistors a DIP resistor array is

used, because it made it easy to experiment with LED brightness. He settled on 120

ohms. Seven regular resistors also can be used, because 120 ohms works fine, though

it puts the peak current right at the limit for the 16C84. To keep the clock running

after turning it off a 47000uf is used, so the time can be set. The LED'S gets power

separate from this circuit. The result is shown in Figure 2.2.

Page 11: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

CHAPTER I11

PROJECT METHODOLOGY

3.1 INTRODUCTION

This project consist two different circuits. There are motor controller circuit

and LED circuit. At early stage, circuit designs are being done. After that, using a

software called 'Proteus-ISIS', both circuit simulation are implemented. After the

simulation process is proceeded, both circuit will be designed to be printed in PCB

board using 'Proteus-ARES'. Next, circuit construction and testing are using

multimeter. If the circuit malfunction, designing and modifying circuit process has to

be done to ensure both circuits working properly. The programming language design

process is using MPLAB-IDE. Finally after the programming is finished, the

program is burned into PICF84A using WinPic800.

Page 12: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

3.2 BLOCK DIAGRAM

LED Circuit

PIC LED

A A 9v

A

4 - Motor Shaft

Motor DC -

+ Controller Motor Circuit

Figure 3.2: Block Diagram of Propeller LED Display

From the Figure 3.2, the 9V DC is supplied to Motor Controller Circuit.

Motor Controller circuit is controlling the DC motor speed and the speed is

adjustable. In order to rotate the circuit, DC motor is used. PIC microcontroller

purposed is to execute the program and transmit the signal to LED. As output, a line

of LED is used to transmit the desired signal. In order to display the images, DC

motor will rotate the circuit board. If the displayed image is not clear, the DC motor

speed is adjusted until the displayed image is visible.

Page 13: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

3.3 ACTIVITY FLOW CHART

With the aim of completing this project on time, all activities have been

planned as shown in the activity flow chart with the intention that everything is

completed step by step.

Discussing the scope

Literature research

Circuit Design

Simulation

1 Construct Circuit

PIC Programming

No

Finalized PCB

Figure 3.3: Project Activities Flow Chart

Page 14: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

3.4 COMPONENT AND SOFTWARE EXPLANATION

The PIC16F84A is a high-performance, low-cost, CMOS, fully-static 8-bit

microcontroller with 1K x 14 EEPROM program memory and 64 bytes of EEPROM

data memory. It is the second member of an enhanced family of PICl6CXX

microcontrollers.

Its high performance is due to instructions that are all single word (14-bit

wide), which execute in single cycle (400 ns at lOMHz clock) except for program-

branches which take tow cycles (800ns). The PIC16C84 has four interrupt sources

and an eight level hardware stack. The peripherals include an 8-bit timerlcounter

with an 8- bit prescaler (effectively a 16 bit timer) and 13 bi- directional I10 pins.

The high current drive (25 mA max. sink, 20 mA max source) of the I10 pins help

reduce external drivers and therefore, system cost. The PIC16C84 product is

supported by an assembler, an in-circuit emulator and a production quality

programmer. These tools are supported on the IBM PC and compatible machines.

3.4.1.1 Peripheral Features

13 110 pins with individual direction control

High current sinklsource for direct LED drive 25 mA sink max. per pin

20 mA source max. per pin

8-bit real time clock/counter (RTCC) with 8-bit programmable prescaler

Special Microcontroller Features

- Power-on reset

- Power up timer

- Oscillator start-up timer

- Watchdog timer (WDT) with its own on-chip RC oscillator for reliable

operation

- Security EPROM fuse for code-protection

Page 15: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

- Power saving SLEEP mode

- User selectable oscillator options:

RC oscillator: RC

Crystallresonator: XT

High speed crystallresonator: HS

Power saving low frequency crystal: LP

- Serial, In-System Programming (ISP) of EPROM program memory

using only two pins

3.4.1.2 Pin Diagram of PIC16F84A

POIF, SOIC

RAZ - R83 -

WPaMCICKI - MCLR -

v s - flmm -

ma - R52 - WB3 -

Page 16: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

The PIC16F84A belongs to the mid-range family of the PICmicroB

microcontroller devices. A block diagram of the device is shown in Figure 3.4.

Figure 3.4: PIC 16F84A Block Diagram.

Page 17: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

3.4.2 MOTOR

Motors come in many sizes and types, but their basic function is the same.

Motors of all types serve to convert electrical energy into mechanical energy. They

can be found in VCR's, elevators, CD players, toys, robots, watches, automobiles,

subway trains, fans, space ships, air conditioners, refrigerators, and many other

places. The performance of the motor is very important in circuit design. This is

because the electrics motors directly affect its speed and pushing capability. Motor

performance information is needed to select the required speed. The current

requirements from the motor will dictate what type and size batteries will need and

they are also a factor in determining the minimum current requirements for motor

speed controllers.

3.4.2.1 DC Motor

DC motors seem quite simple. Apply a voltage to both terminals, and it will

spins. DC motors are non-polarized which means that it can reverse voltage so the

motor will rotate in two directions, forward and backward. Typical DC motors are

rated from about 6V-12V. The larger ones are often 24V or more but for the purpose

of this project, it is necessary to use 6V-12V range motor. Voltage is directly related

to motor torque. The more voltage supplied, the higher the torque will be produce.

Specifications of most DC motors show high revolutions per minute (rpm) and low

torque.

The DC motor is popular in a number of drive applications due to its simple

operation and control. By referring Figure 3.5, it has 2 main parts which is rotor and

stator. Stator is the part where the permanent magnet situated and used to generate the

magnetic field and it is static. Rotor is the rotary part in the motor and contains block of

core and wire loops. It also called the armature.

Page 18: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

Figure 3.5: DC Motor

The rotor is placed inside the magnetic field caused by two permanent magnets.

By referring to the situation that shown in Figure 3.6, both sides of the wire loop will

have a force on them. trying to make the wire loop rotate. The current is applied to the

loop through the commutator, which is shown as two pieces of metal formed into a ring

in the figure. Current is applied to the commutator by stationary graphite blocks, called

brushes, which rub against the commutator ring. The loop will continue to rotate

anticlockwise until it is vertical. At this point, the stationary brushes won't be applying

current around the loop any more because they will be contacting the gap between the

commutator segments, but the inertia of the loop keeps it going a little more, until the

DC supply reconnects to the commutator segments, and the current then goes around the

loop in the opposite direction. The force though is still in the same direction. and the

loop continues to rotate.

Figure 3.6: The Operation of DC Motor

Page 19: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

3.4.2.2 DC Motor Voltage

DC motors are non-polarized - meaning that one can reverse voltage without

any bad things happening. Typical DC motors are rated from about 6V-12V. The

larger ones are often 24V or more. But for the purposes of this project, do stay in the

6V-12V range. It is stated that voltage is directly related to motor torque. High

voltage produces higher torque. A DC motor is rated at the voltage it is most efficient

at running. If very few volts are applied, it just won't work. If too much is applied, it

will overheat and the coils will melt. So the general rule is to apply as close to the

rated voltage of the motor. But do not surpass 12V motors unless the torque is

required badly.

3.4.2.3 DC Motor Current

As with all circuitry, one must pay attention to current. Too little, and it just

won't work. Too much, the motor will meltdown. When buying a motor, there are

two current ratings one should pay attention to. The first is operating current. This

is the average amount of current the motor is expected to draw under a typical

torque. Multiply this number by the rated voltage and the average power draw

required to run the motor is obtained. The other current rating which one needs to

pay attention to is the stall current. This is when the motor is power up, and enough

torque is put to force it to stop rotating. This is the maximum amount of current the

motor will ever draw, and hence the maximum amount of power too. So, one must

design all control circuitry capable of handling this stall current. Also, if the motor

is constantly run, or run it higher than the rated voltage, it is wise to heat sink to

keep the motor's coils from melting.

Page 20: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

3.4.2.4 DC Motor Power Rating

Basically, all motors are rated at certain wattage. Wattage is energy.

Inefficiency of energy conversion directly relates to heat output. Too much heat, the

motor coils melt. So the manufacturers of motors know how much wattage will cause

motor failure, and post this on the motor specification sheets.

The equation is:

Power (watts) = Voltage * Current

Increase voltage and measure current until the power is about -90% below the given

power rating.

3.4.2.5 DC Motor Torque

Torque is defined as that force which tends to produce and maintain rotation.

The function of torque in a DC motor is to provide the mechanical output or drive the

piece of equipment that the DC motor is attached to. There are two torque value ratings

which must been pay attention to. The first is the operating torque. This is the torque the

motor was designed to give. Usually it is the listed torque value. The other rated value is

stall torque. This is the torque required to stop the motor from rotating. he torque which

is developed by the motor can be determined using Equation:

T = KQI,

where

T = torque

K = a constant depending on physical size of motor

Q = field flux, number of lines of force per pole

1, = armature current

When buying a DC motor, there are two torque value ratings which must be

Pay attention to. The first is operating torque. This is the torque the motor was

Page 21: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

designed to give. Usually it is the listed torque value. The other rated value is stall

torque. This is the torque required to stop the motor from rotating.

If one need a little more speed, going 20% above the rated motor voltage

value is fairly safe. But, that this is less efficient, and the motor should be heat-

sinked.

3.4.2.6 Velocity

Velocity is very complex when it comes to DC motors. The general rule is

motors run the most efficient when run at the highest possible speeds. Obviously

however this is not possible. There are times to run the motor slowly. Just like car, it

won't to keep the car constantly at high speed. The voltage and applied torque

resistance obviously also affects speed.

Instead using a Multisim as a simulator, Proteus-ISIS is used. Proteus-ISIS is

suitable to simulate a circuit which consist PIC or motor. It can simulate the blinking

LED and the rotating motor as shown in Figure 3.7. The analyses are done from this

software which is very useful to verify the circuit.

Page 22: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

Figure 3.7: Layout of Proteus-ISIS.

Proteus-ARES is used to design the PCB board. Using this software, a user

has to know the scale of the product because in ARES, there's no scale indicator. So

a user has to well familiar with proto board and component size. The layout of

Proteus-ARES is shown in Figure 3.8.

Page 23: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

Figure 3.8: Layout of Proteus-ARES.

3.4.5 MPLAB IDE

MPLAB IDE is software to construct and compile the programming language

as shown in Figure 3.9. This software is crucial to verify the programming language.

If there's error while compiling, the program can't be burned into PIC.

Page 24: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

J C'IW I I ' l P ' R c p H ' l e '

a-7 H ' l l S mv, U ' l ? '

e r d H'13' Em1 H ' U L ' c8y H ' Z . 9 ' rqu H ' Z 3 ' c , * 2 1 1 1 Z 3 '

T r - > H I Z I ~ ' -VIW n8rn7nnnnn4 tris ink15 I m V l W t : ' L U L U U l - 1 ' DPTIOF 'lU"1" B'CoLooUOU'

:::::::,pi

clrf ronz5' clrf ?2IDC hcf r K r - m , TTE

h s f KhTJIN. 511

Figure 3.9: Layout of MPLAB IDE.

WinPic800 is used to burn the complete program language into PIC.

WinPic800 are capable to burn a complete programming language such as Assembly,

C++, Visual Basic, C and etc. All the programming language will be converted to

Hex file before burning into PIC. WinPic800 layout is shown in Figure 3.10.

Page 25: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

Figure 3.10: Layout of WinPic800.

3.4.7 ASSEMBLY LANGUAGE

An assembly language is a low-level language used in the writing of

computer programs. Assembly language uses mnemonics, abbreviations or words

that make it easier to remember a complex instruction and make programming in

assembly an easier task. The goal of using mnemonics in the writing of assembly

language programs is to replace the more error prone, and time consuming, effort of

directly programming in a target computer's numeric machine code that had been

used with the very first computers. An assembly language program is translated into

the target computer's machine code by a utility program called an assembler. The

assembler performs a (more or less) one-to-one (isomorphic) translation from

mnemonic statements into machine instructions and data. The purpose is to free the

Programmer from tedious tasks such as remembering codes, calculating addresses

and offsets, as well as various other constants, while still retaining full control over

the machine.

Page 26: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

On the other hand, a translator that takes a program written in a high-level

language and translates it to an equivalent executable machine code (andlor assembly

code) is called a compiler.

A "translator" that directly execute (i.e. perform) the sequence of declarations and

actions in a written (high or low-level) program is called an interpreter.

Assembly language programs are tightly coupled with (and specific to) a

target computer architecture - as opposed to higher-level programming languages,

u-hich are generally platform-independent. More sophisticated assemblers extend the

basic translation of program instructions with mechanisms to facilitate program

development, control the assembly process, and aid debugging.

Assembly language was once widely used for all aspects of programming, but

today it tends to be used more narrowly, primarily when direct hardware

manipulation or unusual performance issues are involved. Typical uses are device

drivers, low-level embedded systems, and real-time systems. These applications

benefit from the increased speed of processing assembly program instructions.

The programming flow chart is shown in Figure 3.1 1. When the program

started, it will go to "Displaying Message 1". After that it will go to "Count 50

cycle". If the cycle doesn't count finish till 50, it will loop back to "Displaying

Message 1". If it does, it will proceed to the next process. When this process finished

the final block, it will start again at "Displaying Message 1 ". This process continues

until the power is off.

Page 27: Propeller LED Display - Ajmal b. Muhamad Sazali - TK2681.A55 2007

Recommended