Propeller Clock Advanced Design


Closed Thread
Results 1 to 7 of 7

Hybrid View

  1. #1
    Balachandar's Avatar
    Balachandar Guest


    Did you find this post helpful? Yes | No

    Default Propeller Clock Advanced Design

    Hi Kamikaze47,

    Thanks for your useful suggestions. One year after posting I saw a reply today! Since I didn't see any response for many months after posting I almost gave up. Your reply was in fact a pleasant surprise.

    In my code, I use polling instead of interrupts. The index pulse is generated by a Hall device. After the index pulse, the display routine starts. The RPM should be around 800 for proper display. If the speed is reduced, the characters shrink in width. If the RPM is too high, the characters widen and before the display routine is completed, the next pulse may arrive. There is also a software routine to control the width of the characters through the IR remote.

    I have used PIC18F2620 and most of the components are surface mount type.

    I like your suggestion of using a table to convert cartesian coordinates to polar ones. That should definitely lead to faster conversion.

    Let me know if you have tried your own version of propeller clock.

    - Bala

  2. #2
    Join Date
    May 2010
    Location
    Chile
    Posts
    25


    Did you find this post helpful? Yes | No

    Default

    Since no response for a while maybe i can help a little.

    The logic behind ANY stable propeller clock is that you need to generate a burst of "led lines" of a specific delay time each so that they fill a full rotation and that the beginning of the burst to always begin in the same position (sync).

    Sound like "I already know that", but now to the analysis part:

    -First, the sync pulse: If your motor has a tachometer, like a pc fan there you go!. Another forms of syncing are a small value high watt resistor in series with your motor and make a current to voltage rotation detector (only works in some motors), or what most people use, a strong magnet with a hall efect switch or reed switch.
    The important thing is to get a stable switching on every turn (no switching loss, no oscillation in position).

    -Second, the rotor: The motor has to be big enough to handle the weight of your circuit and everything else at a frequency of 50-100hz (the faster the better). That make a really nice component centrifuge so be careful with mounting stuff (already blown a full propeller right to my face) balance the weight proportional at each side. For getting power to the circuit in the rotor, there are a lot of techniques, you will have to do some research there. The usual way is to just run it from batteries, another way is to use a brushed contact switch of some kind and good pair of capacitors and regulator to avoid any glitches in the contacts

    -Then you need your leds: starting in monochrome and with 8 leds directly to the pic is a good way to learn, if you like color or more than 16 leds, its better to use some kind of led controller or serial to parallel latch (74HC595 is my way to go). Color toning is preformed by PWM BUT in a high frequency (at least: Fpwm=20*RPM) and it uses really huge data bandwidths.


    In the programming part, your first priority is to poll the sync pulse, when the sync pulse is detected, run the loop of (N-lines) led busts with a small delay each. How calculate the delay, It should be (Delay for each line = Time between last 2 syncs / Nș Lines) With that formula you keep adjusting time according to the last rotational period, that way even if your motor drifts in speed you get a static image.
    How to get the time between the 2 syncs is trickier but the most simple way is to count how many lines you have showed and if a sync comes up and you haven't finished all the lines, compensate subtracting time from the delay. On the other hand if you finished your lines and the sync pulse doesn't appear, keep counting blank lines and compensate adding to the delay

    For dynamic text, just make a character lookup table and burst from there loading an array sequentially, for the clock part TMR0 interrupt comes to my mind

    Hope it helps, learning a little of darrel interrupts in TMR1 (delay) and on PORTBINT(sync) makes things work a little faster an responsive.

    Name:  POV Display Robot_0001.wmv_000038239.jpg
Views: 8041
Size:  186.0 KB
    "If at first doesn't work, kicking it wont help either"

Similar Threads

  1. Single digit 7 Seg LED clock - PIC16F88
    By thirsty in forum Code Examples
    Replies: 4
    Last Post: - 17th July 2009, 08:42
  2. EM4095 Chip, get Clock and Data signals?
    By mindthomas in forum mel PIC BASIC Pro
    Replies: 14
    Last Post: - 19th August 2008, 06:27
  3. Shiftout/in
    By BobEdge in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 23rd August 2007, 11:48
  4. Help with sound command in 2 programs
    By hyperboarder in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 5th July 2007, 20:36
  5. Propeller Clock
    By yasser hassani in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 9th March 2006, 15:02

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts