$1 POV Display Goes Round And Round

You don’t need much to do a persistence of vision display. A few LEDs and a processor is all it really takes. [B45i] made a simple PC board with five LEDs and an ATtiny CPU. There’s a battery and it connects to a fan to spin around.

While the project is pretty simple, we liked two aspects of it. First, he provides very detailed explanations about how to use an Arduino to program the Tiny using the Arduino IDE.

The other item of interest is the two web applications that can build arrays of data for the POV display easily. Examining the code is instructive, too, because of the use of bit coding and enumerations to save space.

The downside, however, is you do have to adjust the delay to match the fan or other rotating item you attach to. It would be a great enhancement to read an accelerometer and adjust the speed on the fly. That would, though, drive the costs up a little bit. You would also need a clever way to drive the LEDs since you’d lose at least one pin to the accelerometer.

You can make much more sophisticated POV setups, of course. You can even do it with an FPGA.

29 thoughts on “$1 POV Display Goes Round And Round

  1. Some other thing’s that usually come in handy:
    * Something that moves, either a motor, bycicle wheel, an arm or whatever.
    * Either a battery or some sliding contact for the power.
    * A bit of software, but it’s on the edge of being pedantic…

    1. Or use an outward-facing light sensor: there’s bound to be a 1/rev periodicity in that signal.

      Not enough pins on the ATTiny13? Sure there are, and it’s even easier than Charlieplexing: Each pin can drive two LEDs: Put two LEDs in series from positive rail to negative, and the uC I/O pin to the middle. Pin high=one LED, pin low = other LED, pin open = none. Toggle fast = both LEDs.
      It works because the supply voltage is lower than the forward drop of two LEDs in series.

      So the ’13 can drive 8 LEDs and have a spare pin for light sensor.

      If you’re really on the ball, you can even use an LED as a light sensor, and drive 9 LEDs.

        1. With the ceiling fan scenario you could use a IR transceiver on the top side of the fan blade and a reflective sticker on the ceiling. Same for a bicycle wheel although a hall sensor would might easier there.

      1. My first thought was reading a mini dip-switch bank (w/ +vcc on the bonus switches) on boot to change the timing constants. Would this pullup/pulldown logic be suitable for that?

    2. Acceleration is a change in velocity, either in its magnitude or in its direction, or both.

      An object traveling in a circle is always accelerating toward the center of the circle. This is what creates centripetal force. Just like your pushed into your car seat during straight line accelleration; your pushed into the door when you go around a curve even if you didn’t change speed.

      The accelleration of the object would vary based on the rpm (speed), and the radius of the circle it’s traveling in.

      The one thing I am not sure about is how it would know if the rpm is changing or the radius. I suspect you would calibrate it for a fixed radius, and the accelerometer would allow it to adjust for changing rpm. It wouldn’t be able to self adjust for changes in both parameters with just an accelerometer.

    3. Just amplify the radio noise in the environment of the fan motor and feed to an A2D then you’ll have a good chance of detecting relevant periodicity. Just a floating track into the MCU pin may receive enough external noise to serve that purpose. Ig you no the radial position of the MCU and the periodicity you have velocity.

    4. Centripetal acceleration is never constant unless the device is motionless.

      Imagine tape giving out and the device flying across the room. The device is always accelerating inward courtesy of said tape or glue. The glue keeps the device accelerating inward, which is why carnival rides use centripetal force to pull you against a wall. That is acceleration!

      Velocity is a vector constant tangent to it’s current position. Circles, wheels, etc are very interesting devices. Simple yet amazing.

        1. Forces don’t have a “frame of reference”. We may choose to ignore forces because of our frame of reference, but the force is there. That would be like saying the force of earth’s gravity on a raindrop isn’t there if we were looking from space; the raindrop doesn’t suddenly stop falling or float upward. Though from that perspective we may be interested in other forces acting on the raindrop as the earth rotates or orbits the sun.

          His statement is accurate. Centripetal acceleration is NEVER EVER and by its very definition CANNOT be constant.

          Acceleration is defined as any change in velocity… either the magnitude (speed), or direction. By definition an object experiencing centripetal acceleration is traveling in a curved path, therefore its velocity is constantly changing direction. So it MUST be accelerating (from any frame of reference).

          1. If I am the display taped to the blade, and the fan is rotating at a non changing rpm (omega) then my centripetal force is constant and non zero. There is an equation for this… It only varies if my rotational velocity varies.

          2. Randy, unless I am misunderstanding your comment, you are making the same mistake as CityZen. Centripetal force is the force that keeps the object going in a circle. In your example its the force that the tape is exerting on you (the display). Without that force, you would continue in a straight line. If you consider two points on your curved path, you would find that while the force remained the same magnitude, the direction of the force changed to point toward the center of rotation.

            The NET force, (the remaining forces after eliminating all cancelled forces) acting upon you (the display) is changing. If you were standing still, and that force were applied to you in the same way, you would find yourself pushed around like a person standing in a trust circle https://www.youtube.com/watch?v=05s893uLlgI.

            ANY time there is a NET force applied to an object there is acceleration in the direction of the NET force applied. The only time there is no acceleration is if there is no net force, meaning that all forces acting on the object are cancelled by an equal and opposite force… and therefore the object is either traveling in a straight line (since changing direction would require a force tangential to the direction of travel), or is motionless.

  2. I knew the tech before me in the e-shop but I didn’t know he tried to balance a slightly wobbly ceiling fan at the other end of the shop, till one day I heard a ping sound over there and a sharp pain is in the back of my hand resting on the vise 15feet away. Something fell to the floor under the vise. It’s the weight-washer and the dried out masking tape gave out. What a wheel of misfortune. Could have been worse. There is a lesson here.

    1. Could have been worse. The blade could have come off.

      I saw that happen in a restaurant once. A terrible loud “Whack” when the blade hit the wall followed by “whack, whack, whack…” as the terribly unbalanced fan continued to run.

  3. How about it learns the rpm by holding something up that lightly hits each blade and it senses the beat. Would still have to program number of blades though.

    Or use a laser pointer and light sensor.
    Still need to program number of blades though.

    1. 100% agree. Almost always intelligent and civil conversation!

      Just go check out the Arduino forums. Most of the time it’s full of people trying to convince others they are right when they don’t know the answer, trying to convince someone they shouldn’t be asking the question because they know the answer, or shaming others and being a prick because they do know the answer.

  4. I have fitted a large number of fans in my time so dont forget to put a balance weight 180degrees from the circuit or the fan will shake like fury even a 10 grams out of balance makes a big difference

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.