Introduction: RGB POV Display

This instructable was inspired by the ATtiny85 POV Display by vishalapr. Soon, I recreated his work, but I wanted more.That's how I decided to make a RGB POV display.

If you don't know what POV is, or want to know more about it, refer vishalapr's instrictable mentioned above. He has explained it nicely there.

(I am sorry that the video is crappy, I only have this video with me now and I am away from my home now. I will try to add a new video soon)

Step 1: Materials Required

  1. An Arduino (I used Uno)
  2. 5 RGB leds (common anode)
  3. 2 74HC595 Shift Register
  4. Protoboard
  5. Motor
  6. 9V battery

For motor, I used one from an old sewing machine ( you will require a powerful motor as it has to bear the weight of Arduino and battery).

You will also need a piece of wood or cardboard for making the LED mount, and also some screws for securing it.

Step 2: About 74HC595 Shift Register

Since we are using 5 RGB leds, we have to control 15 pins. But Arduino Uno doesn't have that many output pins. So we have to increase it by using shift registers.

74HC595 shift register is a 8-bit serial-in, serial or parallel-out shift register with output latches; 3-state. We can use it to control 8 outputs at a time, by using only 3 output pins of arduino. You can also increase the number of outputs by linking shift registers in series, but still using only 3 pins from arduino.

You can learn more about shift registers and its applications in this page.

Step 3: Assembling the Components

  • Firstly, cut out a piece of protoboard (12x22 will be enough)
  • Place the two shift registers on it (make sure that the notch faces the same side)

Now take a RGB led and bend the common anode away from the rest of the legs. Now place it on the board as shown in the picture. The red leg should not be aligned with any other pins, as it will be connected to Q0, and bule & green legs should be aligned with Q1 & Q2 respectively.

Repeat it for other 4 RGB leds. Look at the image for reference. For the third led, there is a gap between blue and green leg for the ground pin of shift register.

In short,

  • Red leg of RGB led1 - Q0 of first shift register
  • Blue leg of RGB led1 - Q1 of first shift register
  • Green Leg of RGB led1 - Q2 of first shift register
  • Red leg of RGB led2 - Q3 of first shift register

  • Blue leg of RGB led2 - Q4 of first shift register

  • Green Leg of RGB led2 - Q5 of first shift register

  • Red leg of RGB led3 - Q6 of first shift register

  • Blue leg of RGB led3 - Q7 of first shift register

  • Green Leg of RGB led3 - Q0 of second shift register

  • Red leg of RGB led4 - Q1 of second shift register

  • Blue leg of RGB led4 - Q2 of second shift register

  • Green Leg of RGB led4 - Q3 of second shift register

  • Red leg of RGB led5 - Q4 of second shift register

  • Blue leg of RGB led5 - Q5 of second shift register

  • Green Leg of RGB led5 - Q6 of second shift register

Solder the pins toshift register. Use an IC socket if necessary.

Also join all the anode legs.

Step 4:

  • Connect the common anode of first led to the Vcc of first shift register using a 470ohm resistor.
  • Then connect the Q0s of first and second shift register to red leg of first led and green leg of third led, respectively.
  • Connect the Vcc of both the shift registers.
  • Connect Vccs to pin 10(ie MR).
  • Now connect all the grounds together, by joining pin 8s of both shift registers together and pin 8 with pin 13.
  • Now, for connecting the two shift registers together, join
    • Pin 12 of both together
    • Pin 13 together
    • Pin 9 of first shift register with pin 14 of second shift register.
  • Solder wires to pins 11, 12, 13, 14, & 16 of any one shift register.
  • Out of the 5 wires, connect 4 (except the one soldered to pin 16) wires to 4 male header pins. The wire from pin 13 of shift register will be connected to GND pin of arduino. Other three will be connected to pin 13,12, & 11 of arduino.
  • The remaining one wire will be connected to 5V pin of arduino.
  • Also, connect a 9V battery snap to arduino, red wire to Vin and black to GND.

Step 5:

I am not going to explain this step in detail, as it depends on various factors, like the motor you use, size of your project etc.

For making mine, I used an old sewing machine motor. I attached a rigid plastic plate to the motor, and drilled holes into it for attaching arduino and led bar to it. I used a rubber band for securing the battery.

Step 6: The Arduino Code

Firstly, add the Shifter library to arduino.

Then upload the attached code to arduino.

I have explained the code using comments for easy understanding.

Step 7: How to Use the Code to Display RGB Texts?

void loop()
{ displayString("rrggbb"); }

This the part where you add the text. All the letters at odd number position denotes the color and the letters at even number position are the letters to be displayed.

If you want to show ABC, with red A, green B and blue C, you have to type "ragbbc"

Step 8: To Make Things Simpler

Well, its little difficult to type rAgBbC every time. So, I made a program in VB to make things easier.

But for using it, you will have to modify the arduino code.

Add

String str;
char text[99];

to the top of the code.

Modify void setup()

void setup()
{ Serial.begin(9600); }

Change void loop to this

void loop()
{ if(Serial.available() > 0) { str = Serial.readStringUntil('/n'); str.toCharArray(text,100); } displayString(text); }

Step 9: How to Use RGB_POV.exe?

After opening the program, you will be asked to enter the port to which arduino is connected. If it is connected to port 3, type com3, not just 3.

Then enter 9600 for baudrate.

Then enter the text you want to display. For example RGB.

I want to display blue R, red G and green B. For that I will click the colours in that order, first blue, then red and then green.

After that press Send, disconnect the USB cable from arduino, connect the 9V battery and start the motor.

That's it. You have just made your first RGB POV display.

For sending another text, click Clear and follow the steps given above.

Step 10: How to Add New Colors and Characters?

I will write a tutorial showing how can you add new colors and characters soon.