Total Pageviews

VAMSI DANDA

Follow by Email

Popular Posts

Electronics hobbyists enjoy playing with the projects.some people start a garage at home. For making any new invention you don't need any big laboratory. you can make your home a LAB.to work you just need a "multimeter". I have been working on some projects.At the beginning stage i made so many disasters in my room.I blasted so many components(one day i burnt my bed).what ever we do we enjoy that.So i just wanted to share some of my work with you.

Place Order

Tuesday, 13 March 2012

PROPELLER(ROTATING) LED DISPLAY

People often use ARDUINO platforms and other microcontrollers (pic, avr ) for making a propeller led display. If you are from a rural area like me it will be a little difficult to have such good hardware.I am trying to make one using AT89S52 microcontroller (which is very cheep).

i'm using a 11.0592MHz crystal and a 7805 for power supply leds are connected to the PORT0 of the MCU. 8 LED's are used for displaying letters. I used 7 red and 1 blue led to make it look good. you can connect LEDs to the microcontroller in two ways

ACTIVE HIGH (logic '1' on MCU pin will make the LED glow)

ACTIVE LOW (logic '0' on MCU pin will make the LED glow)

It is better to connect the leds in active low configuration(cathode to MCU pin and anode to Vcc through 220ohm resister for current limiting.

The whole arrangement is placed in a wheel using foam plaster so the it sticks on both sides

the wheel is attached to 6mm shaft and 1000RPM metal gare motor.

Keep the arrangement as strong as possible. So that it won't fall out of the high speed rotating platform.Try to make it stable to suppress the vibrations at high speed. I attached the 9V battery using a tape to the circuit board of MCU .It means I am using "ON BOARD" power supply.

I arranged the LEDs on a separate PCB and connected them to the pinheads and an eight pin female connector is used to connect the 8 LEDs to connect to PORT0 of AT89S52.

I used the KIEL software to program the microcontroller. i prefer to work with C rather than assembly. I am using a USB based programmer to burn the AT89S52 MCU.

try to make your code flexible so that you can easily modify to display any word

at first every thing was a bit messy

watch the video

looks nice is isn't it.

I'm trying to make a single stand still display. calculation of proper delay is very important in making this project.because speed of any two motors is not equal.calculate delay as per your motor.motor speed should not be less than 1000.

for displaying each letter make a standard notation.I'm following 5*7 notation

if your motor is rotating in clock wise direction then the corresponding code will be as follows.

but the question is how much delay we need to use after each and every colum

follow theses calculations..

DELAY CALCULATIONS
motor speed===1000 RPM
time for one rotation===60 milli seconds
radious =30cm
peremeter=2*3.414*30=204.84~205
width of led column=0.5cm ( this indicated the duration of led glow in terms of length of display)
total num of columns(leds)=205/0.5=410
410 leds=60 milli secondsone led(column)time=146 micro seconds//
columns for each letter=6
time for a letter=6*146=876 micro seconds
length for letter=6*0.5=3
total leters=205/3=68THE CALCULATIONS VARIES ACCORDING TO THE GLOW TIME OF LED AND RADIUS OF THE ROTATING ARM
motor speed===1000 RPM
time for one rotation===60 milli seconds
radius =30cm
peremeter=2*3.414*30=204.84~205
width of led column=1cm( this indicated the duration of led glow in terms of length of display)
total num of columns(leds)=205
205 leds=60 milli secondsone led(column)time=292 micro seconds
columns for each letter=6
time for a letter=6*292=1752 micro seconds
length for letter=6
total leters=205/6=34THESE ARE ROUGH CALCULATIONS BECAUSE THE MOTOR SPEED IS NOT ALWAYS CONSTANT BUT THEY HELP IN APROXIMATING THE DELAY

if you are a bit good at it

TRY WITH "RGB" LEDS

ALL THE BEST

EXAMPLE PROGRAM

circuit diagram using 8051

//THIS PROGRAM IS FOR 8051

// in this code i did not used lookup tables for reducing the complexity

// i just gave code logic for one letter'A' and space ' ' #include<reg51.h>

#define led P0 //port0 will be connected to leds unsigned int del=50//variable to control delayvoid delay(void){ unsigned int i,j;for(i=0;i<del;i++)for(j=0;j<1275;j++);}void display(unsigned char car); // declaration of a functionvoid main(){ while(1){ display('A'); // this displays a continious rotating"A A A A" display(' '); //try to change the del value as per your motor until you get a perfect//display once you got it then write your code for remaining letters //once you did this it will be very easy you can do your own fonts//like "smily" ,"heart" etc //but the main logic is to achieve perfect "delay".once if you refer to the //delay calculations you will get it//direction of rotation is also one important thing(clock wise or anti clock) // this "A" is simetrical so works on both directions.}}void display(car){ switch(car) case 'A' : // letter A { led=0x81; delay( ); led=0x6f; delay( ); led=0x6f; delay( ); led=0x6f; delay( ); led=0x81; delay( ); led=0xff; delay( );// to make one column gap between letters } break; case ' ' : // space { led=0xff; delay( ); led=0xff; delay( ); led=0xff; delay( ); led=0xff; delay( ); led=0xff; delay( ); led=0xff; delay( ); led=0xff; delay( );// to make one column gap between letters } break; default: led=0xfe;}// END of program=======================================================================================

//THIS PROGRAM IS FOR AVR

// in this code i did not used lookup tables for reducing the complexity

// i just gave code logic for one letter'A' and sapace ' ' #include<avr/io.h> #define F_CPU 8000000 // crystal frequency used in the circuit this helps in calibration of delay as per your frequency #include<util/delay.h> header file for generating delay for DDRD=0xff; //declaring portD as out put #define led PORTD // the word "led" will be replaced by PORTD at compile time unsigned int del=50 //variable to control delay

//the delay function is ther as default in util package of winavr so use: _delay_us( );void delay(void){ _delay_us(del); _delay_us(del); _delay_us(del); _delay_us(del);} //remaining logic will be same for all microcontroller units

void display(unsigned char car);void main(){ while(1){ display('A'); // this displays a continious rotating"A A A A" display(' ');//try to change the del value as per your motor until you get a perfect//display once you got it then write your code for remaining letters//once you did this it will be very easy you can do your own fonts//like "smily" ,"heart" etc//but the main logic is to achieve perfect "delay".once if you refer to the //delay calculations you will get it//direction of rotation is also one important thing(clock wise or anti clock)// this "A" is simetrical so works on both directions.}}void display(car){

default: led=0xfe; // gives an underline when no letter to display blue line in the code}// END of program=======================================================================================
i m giving the example for understanding the logic of this project.you can extend the code by adding number of "switch cases" i made it for active low logic means logic zero indicates led glowing and one indicates off.
with this technique you can make your own custom designs like "heart " "smile"
by changing the "del" variable value you can change the width of a letter.because no two motors are alike.
i prefer you to go for 1000 RPMmotor from vegarobokits. Which will be around 145 Rs

This propeller LED display can be made stable using an interrupt source. An IR sensor can be used to make it stable. Better to use a IR slot sensor as shown in the picture it will be a faster compared to an LM358 based sensor. if your motor is faster than 1500 rpm then this sensor is the best.

observe this video carefully.... you will find a small yellow paper on the base ground which comes in between the slot sensor pins and triggers the display. So your display always starts from a particular point

Good Work, I am bachelor in Mechatronics Enng., I need a favor from your side. I am working on a project on Speed control of AC motor by 8051 Microcontroller, in which motor starts,then i required to reduce the speed of motor after 10 sec. and it would stop around 14 sec.

the material is simpleLEDs,resistorsa motor faster than 1000RPMany microcontroller of you choice and required components like crystal,pcb,ic bases, capacitors.on board power supplyand some mechanical parts to make the a stable rotation

you need to use 12Mhz crystal for 8051 it is a mustin case of atmega16 you can use internal 8Mhz or external 16Mhzget any basic circuit of any microcontroller of your wish and connect 8 LED s to any port and as per the port make some modifications in the code first study the basic concepts of any microcontroller nd proceed

Guys please respect the author. I could see many of you asking certain redundant things when he has written it clearly what is the most necessary or the crux. So please stick to asking clarifications on things that have not been covered.

Vamsi, I really feel honored to have seen your blog. Really a great article. You made me feel the complex rocket science to be a mere a butter cutting with your code. Thanks a lot Vamsi.

But I need a clarification. What do these hexa integers mean ?

0x6f0x81

Are they only the on-off states or do they point to the port number. Consider I am using the ATmega16.

you are right they are just on off states of LEDsrefer to the example letter "A"in the beginning i defined port P0 of 8051 MCU as "led"because if you want to change the port it will be essayfor ATmega16 you can define any port as your wishfor example PORTB#define PORTB led#define DDRB outout=0xff;//making all pins out putled=0x81;writing led on/off sequence to PORTB

I again want to clarify something. Suppose you are setting the value any of the pins of a port(A,B,C or D) to be used for character printing then for the Character 'A' the mapping is (for your 7 x 5 (rows x col)) should have been

helo sir thx for previous rply i made hardware for project success fully n i write code also i am using 1000 RPM motor but my word are stretching can u tell me how much delay should i use to achieve output lyk urs.

please refer to the article there you can find the delay calculations for 1000 RPM motorbut at real time the speed of motor may not be constant so first make the working model and calculate delays as per your model but the logic for calculating delay will be the same

sir u hv explained everything very nicely...bt i m confused how to attach motor with pcb...i means it must rotate..so how to do that??? nd next thing is cn u plz mail me the cicuit diagram on hardikamangukia@gmail.com...its my current semester project to make propeller clock...cn u gv me some ignition for c coding for atmega16 to make this propellor clock???sir plz plz plz help me nd rply soon as i hv to submit the circuit diagram on 9th August,2012..i wud be very grateful to u for ur help...

the circuit is similar to a "light chaser project" published on "Electronics For You" magazine.but the main logic is to to arrange them on a rotating shaftif possible you can also arrange the circuit on a "TABLE FAN" wing

but make sure that the fan is rotating at some low speed level step.

or else just watch the side view picture of the project in the article

i recommend you to go through the article again for the logic and code

please don't ask for the circuit just like thatevery thing was given in the article please go through it first and then ask about your doubtin the beginning i took 2 months to understand this conceptafter referring the data sheets of all devises it became child's playfor beginners i prefer to get basic knowledge of any one microcontroller(8051 or AVR ) then you will easily understand every thing written in this article

i like your project...and i want to make my final year project on propeller led display using ATMEGA16 . plz tell me the month in which magazine (electronics for u)has published about light chaser project...so i can read....thanksu can contact me via smilesagar2005@yahoo.co.in

you can use 12V 500mA DC adopter for powering the motorfor the MCU use a 9v battery with 7805 regulatorif you want to use interrupt using IR sensor connect it to INT0/INT1 pins and write the display function in interrupt service routine.

Hii.. I am making the same thing. with P89V51 and 1000Rpm motor of Vega robotics as u suggested. please can you provide me the coding for displaying 'ckpe'? I need it really urgent. If you can please email me at nirmit09@gmail.com

the over all algorithm for writing the code is made according to my circuit and and LED arrangement on the rotating arm.so take a look at the example letter 'A' and my arrangement and try to develop your own code for itit will be very simplecheck the following=>logic of led(active high or low)=>arm length and motor speed=>position of led(MSB LSB)

Thank you.. I analyzed your code and Developed my own code according to the need. At first the delay wasn't proper, so took a while to figure out exact delay. Finally, I completed it and my Professors are happy for it. Thanks once again.

yesi know that it will show errorsbecause it is not a ready to use programit will give you the basic idea to make your own program i gave it for 8051 and ATmega16(AVR) micro-controllers.which is yours?what compiler you are using ?before going to the code i suggest you to go through the article once............. ALL THE BEST

Sir I am the student of EC Eng.from Gujarat. Its really nice work....i was searching this type of work since 2 months but today i find your blog.........and i hope it will very helpful to me...Thank u sir for the code and circuit diagram,, My question is "Is the simple DC motor from old tap-recorders can be used ?? Reply me soon.... i want to work on this project......

ok sir thank u very much for your reply... can u exactly tell me that which motor you had used?? so that i buy it from the shop as u tell me its name,,, and in your example program in keil i found some errors.. can u resolve it???

Sir i am finding this project since 3 months......on your blog i found it......... i had started work for this project from one week....but i am getting failure and failure......i had made hardware and software as u suggest but i found only failure...can u help ?

the delay function will decide the width of the letteras no two motors are similar i prefer you to calculate your own delayor you can do one thingconnect a pot to ADC and ADC to microcontroller for 8 bit you will get 0 to 255 value use it for the delay. don't forget to keep this function outside the while() function.the if you want to change the delay press the reset and change the pot

ok sir i understand... POT means Potentiometre right?? and sir can u just check or examine my video? i had made propeller display and upload on youtube....... can u just check that video for suggestion and improvement if u have time ??please?

nice work buddytry to increase the length of rotating armi prefer to start with AVR microcontrollers because you can do more with them try for ATmega8L microcontroller less size with on chip ADC channels

Hello Vamsi....I had a little doubt .....What is the working of the IR Sensor...?? And which one have you used...??I thought that there should be an opaque object between the 2 slots of the sensor...but there is no such thing in the picture above which shows the attachment of the sensor to the pcb.....Very Confused...!!Hope you would help..!!Thanks...!!!

Hello Vamsi...I was thinking of a different application based propeller display....what if we give a input by means of a keypad...like the user is supposed to enter either of the buttons of the keypad and then we get a display according to that...each number having a fixed display associated with it...??got any ideas..?hope for the best..!! reply soon... Thanks...!!!

this can be done you need to store the data at run time and that should display even after the power loss.you need to use an EEPROM...8051 is not having any EEPROMbut AVR microcontrollers have on chip EEPROM

I am not getting...Can you please elaborate ...??I want to do it in 8051...I am confused....I am thinking of a concept in which when we press any button of the keypad then we get different displays on the propeller accordingly...Pls help...Thanks...!!!

hi sir, could you tell me how about the wiring of the power supply? I mean isn't there a chance of the wiring having a lose contact and coming in the way of the motion of the display? It would also be nice if you provide the applications in everyday life for such displays? thank you.

I need more info on stabilizing the display. with your blog help i had made the display but cant stabilize it. What will be the calculations if i use opto-interrupter switch?. Shouldi take take of the delay all the time by calculating rpm of motor.

you can use the motor in your PCalso called "DC cooling FAN"and it will rotate in anti clock wise direction

and its good to here that you worked a lot on this project......you said that your using PIC controller...you can connect the sensor to any external interrupt pin(don't forget to check for active high or active low value from the senor)

make you ISR function in such a way that it contain your display routine...

don't directly go to the auto delay calculations using timers. i will confuse you.

first stabilize the display with any random delay. once you got the stable display then adjust the delay value manually in the program.

please respond asap.I participated in a expo to be held at 17 feb .I wrote so many codes for pov and using the default delay function _delay_ms() made the hex file larger than 16 kb.so I can display a max of 3letters or size of hex becomes unprogrammable in atmega16.plz suggest sth.have been trying 2fix it but with no success.thanks.

Hello Vamsi Sir, I am trying to to do the spinning display project.I m facing problem in Placement of batteries on pcb. if i do so the pcb is becoming heavy and wobbling while rotating. Also if I use IR led photo diode pair for external interrupt, its not being sensed by controller at high rpm(I am using 1000rpm motor). Which type of sensor I must use sir? and which type of battery shall i use to power up controller?

Vamsi Sir, I'm having a problem in finding the motor with the precise specifications(rpm,torque) from the local Kolkata market.I am trying to use a 1000rpm motor.Can you suggest me where I can order for these motors? What kind of motor did u use for your Propeller LED display project and from where did u buy it?

vamsi sir, i am working on propeller led display and i successfully display the latter but its still unstable , i read whole article of you. you asked for slot sensor to use for stable the display . can you please help me that how to connect the slot sensor to the interrupt pin of the 8051.please help me by showing the circuit diagram of slot sensor interfacing with 8051...

@ VAMSI DANDA you should put the image of o/p of the program u have given for example..as i under stand there will be a letter A first then one column gap then 5 column gap then again letter A..am i right??I want to make this project but i should understand the logic first..

The scope of the project is to design a display system using LEDs which rotate on a motor. The circuit is mounted on DC motor. LED'S are used to display clock and date. PICF84A is used to control and transmit the signal and utilizing the Assembly language.The goal of our projects is to design a prototype of an enlarged version of the Propeller LED display for displaying message. After studying various techniques like matrix led’s, rolling displays, etc. which are also techniques of displaying message at the cost, therefore we choose propeller led display, an emerging technology applied for displaying message. The display consists of 7 LEDs only in a vertical row. By moving them fast enough back and forth over each other, message can be displayed which appears to be generated by a 7*n matrix of LEDs and not a single column of LEDs, where n is the no. of columns of the display matrix. The LEDs will rotate on a motorThe 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,

please help me on this i need the schematics for the pcb and how i should go about powering it up ASAP.hozala@gmail.com

hi..sir it ia a nice project ......but i did not understand one thing is motor wires connected internally in circuit or u r giving any external plug to it .........if u given internally please mention from where to where u connected sir and please send me code for AT89S52 HERE MY EMAIL SIRmahi.raju.487@gmail.comand u have written the program above for letter A .i understood but why u have written 2nd case program

hi i have a doubt .that is the above shown 'A' table 1ST COLOUMN IS 0*81 i.e all red colour marked are 0s and remaining white coloured are 1 that it .........please clear it why because for letter B,C,D...etcgot some values they are not matching with another codes in google ......

vamsi sir i dont understand where the code start and where the code end in your article so can u tell me plz this project i want to present in compition plz rply me soon.... plz reply on my email id harshal.inventor123@gmail.com plz.....

I would like to know more details about the components used like the resistor, capacitor values, etc. Resistor color coding exists for 220ohm but what does 220E mean ?? Reply as soon as possible. Anyone knowing about this doubt can clarify.

hello sir , u are very helpful .. thanks for guiding all of the knowledge seekers ..sir i am also making this project .. i am planning to use desktop pc cool fan .. and to calculate its rpm a pair of IR and TSOP transceiver (its rpm are unknown)moreover i am implementing this circuit on pic16f877a microcontroller using 20 Mhz. crystal my question is using high freq crystal and high rom motor will that be good or bad and plz add on or correct me in my approach whereever m gng wrong thanks sir :)

hello sir! for so long i am searching for ots supplier in india.........can v take this prjct as the major one..........bcoz i want to make one for my final project submission ........sir pls do tell which microcontroller i should use...........8051, avr or pic...........sir can u pls provide stepwise circuit design......its program..........using 8051..............n sir shld we consider this as a MAJOR one............i dont want to make a propeller clock using RGB leds displaying images and time.both analog n digital as well......................................................sir pls help me out.......................n seriousy u hav dne a g8 job............thks

yes you can write that statementbut the delay that you write must be calculatedfor POV display _delay_us(); function is preferred more..check the delay calculations in the above article you will find out

Its a very Nice Project Sir. I appreciate U ve thrown a lot of light on the detailed procedures. I even tried it n got a bit of success. But the area where am actually facing the problem is, I am unable to understand the logic to display different characters. I ve seen the above example for character A using the table u ve mentioned. but am not getting it. can U please elaborate the process, for displaying different characters

Very good project mr.vamsi danda.i done the same project to display a message but it is not giving the accurate dispaly of message "letters are not diplaying in a particular postion at one instant some letter is in some x position,same position is replaced by some other letter after some time" i am facing this prob so please help on this and if you don't mind send the relevent data on pawankumarkodali@gmail.com this mail....

hello sir, ur blog is really helpful, but actually my purpose is a long time running propeller led, and for tht it is not feasible to use a 9v battery power supply, so i ned to supply power directly from ac mains, so can u give me solution regarding how to provide power to the rotatory circuit...i have read many articls saying slip rings and all but actually i am not getting a proper slip ring as i m using a normal dc motor of 1000 rpm having its shaft length around 25 mm only..so can u suggest some remedy please, or contact of some vendors who could help coz i m a fresher in this field and i need help..thank u sir..pls do reply me on my mail if possible...nabilkarimi92@gmail.com

hello nabil karimi use wireless power transfer technique to send power wireless use inductive coils...hey rigoberto choose the motor according to your display circuit length and weight check the pictures in the post ....