Login | Register | Advertise | About Us | Search | Contact Us |
  Aerospace & Defence
    H O M E   >>  C I R C U I T   L A B

Propeller Message Display with Temperature Indicator

Related Circuits

  • GSM-based Dot-matrix Display
  • Intelligent Water Pump Controller with Water-level Display
  • Water-Level Indicator
  • Humidity Indicator and Controller
  • Temperature-Sensing Diodes Selector

  • First published on: 1-7-2013

    Propeller Message Display with Temperature Indicator

    Sarthak r. Shah and Abhimanyu k. Varde

    Here we describe a microcontroller-based propeller display that displays any message sent to it via hyper-terminal of a personal computer. Moreover, a temperature sensing IC (TMP125) is mounted onto the propeller display to display temperature in real time. It gives a 360-degree view and displays several characters in a revolving circular path using just eight LEDs. It is a cost-effective, attractive way of display that reduces the cost and complexity while making the whole system dynamic and energy-efficient. The main highlight o this project is a vertical facing display with true 360-degree viewing angle.

    Fig. 1: Prototype
    The basic idea of this project comes from the concept of persistence of vision. This phenomenon is related to vision capability of the human eye, where an afterimage is thought to persist for approximately 1/25th of a second. So if someone is observing images at a rate of 25 per second, they appear to form a continuous picture.

    In this display, the LED strip moves so fast that one is able to see a matrix of LEDs. The time of a single rotation is divided into several shorter time periods during which each individual LED is kept on/off to display different characters. Temperature sensed by the temperature IC is sent to the controller via SPI bus.

    Fig. 2: Block diagram of the propeller message display with temperature indicator
    Fig. 2 shows block diagram of the propeller display with temperature indicator. The LED strip is mounted vertically such that when the motor rotates, the strip also rotates in a circular fashion—creating a true 360-degree display. The message to be displayed is sent via RS232 interface using hyper-terminal. The message is displayed for 30 seconds and then the display switches to current temperature that is fetched from the temperature sensor. Interrupts are generated by the IR sensor-beam interrupter assembly.

    Circuit and working
    Fig. 3 shows the circuit of the propeller display. The circuit is built around microcontroller P89V51RD2 (IC1), temperature sensor TMP125 (IC2), MAX232 (IC3) and a few discrete components. Port pins P1.0 through P1.7 are connected to CON2, which further needs to be connected to CON3 of the LED strip comprising LED1 through LED8. These LEDs form a circular display when rotated very fast.

    Fig. 3: Circuit of the propeller message display with temperature indicator
    Microcontroller. The heart of the system is microcontroller P89V51RD2. The P89V51RD2 is an 8-bit 80C51 microcontroller with 64kB Flash and 1024 bytes of data RAM. It features three 16-bit timers/counters, programmable watchdog timer, eight interrupt sources with four priority levels, serial peripheral interface (SPI) and enhanced UART, programmable counter array with PWM and capture/compare functions, and four 8-bit input/output (I/O) ports. It has an on-chip oscillator and clock circuitry, which is operated up to 40MHz crystal. It supports 12 clocks per machine cycle (default) and 6 clocks per machine cycle mode, which can be selected via software. The Flash program memory supports both parallel programming as well as serial programming.

    Power-on reset is provided by the combination of resistor R9 and capacitor C8. Switch S1 is used for manual reset. An 11.0592MHz crystal (XTAL1) along with two 33pF capacitors (C6 and C7) provides basic clock frequency to the microcontroller.

    Temperature sensor with digital output. TMP125 is an SPI-compatible temperature sensor available in tiny SOT23-6 package. Requiring no external components, it is capable of measuring temperatures within accuracy of 2°C over a temperature range of −25°C to +85°C and within 2.5°C accuracy over −40°C to +125°C. Low supply current and a supply range from 2.7 V to 5.5 V make TMP125 an excellent candidate for low-power applications. TMP125 is ideal for extended thermal measurement in a variety of communication, computer, consumer, environmental, industrial and instrumentation applications. Port pins P2.0 through P2.2 of IC1 are used to interface the temperature sensor as shown in Fig. 3.

    Fig. 4: Interrupt sensor
    Download source code: http://www.electronicsforu.com/electronicsforu/circuitarchives/my_documents/my_files/Propeller_Display.zip
    Interrupt sensor.
    A sensor is built (see Fig. 4) using IR transmitter (IRTX1) and receiver (IRRX1) to generate interrupts. In each revolution, as the beam is interrupted, the sensor generates a positive pulse, which is inverted with the help of a BC547 npn transistor (T1). The inverted pulse is fed to controller port pin P3.2. The microcontroller executes an interrupt routine when a pulse arrives.

    The interrupt routine measures the total time taken for one revolution, divides it by 360 and stores the result in another timer, configured in auto-reload mode. Now the timer overflows after tiny intervals of time. Each time it overflows, the next stored value is called from the lookup table and displayed (refer Fig. 5).

    Alternatively, sensor MOC7811 can be used in place of the arrangement that is made using separate IR transmitter and receiver.

    Fig. 5: Interrupt routine
    Working of the project is simple. Connect the computer to the system using serial port (COM PORT). Open the hyper-terminal and enter the text you want to display (see construction and testing for details). Switch on the motor. You will see the text appear in a short time. The system switches between text and temperature, displaying both for 30 seconds each on the revolving display.

    Mechanical arrangement is the most critical part of this project. An AC motor capable of around 1400 revolutions per minute (rpm) is used. The PCB on which the components are soldered is cut into a specific shape in order to improve aerodynamics and reduce any vertical movement. Eight bright LEDs are used, which are mounted on another board that is attached to the main PCB at right angle.

    The critical part here is to get the power to the rotating board. There are various ways of doing it. One simple way is to use rechargeable batteries, as shown in the circuit diagram, and mount them over the board such that they don’t come out when the motor rotates. The rugged way of doing this is to use an AC motor with a double shaft. A step-down transformer and a bridge rectifieralong with a 7805 IC can be used to get 5 V from the mains supply voltage. Carbon brush, spring and copper wound bush are used to bring the 5V supply on the main revolving PCB as shown in Fig. 6. The motor should be fitted onto a metal frame in order to reduce vibration of the system and get a smooth operation when the motor revolves.

    Fig. 6: Carbon brush arrangement
    The number of characters that can be displayed depends on radius, i.e., the distance of the LED strip from the centre. It does not depend on the number of LEDs, which is the main advantage of this system. The main thing to note here is that the speed of rotation directly depends on the radius. A bigger radius would mean a higher angular velocity, which may result in more vibrations. Hence care should be taken not to increase the radius length too much.

    The software is written in ‘C’ language and compiled using Keil compiler. Mentioned below are some important functions and their role:

    void serial_int (void) interrupt 4 using 0. Interrupt service routine for serial interrupt. It stores indices of the characters entered, by comparing with the ASCII codes array.

    void introutine(void) interrupt 0 using 2. Interrupt service routine for external interrupt 0. It is basically a position decoder, which starts timer interrupt while switching between displaying the message and the temperature.

    void timer0(void) interrupt 1 using 3. Interrupt service routine for timer 0 (auto reload mode). It basically displays characters or temperature depending on flag bits, along with blanks in front of the data for scrolling.

    Construction and working
    An actual-size, single-side PCB for the controller board is shown in Fig. 7 and its component layout in Fig. 8. PCB for the LED strip is shown in Fig. 9 and its component layout in Fig. 10. Suitable connectors are provided on both the PCBs to connect them to each other. To avoid loose connection, it is better that you directly solder the wires at CON2 and CON2 to connect both the PCBs.

    Fig. 7: An actual-size, single-side PCB for the controller board

    Fig. 8: Component layout for the PCB in Fig. 7
    A proper weight balance of the main PCB is essential before mounting it on the shaft. After approximately finding the centre such that weights on either side of it are the same, a hole can be drilled in the PCB for fittingit on the shaft. Aerodynamic shape of the PCB also helps to reduce vibrations during the rotation.

    There are two critical factors in the hardware assembly of this project: One is the voltage supply that has to be transferred at the top of the board. The other is smooth rotation of the PCB that is mounted on the top of a motor shaft. Any miscalculation of the weight would result in an unbalanced system and the required rpm would not be achieved. Moreover, LEDs have to switch in less than 1/25th of a second, which means that in one whole minute it would be close to 1500 times. Hence this is the minimum effective rpm of the motor that has to be obtained after fiting the PCB and the components on the shaft.

    Fig. 9: An actual-size, single-side PCB for the LED strip

    Fig. 10: Component layout for the PCB in Fig. 9
    To test the circuit, check test points for voltages as per the test point table. For functional testing, follow below-mentioned steps:
    1. Connect the COM port of the computer to the display system (refer Fig. 3). You can also use a USB-to-serial converter
    2. Place the interrupt sensor such that the beam is interrupted by the beam interrupter
    3. Open any hyper-terminal and type the first letter (all upper case
    4. Wait for change in the pattern of glowing LEDs
    5. Enter the second letter and wait again for the changing pattern
    6. Enter the remaining text simi-larly
    7. When the text is complete, enter space and wait for the changing pattern
    8. Press ‘Enter.’ All LEDs should glow
    9. Wait until the LEDs turn off. Now start the motor. The text should appear in some time on the circular display

    Sarthak R. Shah is working at Cliff Electronics, Vadodara, and Abhimanyu K. Varde is working at QLogic, Pune 


    Related Circuits

    Post Comment | 25 Comments

    arun   719 days ago

    is the source coding of the program is available ??? ...... can u send me the source code of this program
    Reply   1 Reply
    ajith   637 days ago

    send the program code
    shaju   718 days ago

    Where is MC program for this ?
    Jobin Philip Varghese   715 days ago

    wer s d program ???
    anand   710 days ago

    where is the program of mc?
    anil kumar   709 days ago

    send the program code .
    pramod baban maind   706 days ago

    i want code for same..........
    anudeep   689 days ago

    i need to know whether a p89v51rd2 can be programmed by c and c
    Balakrishnan   670 days ago

    We need source program for propeller message display with temperature indicator. send us soon please We will expect your reply
    chitradevi   670 days ago

    I need micro controller program please send me
    Reply   1 Reply
    dinesh   663 days ago

    #includereg51.h #define port P3 #define adc_input P1 #define dataport P0 #define sec 100 sbit rs port0 sbit rw port1 sbit e port2 sbit wr port3 sbit rd port4 sbit intr port5 int test_intermediate30 test_final0test_intermediate110test_intermediate23000 void delayunsigned int msec int i j fori0imseci forj0 j1275 j void lcd_cmdunsigned char item Function to send command to LCD dataport item rs 0 rw0 e1 delay1 e0 return void lcd_dataunsigned char item Function to send data to LCD dataport item rs 1 rw0 e1 delay1 e0 delay100 return void lcd_data_stringunsigned char str Function to send string to LCD int i0 whilestri0 lcd_datastri i delay10 return void shape Function to create the shape of degree lcd_cmd64 lcd_data2 lcd_data5 lcd_data2 lcd_data0 lcd_data0 lcd_data0 lcd_data0 lcd_data0 void convert Function to convert the values of ADC into numeric value to be sent to LCD int s test_finaltest_intermediate3 lcd_cmd0xc1 delay2 lcd_data_stringTEMP stest_final100 test_finaltest_final100 lcd_cmd0xc8 ifs0 lcd_datas48 else lcd_cmd0x06 stest_final10 test_finaltest_final10 lcd_datas48 lcd_datatest_final48 lcd_data0 lcd_datac lcd_data delay2 void main int ij adc_input0xff lcd_cmd0x38 lcd_cmd0x0c Display On Cursor Blinking delay2 lcd_cmd0x01 Clear Screen delay2 while1 forj0j3j fori0i10i delay1 rd1 wr0 delay1 wr1 whileintr1 rd0 lcd_cmd0x88 test_intermediate1iadc_input10 delay1 intr1 fori0i10i test_intermediate2jtest_intermediate1itest_intermediate2j test_intermediate20test_intermediate203 test_intermediate21test_intermediate213 test_intermediate22test_intermediate223 test_intermediate3test_intermediate20test_intermediate21test_intermediate22 shape convert 8870282711
    Rohit   669 days ago

    Where is the code of microcontroller?
    desmond   664 days ago

    where is the source program for this project my friend is not feeling well today please everybody pray for him also he is suffering from zener tumor also three batteries are required to recharge him please send some more electrons and do not use transformers for 10 minutes a day to feel us proud jay efy
    chaitu   654 days ago

    send d code plzzzzzzzzzzzzz
    Reply   2 Replies
    Efy Admin   633 days ago

    Please download the code from the link given here: http://www.efymag.com/admin/issuepdf/Propeller%20Display.zip
    Efy Admin   633 days ago

    Please download the code from the link given here: http://www.efymag.com/admin/issuepdf/Propeller%20Display.zip
    Reply   1 Reply
    Ankit Dhiman   600 days ago

    Pdf files for PCB layout is not given here. Can u please provide the link for it?
    PRITESH   566 days ago

    where will i get the TMP125 IC ?? i jus need 1 IC.. Iv seen dey all are in bulk.. please tell me..
    sgohelgmail.com   546 days ago

    where from i buy tmp 125 ?i am from ahmedabad ..please send the nearest location around it for buy....plz
    sagar   546 days ago

    where from i buy tmp 125 ?i am from ahmedabad ..please send the nearest location around it for buy....plz
    aman   499 days ago

    in which software this code will burn
    rohit nema   488 days ago

    sir can you give me code of this project.
    Reply   1 Reply
    Efy Admin   479 days ago

    You can download the code from EFY July, 2013 issue from the link: source.efymag.com
    Ravish   365 days ago

    alternate for TMP125
    parv   323 days ago

    how to give supply to the moving propeller.

    Electronics for You
    LINUX for You
    Facts for You
    Electronics Bazaar
    Electronics Annual Guide
    EFY Awards
    EduTech Expo
    OSIWEEK Expo
    News Verticals
    Linux & Open Source
    Consumer Electronics
    Science & Technology
    Educational Institute
    EFY Techcenter
    © Copyright 2012 EFY Enterprises Pvt. Ltd. All rights reserved.
    Reproduction in whole or in part in any form or medium without written permission is prohibited. Usage of the content from the web site is subjectT etor ms and Conditions