This document describes a propeller LED display. It uses the persistence of vision phenomenon to display images floating in air using LEDs mounted on a rotating circuit board powered by a DC motor. Seven LEDs are synchronized by a microcontroller to simulate a larger display. It can be used for public information displays like at railway stations. The construction involves a rotating circuit board with LEDs, a microcontroller, motor controller, and DC motor powered by a regulated supply. It works by scanning LED patterns at high speed to appear continuous to the human eye.
Download as DOCX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
405 views
Propeller Led Display
This document describes a propeller LED display. It uses the persistence of vision phenomenon to display images floating in air using LEDs mounted on a rotating circuit board powered by a DC motor. Seven LEDs are synchronized by a microcontroller to simulate a larger display. It can be used for public information displays like at railway stations. The construction involves a rotating circuit board with LEDs, a microcontroller, motor controller, and DC motor powered by a regulated supply. It works by scanning LED patterns at high speed to appear continuous to the human eye.
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 30
Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 1
CHAPTER 1 1 PROPELLER LED DISPLAY OVERVIEW Propeller is a term associated with a circular rotating object. As this project needs to rotate the whole circuit assembly, there must be some prime mover attached to it. So, the term Propeller. This project using bright light emitting diodes for displaying the characters and symbols on its assembly. Thats why this project is named as PROPELLER LED DISPLAY. This is the phenomenon which is related to vision capability of human eye by which an afterimage is thought to persist for approximately 1/25th of a second. So, if someone is observing the images at a rate of 25 images per second, then they appear to be continuous. The best example of this property is the red circle we observe when we rotate the firecracker or incense stick in circle. This project was started with a simple principle which is frequently encountered in our everyday life, which is Persistence of Vision. This phenomenon makes one feel fast moving/changing objects to appear continuous. A television is a common example; in which image is re-scanned every 25 times, thus making it continuous. Further, a glowing objects if rotated in a circle at fast speed, it shows a continuous circle. By modifying this basic idea, 7 LEDs can be rotated in a circle, showing 7 concentric circles. But if these LEDs are switched at precise intervals, a steady display pattern can be shown. Existing systems do employ POV principle, but for displaying each pixel, individual LED is used. This results in a huge number of LEDs even for small sized displays. By using a propeller type display, LED count can be kept to a bare minimum. Even 7 LEDs can perform a task of over 525 LEDs. Applications can find their way into cost effective solutions for large public displays, information systems. It can directly replace Railway station information displays, bus stands and many more places. 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 Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 2
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.
Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 3
CHAPTER 2
2.1 Working principle If you move a bright light fast by the eyes, it will leave a line behind because the human brain and eyes are slow to interpret fast changes in light intensity, leaving an after glow. If a row of LEDs is moved sideways while the LEDs intensity is changed, an image will shortly visualize in the air where the LEDs are moved. If this is done several times, for example if the LEDs are mounted on the end of a bar mounted on a motor as in the figure on the right, the same area in the air could be scanned several times showing the same image each time. Done at high speed it would generate a quite good virtual display hanging in air thanks to the persistence of vision 2 WORKING PRINCIPLE Microcontrolled LEDs DC Motor Power Supply Fig 1: Schematic Diagram Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 4
effect of the brain. People has started to refer to this kind of display as POV-displays (Persistence of vision displays) as if it was the only type of displays depending on the persistence of vision effect but that is kind of ignorant as many display types use the same effect, like for example CRTs and multiplexed LED displays, thus "mechanically scanned display" is a more accurate name. 2.2 How this clock works: The basic principle used is the persistence of vision. As the LEDs rotate at a high speed they can be controlled with the help of a micro-controller so as to glow them in such a combination that a floating display is formed .A motor spins the "propeller", and a small microprocessor keeps track of time and changes the pattern on seven LEDs with exact timing to simulate an array of LEDs. It is an illusion, but it works nicely.
Fig 2: Working of Propeller LED Display
Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 5
2.3 Display Formation As we have already learned that POV is the basic phenomena involved, now to use this we need to get into some details. We first divide our numbers into matrix of 5*5.
This how a no. would appear. On the basis of the ABOVE diagram , coding is done and then the display is formed.
Fig 3: Display Formation Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 6
CHAPTER 3 3 CONSTRUCTION AND COMPONENTS USED Basically, Propeller LED display has 2 units: 1. Rotating circuit board 2. DC motor with power supply unit Rotating board and DC motor with power supply unit:
Fig 4: Rotating Circuit Board Fig 5: DC Motor with Power Supply Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 7
Components used are 1 Microcontroller 8051,8 LEDs, Interrupter module, Capacitors, resistors, IC 7805,Crystal Oscillator, High speed DC Motor, rotor. Interrupter Module (OPTO COUPLER) :-Interrupter module is our hardware sensor module, consisting of the IR interrupt sensor MOC7811, from Motorola Inc. This sensor was selected from a variety of other alternatives, because of its small size, precise interrupt sensing, and sturdy casing. One great advantage of using this module is interfacing it with the microcontroller is just a matter of two resistors and a general purpose transistor and is provides isolation between 2 circuits. Microcontroller AT89C2051:-This project is based on the microcontroller AT89C2051, which is a derivative of 8051 family, from Atmel Inc. This is a 20 pin IC packaged in DIP package. This mall sized IC is used, mainly because of its reduced weight. This improves the performance of the display. LED Module:- LED module consisting of 8 bright LED is fixed in another side of the arm of our project. These LEDs are connected with each of the port pin of microcontroller, with a series current limiting resistor of 470 ohm. DC Motor: Repeated scanning of the display is must for continuous vision. This task is achieved using circular rotation of the whole circuit assembly. So, we used a DC motor with 1200 rpm needed as the prime mover. DC Power Supply: For microcontroller, as well as the DC motor, a regulated DC power supply is required. We have to provide +6V to the microcontroller, while +9V to the motor.
Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 8
From the Fig 6, 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. 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.
Fig 6: Block Diagram of Propeller LED Display Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 9
3.1 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.1.1 DC Motor DC motors seem quite simple. Apply a voltage to both terminals, and it will spin. 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 Fig 7, 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.
Fig 7: DC Motor Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 10
The rotor is placed inside the magnetic field caused by two permanent magnets. By referring to the situation that shown in Fig 8, 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 anymore 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.
Fig 8: Operation of DC Motor Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 11
3.1.1.1 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.1.1.2 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. 3.1.1.3 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 Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 12
Increase voltage and measure current until the power is about -90% below the given power rating. 3.1.1.4 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 = KI where T = torque K = a constant depending on physical size of motor = field flux, number of lines of force per pole I, = 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 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.1.1.5 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. Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 13
3.2 LED A light-emitting diode (LED) is a semiconductor light source. LEDs are used as indicator lamps in many devices, and are increasingly used for lighting. Introduced as a practical electronic component in 1962, early LEDs emitted low-intensity red light, but modern versions are available across the visible, ultraviolet and infrared wavelengths, with very high brightness. The LED is based on the semiconductor diode. When a diode is forward biased (switched on),electrons are able to recombine with holes within the device, releasing energy in the form of photons. This effect is called electro luminescence and the color of the light (corresponding to the energy of the photon) is determined by the energy gap of the semiconductor. An LED is usually small in area (less than 1 mm 2), and integrated optical components are used to shape its diation pattern and assist in reflection. LEDs present many advantages over incandescent light sources including lower energy consumption, longer lifetime, improved robustness, smaller size, faster switching, and greater durability and reliability. However, they are relatively expensive and require more precise current and heat management than traditional light sources. Current LED products for general lighting are more expensive to buy than fluorescent lamp sources of comparable output. They also enjoy use in applications as diverse as replacements for traditional light sources in aviation lighting, automotive lighting (particularly indicators) and in traffic signals. The compact size of LEDs has allowed new text and video displays and sensors to be developed, while their high switching rates are useful in advanced communications technology. IR LEDs are also used in many commercial products such as a TV remote.
Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 14
CHAPTER 4 4 WORKING OPERATION AND RELATED CODES 4.1 SOFTWARE DESCRIPTION Kiel compiler The KIEL 8051 Development Kits are a complete solution for creating software for the 8051 family of microcontroller. The development Kits comprise many different tools that allow projects ranging from simple to highly complex to be developed with relative ease. You will find that with the KIEL development kits you can rely on tools that have been tested by real users over a long period of time.KIEL provides a familiarity to the tools that will provide a basis for using more complex features. It is assumed that the user is familiar with Windows has at least some familiarity with the 2051 microcontroller family and the C programming language. Algorithm i. Main routine 1. Load proper value in IE register, so that the interrupts INT0 and T0 are enabled. (IE =83H) 2. Offer higher priority to the INT0 (External) interrupt.(IP = 01H) 3. Configure timer 1 as 16-bit timer, and timer0 as 8-bit auto reload mode timer. ( TMOD= 12H) 4. INT0 should be configured as edge interrupt. (IT0=1) 5. Configure port 3 as input port. (P3 = 0FFH) 6. Move input string to the video RAM area.(callramc function) 7. Start the timers. 8. Initiate an infinite loop.
Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 15
ii. Interrupt Routines a. External Interrupt 1. Stop the timers. 2. Move th1 and tl1 into convenient registers. 3. Divide this 16 bit value by our total number Of segments. 4. Subtract the answer from 256, and load the Result in th0. 5. Now, reset the video RAM pointer and character segment pointers to their initial respective 6. start the timer. 7. Return from interrupt b. Timer 0 Interrupt 1. Call the display routine. 2. Clear timer overflows flag. 3. Return from interrupt 4.2 Sources codes & Schematics -Schematic in PDF format //************************************** // Clock 16 MHz // Version 1.0 Janvier 2002 // Sylvain Bissonnette //************************************** //************************************** // I N C L U D E //************************************** #include <io2313v.h> Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 16
#include <macros.h> //************************************** // D E F I N E //************************************** #define TRUE 0x01 #define FALSE 0x00 #define ANALOG 0x01 #define DIGITAL 0x02 //************************************** // I N T E R R U P T H A N D L E R //************************************** #pragma interrupt_handler Crossing_interrupt:2 #pragma interrupt_handler IR_interrupt:4 #pragma interrupt_handler Degre_interrupt:5 #pragma interrupt_handler Ticker_interrupt:7 //************************************** // P R O T O T Y P E //************************************** void Crossing_interrupt(void); void Degre_interrupt(void); void Time(unsigned char); void IR_interrupt(void); void Ticker_interrupt(void); void Display(void); void CopyData(int Value); void CopyDot(void); //************************************** Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 17
// G L O B A L V A R I A B L E //************************************** int WeelPosition; unsigned char Pos; unsigned int Adder; unsigned char LatchedIrData; unsigned char Sec; unsigned char Min; unsigned char Hrs; int SecComp; int MinComp; int HrsComp; unsigned char ClockStyle; unsigned char TimeString[50]; unsigned char *TimeStringPtr; unsigned char i; //************************************** // C O N S T A N T //************************************** const unsigned char table[12][6] = {{ 0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00 }, // 0 { 0x00, 0x21, 0x7f, 0x01, 0x00, 0x00 }, // 1 { 0x21, 0x43, 0x45, 0x49, 0x31, 0x00 }, // 2 { 0x42, 0x41, 0x51, 0x69, 0x46, 0x00 }, // 3 Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 18
{ 0x0c, 0x14, 0x24, 0x5f, 0x04, 0x00 }, // 4 { 0x72, 0x51, 0x51, 0x51, 0x4e, 0x00 }, // 5 { 0x1e, 0x29, 0x49, 0x49, 0x06, 0x00 }, // 6 { 0x40, 0x47, 0x48, 0x50, 0x60, 0x00 }, // 7 { 0x36, 0x49, 0x49, 0x49, 0x36, 0x00 }, // 8 { 0x30, 0x49, 0x49, 0x4a, 0x3c, 0x00 }, // 9 { 0x00, 0x36, 0x36, 0x00, 0x00, 0x00 }, // : { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }};// space //************************************** // M A I N //************************************** void main() { WDTCR = 0x0e; // Enable WatchDog at 0.97 sec PORTD = 0x0d; // Pull up on PD2&PD3 & Led White ON DDRD = 0x03; // PD0-O PD1-O PD2-I PD3-I PD4-I PD5-I PD6-I PD7-I //INT 0 MCUCR = 0x02; // Int0 generate int on falling eadge Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 19
GIMSK = 0x40; // Int0 enable //Timer0 TCCR0 = 0x05; // Timer0 / 1024 //Timer1 TCCR1B = 0x42; // Timer1 / 8 & Input Capture on Rising eadge TIMSK = 0x4a; // int enable on Timer1 Compare Match // int enable on Timer 1 Input Capture // int enable on Timer0 Overflow PORTB = 0x00; DDRB = 0xff; // PB0-7 as output Hrs = 0; Min = 0; Sec = 0; ClockStyle = ANALOG; SEI(); while(1) { asm("WDR"); for (i=0;i<200;i++); f if ((LatchedIrData == 0xbb) || (LatchedIrData == 0x92)) Time(TRUE); f if ((LatchedIrData == 0xb3) || (LatchedIrData == 0xb0)) ClockStyle = DIGITAL; f if ((LatchedIrData == 0xb4) || (LatchedIrData == 0xb1)) ClockStyle = ANALOG; LatchedIrData = 0; Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 20
} } / ************************************************** ******** Name: void Time(void) Description: Input: none Output: none Misc: ************************************************** ********/ void Time(unsigned char Fast) { f if (Fast == FALSE) Sec++; else Sec += 60; f if (Sec > 59) { Sec = 0; Min++; f if (Min > 59) { Min = 0; Hrs++; f if (Hrs > 11) { Hrs = 0; Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 21
Dept. of Electronics and Communication,KITE,Jaipur Page 25
Output: none Misc: ************************************************** ********/ void Display(void) { PORTB = 0x00; f if (ClockStyle == ANALOG) { f if (WeelPosition == HrsComp) PORTB = 0x80; f if (WeelPosition == MinComp) PORTB = 0xff; f if (WeelPosition == SecComp) PORTB |= 0x03; f if ((WeelPosition == 0) || (WeelPosition == 30) || (WeelPosition == 60) || (WeelPosition == 90) || (WeelPosition == 120) || (WeelPosition == 150) || (WeelPosition == 180) || (WeelPosition == 210) || (WeelPosition == 240) || (WeelPosition == 270) || (WeelPosition == 300) || (WeelPosition == 330)) PORTB |= 0x01; Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 26
} else { Pos = ((WeelPosition-100) / 3); f if (Pos < 49) { PORTB = TimeString[48-Pos]; } } WeelPosition++; } / ************************************************** ******** Name: void IR_interrupt(void) Description: This routine is called whenever a rising edge (beginning of valid IR signal) is received. - The data codes are sent using pulse coding. - Each packet has 12 bits and a header. - The basic time period T = 550us. - The header length = 4T (2.2ms) - 0 = pulse with length T followed by space of length T. - 1 = pulse with length 2T followed by space of length T. - The last 5 bits represent the Addess. Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 27
- The first 7 bits represent the command. - A packet is transmitted every 25ms while a button is down. Input: none Output: Global variable LatchedIrData Misc: Sony VCR protocol ************************************************** ********/ void IR_interrupt(void) { static unsigned int LastCapture; unsigned int PulseWidth; static unsigned int IrPulseCount; static unsigned int IrData; PulseWidth = ICR1 - LastCapture; LastCapture = ICR1; f if (PulseWidth > 4000) { IrPulseCount = 0; IrData = 0; } else { IrData = IrData >> 1; f if (PulseWidth > 2800) IrData = IrData | 0x8000; IrPulseCount++; f if (IrPulseCount == 12) LatchedIrData = ((IrData >> 4) & Propeller LED Display
Dept. of Electronics and Communication,KITE,Jaipur Page 28