LED Arrow Sign for Arduino

by skywiredvt in Circuits > LEDs

916 Views, 2 Favorites, 0 Comments

LED Arrow Sign for Arduino

IMG_0897.JPG

Hi,

I'm a middle school student who likes to build electrical circuits consisting Arduinos, and other IC chips.


Intro:

Arrows have always been a great way to universally communicate and inform a passer-by of information that lies ahead. LED construction signs are commonly used to notify the driver which way he/she should pass around a construction site or vehicle. These signs are also great in every day projects with the Arduino, but small scale versions can be hard to come across and when you do find one, they can be quite expensive! This instructable will show you how to make your own arrow sign for cheap, with very few, basic components!

Supplies

IMG_0901.JPG

You will need a power supply or Arduino, depending on how you want to build this. You will also need the following components to build the sign:


Supplies:

  • Transistors: BC547 or 2N2222 (3)
  • LEDs: Any color LEDs will do. (20+)
  • Resistors: 680Ω (3), 470Ω (3)
  • Some perf board to solder on (1)
  • Male header connectors (5 pins)



Tools: (Optional)

  • Multimeter (for debugging)
  • Oscilloscope (for debugging)
  • Soldering iron (and solder)



Misc: (Optional)

  • Small labeler to label pinout for sign

Arrange All of the LEDs

IMG_0897.JPG

Arrange all of the LEDs on the perf board. Lay it out however you want. You can make the arrow long, or short.

If you use more than 20 LEDs, you should calculate how much current they will draw, to make sure that your transistor can handle the current.


Formula:

I = x * 20

(x = Number of LEDs, I = Current in mA)


If I were to use 20 LEDs, 20 * 20 = 400, meaning that if all the arrow were on all at once, it should draw 400 mA.

(Note: This does not account for the resistors used, meaning that the current will most likely be lower than 400 mA when finished with the circuit)


The Arduino 5V pin can supply 800 mA (0.8 A)

Each I/O pin can supply about 10 mA



Once you have arranged the LEDs, you should bend the NEGATIVE (-) lead on the LED over, to prevent the LED from falling out. The shorter leg is the negative one.

Start Soldering!

LED Arrow.png

Yes, this part can be quite tedious, and it can get boring quickly. But trust me, the final product is totally worth it!


Instead of trying to explain all of this, I just made a schematic. You can download the PDF with the full schematic

Thanks to Tinkercad for the awesome online circuit designer!

Check It Over

WIN_20220217_18_25_44_Pro.jpg
WIN_20220217_18_25_57_Pro.jpg

Its always wise to check over your soldering job once you have finished, so I dedicated this step just to make sure that it is properly wired so we don't ruin any of your electronics. In the images attached, you can see the soldering job I did. Yes, I will be the first to admit, I'm not the best at soldering but I keep practicing!

Testing Time!

LED Arrow.png
IMG_0898.JPG
IMG_0899.JPG
IMG_0900.JPG

Now, if your sure that the circuit is properly inspected, and checked over, we can test it! In order to do that, you can use an Arduino or an ordinary power supply. Here, I will show you how to hook it up to an Arduino.


According to the diagram I posted above, the wiring should be simple. And no, you don't have to use an Arduino UNO. You can use any Arduino that is capable of supplying 5V. I'm going to use an Arduino Nano, because I have lots of them kicking around. Once you have it wired up, you can upload the code to the Arduino. I will provide the code here:


// C++ code
//
void setup()
{ //Put the code her to run once


  pinMode(2, OUTPUT); //Connect the CENTER arrow wire here
  pinMode(3, OUTPUT); //Connect the LEFT arrow wire here
  pinMode(4, OUTPUT); //Connect the RIGHT arrow wire here


}


void loop()
{ //Put the code here to run forever


  /*Blink LEFT*/


  digitalWrite(3, HIGH);
  digitalWrite(2, HIGH);
  delay(500);
  digitalWrite(3, LOW);
  digitalWrite(2, LOW);
  delay(500);
  digitalWrite(3, HIGH);
  digitalWrite(2, HIGH);
  delay(500);
  digitalWrite(3, LOW);
  digitalWrite(2, LOW);
  delay(500);


  /*Blink RIGHT*/


  digitalWrite(4, HIGH);
  digitalWrite(2, HIGH);
  delay(500);
  digitalWrite(4, LOW);
  digitalWrite(2, LOW);
  delay(500);
  digitalWrite(4, HIGH);
  digitalWrite(2, HIGH);
  delay(500);
  digitalWrite(4, LOW);
  digitalWrite(2, LOW);
  delay(500);


  /*Blink CENTER*/


  digitalWrite(2, HIGH);
  delay(500);
  digitalWrite(2, LOW);
  delay(500);
  digitalWrite(2, HIGH);
  delay(500);
  digitalWrite(2, LOW);
  delay(500);
}


You can also download the script here:

Done!!!

Video

You finished it! Great, now you can put it wherever you want to inform people of a specific direction! Thanks for reading this instructable!



Don't forget to share this Instructable with your friends!