The aim of this project is to display information like Name, Title, Time and any other information on it. It is a very simple and interesting project for hobbyist. By using some LED’s we can display any information on it. Here we have used 5×7 Dot-Matrix codes for displaying information. This circuit is attached to a DC Electric Motor. This project is based on concept of persistence of vision (POV). Means if an object is remaining constant, at a point while it is moving at very fast speed then it looks like a stable image or pattern.
Fig. 1: Prototype of Arduino based Propeller LED Display
Fig. 2: Block Diagram of Arduino based Propeller LED Display
This is a very simple project made by using only seven LEDs. This project consists of two sections, one is LED driver and controlling circuit and second one is rotor which rotates the LED driver circuit. Rotor is an Electric Motor of around 1000 RPM and supplied by a 12 volt DC Adaptor. In this circuit an encoder is added within this circuit using IR Transmitter and IR Receiver and this encoder is configured in circuit as external interrupt. When this external interrupt occurs Arduino drives the LED according to coding and LED’s shows some pattern. This circuit also consists on board power supply using two Lithium-ion 3 volt batteries in series.
Fig. 3: Overview of the working of Arduino based Propeller LED Display
Circuit Description & Components Used
Circuit Description
In the attached circuit diagram seven LED’s are connected with shift register and control by using Arduino. Shift register’s data in (DS) pin is connected to digital pin 13 of Arduino and sh_cp and st_cp pin of shift register is directly connected to 12 and 11 respectably. And encoder is directly connected to pin no 2(External Interrupt 0) of Arduino.
Program
Programming of this project is very easy and no problem related to timing occurs because here we have used external interrupt. The configuration of external interrupt is given below:-
attachInterrupt(interrupt, ISR, mode)
where:
Interrupt: the number of the interrupt
ISR: function or ISR to call when external interrupt occurs
Mode: defines when the interrupt should be triggered. Four mode are predefined given below-
LOW to trigger the interrupt whenever the pin is low,
CHANGE to trigger the interrupt whenever the pin changes value,
RISING to trigger when the pin goes from low to high,
FALLING for when the pin goes from high to low.
Here I have used given configuration-
attachInterrupt(0, ISR, LOW);
and for displaying any pattern we have used dot matrix 5×7 codes.
Ex
For displaying ENGINEERS GARAGE, code is given below:
char ENGINEERS_GARAGE[95]={
0X00,
0xfe, 0x92, 0x92, 0x92, 0x82, 0x00, //E
0xfe, 0x20, 0x18, 0x04, 0xFE, 0x00, //N
0x7c, 0x82, 0x8a, 0x8a, 0x4c, 0x00, //G
0x82, 0x82, 0xfe, 0x82, 0x82, 0x00, //I
0xfe, 0x20, 0x18, 0x04, 0xFE, 0x00, //N
0xfe, 0x92, 0x92, 0x92, 0x82, 0x00, //E
0xfe, 0x92, 0x92, 0x92, 0x82, 0x00, //E
0xfe, 0x90, 0x98, 0x94, 0x62, 0x00, //R
0x64, 0x92, 0x92, 0x92, 0x4c, 0x00, //S
0x00, 0x00, 0x00, //
0x7c, 0x82, 0x8a, 0x8a, 0x4c, 0x00, //G
0x7e, 0x88, 0x88, 0x88, 0x7e, 0x00, //A
0xfe, 0x90, 0x98, 0x94, 0x62, 0x00, //R
0x7e, 0x88, 0x88, 0x88, 0x7e, 0x00, //A
0x7c, 0x82, 0x8a, 0x8a, 0x4c, 0x00, //G
0xfe, 0x92, 0x92, 0x92, 0x82, 0x00, //E
0X00
};
Fig. 4: Image of Propeller LED Display based on Arduino Uno
In program two names are displayed with interval of some seconds.
Components Used
1. Arduino Board
2. DC Motor
3. Lithium -ion 3 volt Batteries
4. IR Pair
5. LEDs
6. Shift Register
Project Source Code
###
#define LED 13#define ds 3 //14 shift register#define sh 10 //11 shift register#define st 11 //12 shift registerunsigned int count=0;char SADDAM_KHAN[66]={0x00, //0x64, 0x92, 0x92, 0x92, 0x4c, 0x00, //S0x7e, 0x88, 0x88, 0x88, 0x7e, 0x00, //A0x82, 0xfe, 0x82, 0x82, 0x7c, 0x00, //D0x82, 0xfe, 0x82, 0x82, 0x7c, 0x00, //D0x7e, 0x88, 0x88, 0x88, 0x7e, 0x00, //A0xfe, 0x40, 0x20, 0x40, 0xfe, 0x00, //M0x00, 0x00, 0x00, 0X00, //0xfe, 0x10, 0x28, 0x44, 0x82, 0x00, //K0xfe, 0x10, 0x10, 0x10, 0xfe, 0x00, //H0x7e, 0x88, 0x88, 0x88, 0x7e, 0x00, //A0xfe, 0x20, 0x18, 0x04, 0xFE, 0x00, //N0x00 //};char ENGINEERS_GARAGE[95]={0X00,0xfe, 0x92, 0x92, 0x92, 0x82, 0x00, //E0xfe, 0x20, 0x18, 0x04, 0xFE, 0x00, //N0x7c, 0x82, 0x8a, 0x8a, 0x4c, 0x00, //G0x82, 0x82, 0xfe, 0x82, 0x82, 0x00, //I0xfe, 0x20, 0x18, 0x04, 0xFE, 0x00, //N0xfe, 0x92, 0x92, 0x92, 0x82, 0x00, //E0xfe, 0x92, 0x92, 0x92, 0x82, 0x00, //E0xfe, 0x90, 0x98, 0x94, 0x62, 0x00, //R0x64, 0x92, 0x92, 0x92, 0x4c, 0x00, //S0x00, 0x00, 0x00, //0x7c, 0x82, 0x8a, 0x8a, 0x4c, 0x00, //G0x7e, 0x88, 0x88, 0x88, 0x7e, 0x00, //A0xfe, 0x90, 0x98, 0x94, 0x62, 0x00, //R0x7e, 0x88, 0x88, 0x88, 0x7e, 0x00, //A0x7c, 0x82, 0x8a, 0x8a, 0x4c, 0x00, //G0xfe, 0x92, 0x92, 0x92, 0x82, 0x00, //E0X00};int temp,data;void khan(){count++;if(count < 100){for(int j=0;j<66;j++){temp=SADDAM_KHAN[j];disp();}}else if(count > 100 & count < 200){for(int j=0;j<95;j++){temp=ENGINEERS_GARAGE[j];disp();}}else if(count >= 200){count=0;}}void disp(){for(int i=0;i<8;i++){data=(temp & 0x01);digitalWrite(13, data);digitalWrite(ds, data);temp>>=1;digitalWrite(sh, HIGH);for(int z=0;z<3;z++){}digitalWrite(sh, LOW);}digitalWrite(st, HIGH);digitalWrite(st, LOW);delayMicroseconds(500);}void setup(){pinMode(LED, OUTPUT);pinMode(ds, OUTPUT);pinMode(sh, OUTPUT);pinMode(st, OUTPUT);attachInterrupt(0, khan, LOW);}void loop(){}###
Circuit Diagrams
Project Video
Filed Under: Electronic Projects
Filed Under: Electronic Projects
Questions related to this article?
👉Ask and discuss on Electro-Tech-Online.com and EDAboard.com forums.
Tell Us What You Think!!
You must be logged in to post a comment.